2011/06/30

Vertices (processing教學)

在非常緊湊的工作營之後,是時候重拾processing自習的時候了.
題外話,本來對grasshopper有看沒有懂,在這次工作營應該是有稍許進步了,
不過完全不知道要拿來幹麻,感覺一坨拉股的東西都同時在學,
但在事務所我還是在用skp畫爽爽................
CCC說在接下來這一年要確立自己出去定位要在哪裡,
我到現在還是很茫然,所以才會什麼都想學,不求精但至少要會基本,
出去至少不會丟淡江臉,但學那麼多到底要幹麻啊!!!
我覺得林昭翰才是真的大智大慧. :-x



anyway,讓我們再開始一起學processing吧!
今天要說的是課本p69-78的Vertices(vertex的複數)
基本上它的觀念跟coreldraw的多線工具一樣
就是以一堆點 的先後順序接起來 你可以選擇要不要把線聚合成色塊
或是單純就讓它是一條很多節點的線
它基本的架構如下

beginShape()      開始連線
vertex(x,y)                諸多的節點(vertax 1, vertax 2, vertax 3, vertax 4 ........)
endShape()         結束連線

 


size(200,200);
background(255);
strokeWeight(2);
smooth();


beginShape();
vertex(20,20);  //點01
vertex(100,20);  //點02
vertex(100,100);  //點03
vertex(20,100);  //點04
endShape();


//saveFrame("p072-1-##.jpg");


//可以看到當我給四個點的時候,它會依先後順序把它接成一條線



size(200,200);
background(255);
strokeWeight(2);
fill(255,0,0);
smooth();


beginShape();
vertex(20,20);  //點01
vertex(100,20);  //點02
vertex(100,100);  //點03
vertex(20,100);  //點04
endShape(CLOSE);


//saveFrame("p072-1-##.jpg");


//而如果我在endShape內填入CLOSE,則它會自動把起點跟終點連起來變成一色塊




而endShape內可以填東西的話,beginShape內一定也可以
而beginShape內可以填的東西有POINTS,LINES,TRIANGLES,QUADS等等
詳情請參照課本p73 簡單範例如下,只要更換上面程式裡beginShape內的指令即可


beginShape(POINTS);







beginShape(LINES);



beginShape(TRIANGLES);



beginShape(QUADS);



至於p75-78則是在講曲線跟貝茲曲線,
我個人覺得現階段是用不太到,所以請自己看囉,
也不難,只是設定控制點有些麻煩,可參照p76


透過之前學過的無ㄟ伯ㄟ,我們可以畫出以下的圖,
自己試完之後反白即有解答.




size(200,200);
background(255);
stroke(255);
strokeWeight(0.1);
smooth();
for(int i = 1; i <= 100; i += 1){
  beginShape(QUAD_STRIP);
  fill(random(255),random(255),random(255),20);
  vertex(i/2000 + random(200),i/2000 + random(200));
  vertex(i/2000 + random(200),i/2000 + random(200));
  vertex(i/2000 + random(200),i/2000 + random(200));
  vertex(i/2000 + random(200),i/2000 + random(200));
  endShape();
}
//saveFrame("p072-2-##.jpg");




Try it. :)

沒有留言:

張貼留言