processing图片粒子化_个人见到的processing(优质且全的教程,一定看原文)
這個教程的一個好處是,還會介紹一些常用的庫.
不介紹每個函數, ellipse, box 的參數, 很適合有程序經驗的同學.
多個文件之間,想當于直接把多個文件放在一起執行.
同一個project 里面,不需要import
for (int i=0;i<20;i++) {
for (int j=0;j<20;j++) {
if (i<10) {
fill(255, 0, 0);
}else{
fill(255, 255, 0);
}
ellipse(i*20, j*20, 20, 20);
}
}
函數可以寫在函數里面.
Ball myBall;
void setup() {
size(600, 600);
background(0);
myBall = new Ball(500, 100);
}
void draw()
{
myBall.display();
}
class Ball{
int x = 500;
int y = 500;
Ball(int x, int y){
this.x = x;
this.y = y;
}
void display(){
ellipse(x, y, 20, 20);
}
}
這就是我當年在文曲星上寫的啊.. 當時我還加了阻力.
void bounce() {
if (x>width || x < 0) {
speedX *= -1;
}
if (y >height || y<0) {
speedY *= -1;
}
}
void gravity(){
speedY += 0.2;
}
Ball[] balls = new Ball[20];
for (int i=0;i
balls[i] = new Ball(random(0, width), random(0, height), 5, 5);
}
發現和Java幾乎一樣, 不過Java 幾乎都忘了.
不需要范型. 哈哈:
ArrayList myList;
mylist.add(new Ball(200, 200));
mylist.size();
mylist.get(1);
放在 sketchbook 的libraries 下:
(ENV)ning@ning-laptop ~/idning/langtest/processing/sketchbook/libraries$ ll
total 32K
5022553 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 verletphysics
5022577 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 volumeutils
5022429 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 audioutils
5022441 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 colorutils
5022457 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 datautils
5022470 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 simutils
5022505 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 toxiclibscore
5022495 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 toxiclibs_p5
重啟processing.
我們可以通過 $ cp -r libraries/ libs2 把libraries 當成一個sketch 瀏覽.
看它的例子:
一個 Vec 表示一個點. (有x, y, z)
toxi 庫里面的:
Vec3D loc = new Voc3D(0, 0, 0);
ellipse(loc.x, loc.y, 20, 20);
Vec3D speed = new Voc3D(1, 0, 0);
可以加減:
loc.addSelf(speed);
loc.normalize(); //變成1.
loc.scaleSelf(100); //乘以100.
注意, 向量加法(平行四邊形)
Vec3D newVec = loc.add(speed) ; 不一樣. 產生一個新的vec.
全局變量, 不分文件.
這是一個稍微復雜的 粒子模型. 可以模擬擴散, 聚合. (應該不是按照物理規律的.)
PeasyCam
不兼容Processing 2.0
camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ)
The default values are camera(width/2.0, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0, 0, 0, 1, 0)
實現鼠標控制的Cam, 很好.
A mouse driven camera-control library for 3D sketches.
提供 滑塊 等元素
這個我在flash 做過.
這個3d圖不錯.
PrintWriter output;
output = createWrite("data/points.csv");
if (keyPressed) {
for (int i=0; i
for (int j=0; j
Vec3D loc = grid[i][j].loc;
output.println(loc.x + "," + loc.y + "," + loc.z);
}
}
output.flush();
output.close();
}
注意單引號,雙引號不同.
這也是我從前用Flash 搞過 .
它用的是 toxi 的VerletPhyiscs 庫.
verlet
VerletParticle. 粒子.
VerletSpring. 彈簧.
GravityBehavior()
比Processing 編輯器好.
proclipsing, 它是用java 來的:
package eclipseprocessingprj;
import processing.core.PApplet;
public class EclipseProcessingPrj extends PApplet {
public void setup() {
size(600, 600);
}
public void draw() {
background(0);
stroke(255, 0, 0);
fill(255);
ellipse(mouseX, mouseY, 15, 15);
}
public static void main(String _args[]) {
PApplet.main(new String[] { eclipseprocessingprj.EclipseProcessingPrj.class.getName() });
}
}
原來, size, background, stroke, fill 等等都是PApplet 類的方法.
processing 就是一個完整徹底的java, 它每次把寫的代碼包在一個.java 里面去run 就行了.
所以在Eclipse 里面能夠有完整的代碼提示. 錯誤檢查
不過用Class 的方法略有不同.(在Processing 環境里面是把所有代碼合在一起包在 PApplet 里面.)
總結
以上是生活随笔為你收集整理的processing图片粒子化_个人见到的processing(优质且全的教程,一定看原文)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奇迹mu觉醒大天使武器怎么获得
- 下一篇: 手机微信聊天记录可以同步到电脑上了电脑上