“Processing 是一個開放原始碼的程序語言及開發(fā)環(huán)境,提供給那些想要對影像、動畫、聲音進行程序編輯的工作者。此外,學生、藝術(shù)家、設(shè)計師、建筑師、研究員以及有興趣的人,也可以用來學習,開發(fā)原型及制作?!?/i>
工作太忙,停止Processing學習太久,重新復習下筆記,再次開始。Processing中文教材不多,推薦一本入門級教材《Processing互動編程藝術(shù)》,邊學邊Processing.org熟悉語法和例子。
基本圖形:
point(x1,y1)
line(x1,y1,x2,y2)
triangle(x1,y1,x2,y2,x3,y3)
quad(x1,y1,x2,y2,x3,y3,x4,y4)
rect(x,y,width,height,r,tl,tr,br,bl)
ellipse(x,y,width,height)
arc(x,y,width,height,start,stop),arc(x,y,width,height,radians(45),radians(225));
填充和描邊:
fill() 填充顏色,noFill()禁用填充顏色
stroke()描邊顏色,noStroke()禁用描邊
strokeWeight() ?定義畫筆粗細
strokeJoin()定義線與線之間的連接模式(銜接角的形狀): strokeJoin(ROUND)圓形轉(zhuǎn)角,strokeJoin(BEVEL)錐形轉(zhuǎn)角
rectMode(),http://processing.org/reference/rectMode_.html
ellipseMode(),
strokeCap()定義線的起始與終止的畫法:strokeCap(SQUARE)方頭線,strokeCap(ROUND)圓頭線
顏色以及透明度:
background(r,g,b,alpha)、fill(r,g,b,alpha)、stroke(r,g,b,alpha)描邊顏色
自定義圖形:
beginShape() 開始自定義圖形,endShape()結(jié)束圖形定義,endShape(CLOSE)閉合圖形
vertex()定義點坐標
基本語法:
while
while(條件式){
繪制函數(shù);//符合條件,程序繼續(xù)循環(huán)執(zhí)行括號內(nèi)指令并計數(shù),不符合條件則停止
計數(shù)器;
}
if
if(條件判斷){
//滿足的話,則執(zhí)行此區(qū)域代碼
}
if(條件判斷){
//滿足的話,則執(zhí)行此區(qū)域代碼
}else{
//不滿足的話,則執(zhí)行此區(qū)域代碼
}
if(條件判斷){
//滿足的話,則執(zhí)行此區(qū)域代碼
}else if(條件判斷2){
//滿足條件2的話,則執(zhí)行此區(qū)域代碼
}else{
//都不滿足的話,則執(zhí)行此區(qū)域代碼
}
for-loop
for(init;test;update){
statements
}
for(初始化;條件判斷;更新判斷的數(shù)值){
滿足條件的話,則執(zhí)行此區(qū)域代碼
}

響應:
1、draw()&setup()
2、鼠標響應--鼠標跟隨:mouseX(保存著x軸的值) ?mouseY(保存著y軸的值)
dist(x1,y1,x2,y2);//可用于計算兩點之間距離
3、鼠標響應--連續(xù)作畫:pmouseX和pmouseY存儲著前一幀鼠標的位置
line(mouseX,mouseY,pmouseX,pmouseY); //可連續(xù)劃線
dist(mouseX,mouseY,pmouseX,pmouseY); //可用于計算線條寬度
4、鼠標響應事件mousePressed() ? mouseMoved() ?mouseDragged()
4、鍵盤響應
keyPressed()
if(keyPressed) 中可加入if(keyPressed==‘a(chǎn)’)
if(keyPressed&&(key==CODED)) ?可加入if(keyCode==LEFT)
4、輕隨(easing)
float x;
float easing=0.01;//easing值越小,延遲越大
float diameter=12;
void setup(){
size(220,120);
smooth();
}
void draw(){
float targetX=mouseX;
x+=(targetX-x)*easing;
ellipse(x,50,12,12);
println(targetX+":"+x);
}
5、映射(map)
void setup(){
size(240,120);
strokeWeight(12);
smooth();
}
void draw(){
background(204);
stroke(255);
line(120,60,mouseX,mouseY);
stroke(0);
float mx=map(mouseX,0,width,60,180);//第一個參數(shù)是一個需要轉(zhuǎn)換的變量,第二和第三個分別是它的最小和最大值,第四和第五個參數(shù)是需要轉(zhuǎn)換到的目的范圍的最小值和最大值。
line(120,60,mx,mouseY);
}
5、點擊(mousePressed) 只有2個值:真和假。鼠標按下為真。
追蹤鼠標哪個鍵:mouseButton==LEFT、CENTER、RIGHT
void setup(){
size(240,120);
strokeWeight(30);
smooth();
}
void draw(){
background(204);
stroke(102);
line(40,0,70,240);
if(mousePressed){
if(mouseButton==LEFT){
stroke(255);
}else{
stroke(0);
}
line(0,70,width,50);
}
}