Lightsaber
ภาพนี้เป็นรูปดาบพลังแสงจากหนังเรื่อง Star Wars ที่ผมชอบ ผมได้นำมาสร้างเป็นรูปในโปรแกรมนี้ ผมกำหนดตัวแปรซึ่งเป็น Global Variables เพื่อให้แทนตัวเลขได้ทั้งหมดในฟังก์ชั่นทุกชุด และต้องมีการบวกหรือลบด้วยตัวเลขบ้าง ใช้ฟังก์ชั่นหลัก 2 ชนิดคือ void setup() ซึ่งใช้ในการกำหนดค่าต่างๆ และ void draw() ซึ่งใช้ในการวาด และฟังก์ชั่นที่สร้างขึ้นเอง ซึ่งต้องใช้ฟังก์ชั่นที่วาด หรือ void draw() ในการเรียกใช้ และผมยังใช้ฟังก์ชั่นย่อยหลายตัว เช่น rect, line และ triangle ในการวาดรูปทรงที่ผมสร้างขึ้น หรือผมใช้สี่เหลี่ยม สามเหลี่ยม และเส้นในการวาด ในการตกแต่งภาพนั้น ผมยังคงใช้ฟังก์ชั่น fill() ที่ต้องใช้ตามค่าของแม่สี หรือเครื่องหมาย # และ background() ในการกำหนดสีของพื้นหลังตามค่าของแม่สีที่ใส่ในวงเล็บ เราสามารถดูค่าของสีได้จาก Color Selector ผลที่ได้ก็เป็นอย่างที่เห็น ขอเชิญทุกคนลองทำกันได้นะครับ
Processing Code
int a=50;int b=100;
int c=200; //บางจุดต้องมีการบวกหรือลบด้วยตัวเลข เพื่อให้ได้ค่าที่ต้องการ
int d=300; //ตัวแปรเหล่านี้เป็น Global variables ซึ่งสามารถแทนได้ในทุกฟังก์ชั่น ถ้าเป็น Vocal Variables จะอยู่ในฟังก์ชั่น และแทนได้แค่ในฟังก์ชั่นนั้น
void setup() { //ฟังก์ชั่นหลักซึ่งใช้ในการกำหนดขนาด หรือพื้นหลัง มีได้เพียง 1 ฟังก์ชั่นเท่านั้น
size(500, 300); //ฟังก์ชั่นที่ใช้ในการกำหนดขนาดของพื้นที่ หรือ size(width, height)
background(255, 240, 98); //ฟังก์ชั่นที่ใช้ในการกำหนดพื้นหลังให้มีสีต่างๆ ตามค่าของแม่สี
}
void drawLightsaber() { //ฟังก์ชั่นที่สร้างขึ้นเอง ชื่อ drawLightsaber
fill(#CBBFBF); //ฟังก์ชั่นที่ใช้ในการเติมสีด้วยเครื่องหมาย # หรือค่าของแม่สี
rect(a-40, b+30, b, a-20); //ฟังก์ชั่นที่ใช้ในการวาดรูปสี่เหลี่ยม หรือ rect(x, y, width, height)
fill(#FFFFFF);
rect(a+35, b+30, a-30, a-40);
fill(#030303);
rect(a+10, b+30, a-30, a-20);
fill(#A7A6A6);
rect(a-40, b+30, a-20, a-20);
line(a-40, b+35, a-10, b+35); //ฟังก์ชั่นที่ใช้ในการวาดเส้น หรือ line(x1, y1, x2, y2) ตั้งค่าตามพิกัดที่กำหนดในแต่ละจุด
line(a-40, b+40, a-10, b+40);
line(a-40, b+45, a-10, b+45);
line(a-40, b+50, a-10, b+50);
line(a-40, b+55, a-10, b+55);
fill(#CECECE);
rect(b+10, b+35, a-15, a-30);
fill(#897D7D);
rect(b+25, b+35, a-40, a-30);
fill(#030303);
rect(b+45, b+30, a-30, a-20);
fill(#1254DE);
rect(b+65, b+35, d+10, a-30);
triangle(d+175, b+35, d+175, b+55, d+190, b+44); //ฟังก์ชั่นที่ใช้ในการวาดรูปสามเหลี่ยม หรือ triangle(x1, y1, x2, y2, x3, y3) ต้องตั้งค่าตามพิกัดที่กำหนดในแต่ละจุด ให้ได้รูปที่ต้องการ
}
void draw() { //ฟังก์ชั่นหลักที่ใช้ในการวาด มีได้เพียง 1 ฟังก์ชั่นเท่านั้น
drawLightsaber();
} //เรียกใช้ฟังก์ชั่นที่สร้างเอง หากไม่สร้างฟังก์ชั่นนี้ จะยังไม่สามารถสร้างฟังก์ชั่นที่เราทำขึ้นได้
หมายเหตุ สังเกตได้ว่า เครื่องหมาย // เป็นการบอกว่า ฟังก์ชั่นชุดนี้ไม่่ใช้งาน และฟังก์ชั่นหลักที่ใข้ยังเป็น function without parameter
ไม่มีความคิดเห็น:
แสดงความคิดเห็น