2011/06/18

Data 1 : Variables (processing教學)

今天要教得是簡單到不行的數學符號
連我這個高中數學只要考61分就沾沾自喜的人都覺得簡單
相信大家都很快就融會貫通了
而且一下子就會P37-60囉 是不是很划算?



基本上processing的數值分為兩種
int  /  沒小數點的整數
float  /  有小數點
因此我們可以在程式裡面寫int = 3但不可以寫int = 3.0
但是 你可以寫float = 3.0 也可以寫 float = 3 因為他會默認為3.0
這跟我叫你爸你打我媽一樣沒道理 但就是這樣

同時因為processing在畫圖時它是有個框架的
意即畫面的長(width)與寬(height)
因此當有時你要把畫面畫滿時可以直接寫它們來取代
當你改背景大小時也會一起改省一些力氣
讓我們畫一個陸老師最喜歡的法國國旗來說明



size(300,200);
background(255);
smooth();
noStroke();


fill(0,0,255);
rect(0,0,width/3,height);
//先從原點(0,0)為基準點畫一藍方塊,寬為畫面的1/3,長等於畫面長


fill(255,0,0);
rect(width/3*2,0,width/3,height);
//因為我知道背景為白,因此中間那白方塊我不用畫
//但第三塊紅方塊要怎麼畫呢,方法千百種,你可以直接給座標或用中心點之類的
//在這因為我知道整個國旗是三等分的,所以我知道我只要先把寬除3再乘2
//把它設為我的起始x點,y點為0就可以了


//saveFrame("p037-##.jpg");






再來會介紹幾個符號 但絕對不會跟陸老師的符號學一樣博大精深
所以不要怕 帶著大學生的程度來學小學生的東西
+  (加) 
-  (減)
*  (乘) 
/  (除) 
%  (整除,這符號比較特別,當10/3=3.33333時,10%3=3....1,也就是會得3餘1的意思)
++  (遞增, x++的意思就是x+1+1+1+1+1.........)
--  (遞減, y++的意思就是y-1-1-1-1-1.........)
+=  (x += 7,意即x+7+7+7+7+7,所以通常我不會用到++或--我都直接用+= 1或-= 1)
-=  (x -= 7,意即x-7-7-7-7-7,所以通常我不會用到++或--我都直接用+= 1或-= 1)
*=  (道理同上 x *= 3,意即 x*3*3*3*3*3*3...........)
/=  (道理同上 y /= 5,意即 y/5/5/5/5/5/5..........)






你看到這一定會覺得我是不是低能兒在講這種連常識都稱不上的東西
但沒辦法 當我們開始宗旨是從零開始 我們除了學站著尿尿外也要學蹲著尿尿
儘管它跟拖褲子放屁沒兩樣 所以還是要講下去


上述的符號是比較常用的
而以下則是課本上的 但CCC沒教想必冷門至極


ceil()
floor()
有學過Ecotect的同學一定記得我們在設材質時有所謂的天花ceiling和地板floor
int x = ceil(2.1) = 3 ,  int x = floor(2.9) = 2
很簡單就知道ceil就是無論小數為多少直接進位,而floor則反之


round()
round則是我們最熟知的四捨五入
int x = round(2.4) = 2 , int x = round(2.5) = 3


min()
max()
看字面就知道是找最大值跟最小值
int k = min(3,-2,9) = -2
int k = max(3,-2,9) = 9






part1結束,晚些再講P51-60的Control 1 : Decisions
因為連我打下來都感到有點心虛,掰噗


Try it! :)

沒有留言:

張貼留言