วันพุธที่ 10 กรกฎาคม พ.ศ. 2556

My Love/Passion 2

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  

Canvas


ไม่มีความคิดเห็น:

แสดงความคิดเห็น