語法可以認為就是Java
運行:
processing-java --output=/tmp/processing-xx --run --force --sketch=/home/ning/soft/processing-2.0b8/modes/java/examples/Demos/Graphics/
每個sketch( 也就是每個Processing project)在電腦中是以一個 [資料夾]存在,資料夾中存放sketch相關的程式碼(.pde檔)及影音資料(另存放在[data]資料夾中)
區(qū)分大小寫類型:- int 整數(shù) 例:3, 20, -5, 0- float 浮點數(shù) 例:1.2301, -0.02- String 字串 例:"互動程式設計"- boolean 布林值 例:True/False
X軸是向右漸增, Y軸是向下漸增, Z軸是向外漸增
< == > != >= <= && || !
Object & Class
pushMatrix();translate(width/2, height/2);rotateX(1);box(150);popMatrix();
這在需要多個坐標系的情況下很有用. 比如地球繞太陽公轉(zhuǎn).
lights(); //在draw里面調(diào)用即可.
這個教程的一個好處是,還會介紹一些常用的庫.不介紹每個函數(shù), ellipse, box 的參數(shù), 很適合有程序經(jīng)驗的同學.
多個文件之間,想當于直接把多個文件放在一起執(zhí)行.同一個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); }}
函數(shù)可以寫在函數(shù)里面.
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.length;i++){ balls[i] = new Ball(random(0, width), random(0, height), 5, 5);}
發(fā)現(xiàn)和Java幾乎一樣, 不過Java 幾乎都忘了.
不需要范型. 哈哈:
ArrayList myList;mylist.add(new Ball(200, 200));mylist.size();mylist.get(1);
http://processing.org/reference/libraries/
放在 sketchbook 的libraries 下:
(ENV)ning@ning-laptop ~/idning/langtest/processing/sketchbook/libraries$ lltotal 32K5022553 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 verletphysics5022577 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 volumeutils5022429 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 audioutils5022441 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 colorutils5022457 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 datautils5022470 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 simutils5022505 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 toxiclibscore5022495 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) ; 不一樣. 產(chǎn)生一個新的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)
提供 滑塊 等元素
這個我在flash 做過.
這個3d圖不錯.
PrintWriter output;output = createWrite("data/points.csv");if (keyPressed) { for (int i=0; i<cols; i++) { for (int j=0; j<cols; j++) { Vec3D loc = grid[i][j].loc; output.println(loc.x + "," + loc.y + "," + loc.z); } } output.flush(); output.close();}
注意單引號,雙引號不同.
很簡單, 可以自己實現(xiàn)
這也是我從前用Flash 搞過 .它用的是 toxi 的VerletPhyiscs 庫.
verletVerletParticle. 粒子.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 環(huán)境里面是把所有代碼合在一起包在 PApplet 里面.)
https://github.com/fadookie/Super3dvisualizerhttp://www.youtube.com/watch?v=2Z99TtxGjdshttp://www.youtube.com/watch?v=RBVseisC-VQ (with source)
by FFT.
hello world Processing: http://www.tudou.com/programs/view/ilYm5UpnXMw/
視頻教程:
processing 的下載包中包含了多本書的Demo:
- Getting STarted- Nature of Code- Processing Handbook- Visualizing Data
[Processing作品收集]http://www.processingblogs.org/ (closed)http://www.openprocessing.org/[Processing範例搜尋]http://builtwithprocessing.org/browser/browse.php
聯(lián)系客服