int k = 0; //
void setup(){
size(200 ,200); //กำหนดขนาดของcanvas กว้าง200สูง200
}//
void draw(){ //
background(255); //กำหนดสีของพื้นหลังเป็นสีขาว
int x = 100; //ประกาศและกำหนดตัวแปรxให้กำหนดค่าของพิกัดบนแกนx = 100
int y = 140 ; //ประกาศและกำหนดตัวแปรyให้กำหนดค่าของพิกัดบนแกนy = 140
//ไม่ประกาศตัวแปรkภายในvoid draw()เนื่องจากเมื่อvoid draw()runวนมาถึงในรอบต่อไปแล้วค่า kก็จะมีค่าเป็น0ทุกรอบ แต่เราต้องการให้ค่าkนั้นเพิ่มขึ้น(จากบรรทัดk = k+6;) ดังนั้นจึงไม่ประกาศเป็นlocal variable แต่ประกาศเป็นglobal variableแทนเพราะตัวแปรglobalอยู่นอกฟังก์ชันvoid draw()จะไม่ถูกอ่านค่าที่กำหนดซ้ำอีก
drawLoudspeaker(x, y); //เรียกใช้user defined functionที่วาดตัวลำโพง ซึ่งต้องมีการกำหนดค่า(Parameter)ให้กับฟังก์ชันเพื่อให้ฟังก์ชันนำไปกำหนดค่าภายในการทำงานของฟังก์ชัน
fill(1*k,5*k,2*k); //system functionกำหนดสีของวัตถุ จะเห็นว่ามีการใช้ตัวแปรkด้วย ดังนั้นในแต่ละรอบที่โปรแกรมrunภายในvoid draw() สีของวัตถุก็จะเป็นไปด้วย
drawCircle(x, y, k);
drawCircle(x, y-100, k-30);
//เรียกใช้user defined functionที่วาดคลื่นเสียงของลำโพง จะเห็นว่าเรียกใช้ฟังก์ชัน2ครั้ง แต่กำหนดค่าให้กับฟังก์ชันไม่เหมือนกัน จึงทำให้ผลที่ได้ออกมาไม่เหมือนกัน(ตำแหน่งบนแกนy และ ขนาดของวงกลมที่กำหนดด้วยk)
k = k+6; //ใช้ความสามารถของvoid draw()โดยเมื่อโปรแกรมrunมาถึงคำสั่งนี้ในแต่ละรอบ ค่าkจะถูกเพิ่มขึ้นทีละ6 ซึ่งkเป็นตัวแปรที่กำหนดค่าของขนาดของวงกลม ดังนั้นในแต่ละรอบจะทำให้วงกลมขยายใหญ่ขึ้นเรื่อยๆ เป็นหลักการของanimationที่จริงๆแลวในแต่ละรอบนั้นวงกลมมีขนาดเป็นk+6 เมื่อโปรแกรมrunจะเห็นแต่ละรอบต่อๆกันทำให้เห็นว่าวงกลมใหญ่ขึ้น
if (k > 100){
k = 10; //เมื่อk>100 kจะกลับไปมีค่า=10
}//รูปแบบของเงื่อนไขแบบทำหรือไม่ทำ ถ้าใน( )เป็นจริง จะทำใน{ } ดังนั้นเมื่อk>100 kจะกลับไป=10แล้วเพิ่มขึ้นใหม่ แต่ถ้า k ไม่มากกว่า 100 ก็จะไม่กำหนดให้kกลับไป=10
int q = mouseX;
int w = mouseY;
note(q,w);
}
void note(int x,int y){
ellipse(x,y,20,20);
line(x+10,y,x+10,x-30);
ellipse(x+20,y-10,20,20);
line(x+30,y-10,x+30,y-40);
line(x+10,y-30,x+30,x-40);
}
void drawCircle(int x, int y,int k){
ellipse(x,y,k,k); //วาดวงกลมคลื่นเสียง
} //ประกาศและกำหนดหารทำงานuser defined functionที่วาดคลื่นเสียง โดยมีการรับค่า(Parameter)x, y,และkเพื่อนำไปใช้สร้างวงกลมคลื่นเสียง
void drawLoudspeaker(int x, int y){
fill(100); //กำหนดสีของวัตถุเป็นสีเทา
rect(20, 0, 160, 200); //system functionสำหรับสร้างสีเหลี่ยมผืนผ้าโดนมีการกำหนดจุดแรกบนแกนxและแกนy และความกว้างไปทางขวาและความสูงจากจุดนั้นลงด้านล่างของสีเหลี่ยม
ellipse(x, y, 100, 100); //วาดวงกลมของลำโพงเส้นนอกด้านล่าง
ellipse(x, y-100, 70, 70); //วาดวงกลมของลำโพงเส้นนอกด้านบน
fill(50); //กำหนดสีของวัตถุเป็นสีเทาแต่เข้มกว่าด้านบนเพราะค่าน้อยกว่า
ellipse(x, y, 90, 90); //วาดวงกลมของลำโพงเส้นในด้านล่าง
ellipse(x, y-100, 60, 60); //วาดวงกลมของลำโพงเส้นในด้านบน
} //ประกาศและกำหนดหารทำงานuser defined functionที่วาดตัวลำโพง โดยมีการรับค่า(Parameter)xและy เพื่อนำไปกำหนดจุดศูนย์กลางวงกลมของลำโพงทั้ง2ช่อง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น