2011年1月6日 星期四
Course review
1. What is your favorite homework?
我最喜歡用arduino製作小鋼琴那個作業,能透過程式碼配合實體的電路板來操作,並能彈出不同音階的聲音,真的很棒!不像以前只有看起來死死的程式碼,很單調乏味,結果只會輸出在螢幕上。
2. What did you learn in this course?
processing
能夠利用簡單的函數,做出很多繪圖的部分。
也可以做成很多和使用者互動的遊戲,例如期中專題,小畫家等等。
arduino
學到了能使用程式去控制硬體的方法,例如讓LED亮或不亮,喇叭發聲等等。
3. What did you change after this course?
上完這學期的課,學到了如何讓使用者透過鍵盤、按鈕,滑鼠和程式去做互動。
也學到了很多視窗控制,和遊戲流程的方法,如何判斷被丟西丟到,如何讓遊戲結束做出相對應的事等等。
HW11: Arduino Piano Show
心得:
這次使用了arduino板子加上arduino程式碼做出小鋼琴。
板子接上簡單的電路、按鈕和喇叭配合程式碼就能彈奏小鋼琴。
按鈕有五個有5個音,所以彈了小蜜蜂和一首我忘記名稱的歌
做出這個很有成就感。
2010年10月28日 星期四
HW06: Image Animating Application
HW06-1:
1.
Images are colored with the tint() function. This function is used the same way as
fill() and stroke(), but it affects only images:
tint() //單一顏色遮罩住圖片,可以做出淡入淡出效果
noTint() //把tint關掉
2.讓圖片移動
就是讓 image(photo, x, y)裡的X和Y做增加或遞減
HW06-2: Coordinate system translation
translate(x, y) //平移系統座標
rotate(angle) //旋轉座標,逕度非角度,會順時鐘旋轉,且角度會一直累積,到2PI會回到原點
HW06-3: Easing Motion
創造一個球,跟著滑鼠跑,之後增加跟屁蟲XD
x1 += (mouseX- x1) * easing; //easing是一個參數,設定跟緊的程度
y1 += (mouseY- y1) * easing;
HW06-4: Storing mouse data in Arrays
把滑鼠座標存在陣列裡,之後複製前一個球等於下個球的位子
for (int i = num-1; i > 0; i--)
{
x[i] = x[i-1];
y[i] = y[i-1];
}
HW06-2: Coordinate system translation
translate(x, y) //平移系統座標
rotate(angle) //旋轉座標,逕度非角度,會順時鐘旋轉,且角度會一直累積,到2PI會回到原點
![]() |
| 會動的電風扇 |
HW06-3: Easing Motion
創造一個球,跟著滑鼠跑,之後增加跟屁蟲XD
x1 += (mouseX- x1) * easing; //easing是一個參數,設定跟緊的程度
y1 += (mouseY- y1) * easing;
HW06-4: Storing mouse data in Arrays
把滑鼠座標存在陣列裡,之後複製前一個球等於下個球的位子
for (int i = num-1; i > 0; i--)
{
x[i] = x[i-1];
y[i] = y[i-1];
}
補充: keyPressed //按鍵觸發布林事件
心得:
這次做得東西都和使用者互動有關係,不再是死死的程式,是生動活潑的!
我非常歡這樣的課程,希望能把這些所學應用到專題上。
2010年10月14日 星期四
HW05: Image Browsing Application
今天學到了這些方法
PImage imgFront = loadImage(f.jpg); //宣告PImage物件變數,使用loadImage載入圖片
image(imgFront, x, y, width, height); //把圖片貼上畫布區
或image(imgFront, x, y);
textSize(n); // 改變字體大小,預設為12
這圖片我覺得還蠻搭的XD
PImage imgFront = loadImage(f.jpg); //宣告PImage物件變數,使用loadImage載入圖片
image(imgFront, x, y, width, height); //把圖片貼上畫布區
或image(imgFront, x, y);
textSize(n); // 改變字體大小,預設為12
這圖片我覺得還蠻搭的XD
今天學的是圖片瀏覽器,讓使用者可以切換圖片來達到不同的組合,並且可以讓滿意的圖片存檔。這些圖片都是班上同學畫的,配一配會有很多種好笑的組合,我覺得這樣真的蠻好玩的。
2010年10月7日 星期四
HW04: Text & Image
1.把字串畫在繪圖區
[宣告區]
PFont font; //宣告PFont物件參考變數
[setup區]
font = loadFont("serif.vlw"); //載入字型
textFont(font); //設定text字型
textSize(); //設定字型大小
text("string", x, y); //畫上字串從(x,y)開始
字型可以至 processing-1.0.5 資料夾搜尋 *.vlw 就會有很多字型被找到
之後把你要的字型複製到目前程式的資料夾,就可以使用
2.存檔
save("lfilename.jpg");
processing會自動存圖片檔至目前程式的資料夾上
今天的課程內容就是延伸上次的小畫家,把擦布、更改畫筆大小,清除,存檔功能做出來。
每次上課都有新的收穫,那種自己做出一個小程式的成就感更是快樂。
[宣告區]
PFont font; //宣告PFont物件參考變數
[setup區]
font = loadFont("serif.vlw"); //載入字型
textFont(font); //設定text字型
textSize(); //設定字型大小
text("string", x, y); //畫上字串從(x,y)開始
字型可以至 processing-1.0.5 資料夾搜尋 *.vlw 就會有很多字型被找到
之後把你要的字型複製到目前程式的資料夾,就可以使用
2.存檔
save("lfilename.jpg");
processing會自動存圖片檔至目前程式的資料夾上
今天的課程內容就是延伸上次的小畫家,把擦布、更改畫筆大小,清除,存檔功能做出來。
每次上課都有新的收穫,那種自己做出一個小程式的成就感更是快樂。
2010年9月30日 星期四
HW03: Interaction with mouse
HW03-1:
延伸上禮拜畫的圓形
讓眼珠可以跟著滑鼠做運動
其關鍵在於
ellipse(x+(mouseX-400)/18,y+(mouseY-400)/18,100,100);
把畫ellipse的X、Y值用變數mouseX、mouseY取代
今天學到的method :
其關鍵在於
ellipse(x+(mouseX-400)/18,y+(mouseY-400)/18,100,100);
把畫ellipse的X、Y值用變數mouseX、mouseY取代
HW03-2:
第2堂課是教做一個小畫家
讓使用者選擇左邊的顏色,能在畫布上作畫
下禮拜要增加功能,清除、擦布、存檔、改畫筆大小
讓使用者選擇顏色關鍵在於界定顏色範圍
mouseX <= 50 && 150 <= mouseY && mouseY <= 200
第2堂課是教做一個小畫家
讓使用者選擇左邊的顏色,能在畫布上作畫
下禮拜要增加功能,清除、擦布、存檔、改畫筆大小
讓使用者選擇顏色關鍵在於界定顏色範圍
mouseX <= 50 && 150 <= mouseY && mouseY <= 200
今天學到的method :
smooth() 使圖形無鋸齒
strokeWeight() 設定圖形邊線大小
stroke() 設定邊框顏色,可以有RGB參數或單一參數
stroke() 設定邊框顏色,可以有RGB參數或單一參數
frameRate() 設定每秒跑幾張圖
mousePress 傳回 true或 false ,如果滑鼠有被按下則傳回 true
mouseX, mouseY 傳回目前滑鼠所在座標
pmouseX, pmouseY 傳回上次滑鼠所在座標
mouseButton 傳回 LEFT 或 RIGHT ,按下左鍵傳回LEFT
2010年9月23日 星期四
HW02: Repetition
hw2-1
(a)
畫出100個透明的隨機矩形
(b) 待補
hw2-2
hw2-3
畫布大小 800*600
將畫面分割成 4*3 格
每個格子都包含有3個圓形
心得:
今天學到了Processing的程式架構,宣告區、setup區、draw區,其中setup()只會執行一次,而draw()會一直執行,如果不想讓draw跑太快,可以用frameRate()限制每秒幾張速度。
fill(a,b,c,d) 原本只知道abc三個參數,而d是代表透明度,範圍0~255,跟視訊處理不一樣(0~100) XD
random(high) //回傳一個float值,0 <= x < high
random(low, high) // 回傳一個float值,low <= x < high
今天還學到用巢狀迴圈,簡單來說迴圈內包含迴圈。
(a)
畫出100個透明的隨機矩形
hw2-2
畫布大小 800*600
將畫面分割成 4*3 格
每個格子都包含有3個圓形
今天學到了Processing的程式架構,宣告區、setup區、draw區,其中setup()只會執行一次,而draw()會一直執行,如果不想讓draw跑太快,可以用frameRate()限制每秒幾張速度。
fill(a,b,c,d) 原本只知道abc三個參數,而d是代表透明度,範圍0~255,跟視訊處理不一樣(0~100) XD
random(high) //回傳一個float值,0 <= x < high
random(low, high) // 回傳一個float值,low <= x < high
今天還學到用巢狀迴圈,簡單來說迴圈內包含迴圈。
2010年9月16日 星期四
HW01: Geometric Painting with Processing
原圖
使用小畫家模擬,小畫家很nice的
使用程式寫出來的
fill() //使用顏色填滿圖形
noFill() //把填滿的顏色取消,剩邊緣
stroke() //使用顏色填滿線,或圖形的邊線
nostroke() //不顯示圖形的邊線
心得:
第一次上課就覺得很好玩,尤其Processing根本是簡化版的語法,base on java,使用上很容易上手。聽老師說下一次的課程式寫會動的,就期待下次上課囉 :D。
訂閱:
文章 (Atom)












