因為它主要講的是random! 最喜歡隨機囉! 嫁雞隨機(好笑嗎?)
但這篇的p130-132還同時介紹到noise,我不太懂它的原理,
這要在請教CCC之後再補上給大家.
因為random實在太無腦(合我胃口)了, 所以這會是一篇輕鬆寫意又香又短的一篇. :))))))
----------------------------------------------------------------------------------------------------------
基本上random的相關指令只有兩個,
random()
randomSeed()
基本上random()就是隨機,你可以給它任一範圍,
例如0到100就是random(100),如果是有個特別間距如50到80就是random(50,80),
random的性質預設是float的,所以當你如果是要它random是整數時
得寫成int (random()),這樣結果出來就是隨機的整數,端看性質需求
而random你說它是真的隨機亂數嗎,其實答案是一半一半,
其實它只是不同的排列組合,只是每次顯示出的排列組合不一樣,
random(10)跟random(1000)的排列組合數當然是天差地遠.
而randomSeed就是為了確保當我們有需要特定組合的時候的產物
拿簡單的123排列好了,有六種組合,而processing裡都幫每一種組合編好了號.
1 2 3 4 5 6
123 132 213 231 312 321
如果我們打int(random(6)),那只是告訴processing請隨意拿6種可能的其中一種出來即可
但如果打randomSeed(4),那就是告訴processing請拿6種來列組合裡的編號4出來,也就是231
因為random對我來說實在是密不可分,所以前面大家應該也都看慣了,
就直接跳到p130的15-07來做介紹了.
size(200,200);
background(255);stroke(150,60);
smooth();
int s = 5;
randomSeed(s); //這裡就是定義我要拿編號5的排列組合出來,你填一億也沒人管你
for(int i = 0; i < 100; i++){
float r = random(10);strokeWeight(r); //線粗是隨機的1到10
float offset = r * 15;
line(i-5,200,i+offset,0);
}
//saveFrame("p130-##.jpg");
random以我好同學小鉄的說法就是簡單到翻跟斗,
這讓我們在有規則的排列內找到一些不規則的表現法,
所以之前學的矩陣排列除了顏色之外,也可以有不同形狀的變化.
size(200,200);
background(200);
smooth();
for(int x = 5; x < width; x += 10){
for(int y = 5; y < height; y += 10){
int r = int(random(100)); //先給一個隨機數
if((r < 66) && (r > 33)){ //當隨機數介於34~65之間時,畫白圓
noStroke();
fill(255);
ellipseMode(CENTER);
int q = int(random(2,8));
ellipse(x,y,q,q);
}
else if(r <= 33){ //當隨機數小於34時,畫黃圓
noStroke();
fill(255,255,0);
ellipseMode(CENTER);
int k = int(random(2,8));
ellipse(x,y,k,k);
}
else{ //除了上述範圍外的其他數時,畫綠圓
noStroke();
fill(0,255,0);
ellipseMode(CENTER);
int a = int(random(2,8));
ellipse(x,y,a,a);
}
}
}
//saveFrame("p132-2-##.jpg");
//這概念就是每當要畫一次圓時,會跑出一個介於1到100的隨機數
//而這隨機數再經過下面三個if的檢查來決定要畫什麼顏色的圓
Try it. :)
沒有留言:
張貼留言