วันอังคารที่ 26 สิงหาคม พ.ศ. 2557

Lab 1 - Spoon and Fork

บอกเลยครับงานนี้ แตกต่างจากงาน Lab 1 - Star แน่นอน เพราะว่านั่งปั่นคืนก่อนส่ง - -.
อะไรๆมันก็ช่างมาประดังกันวันนี้ ผมปั่นงานไม่ทัน ทีหลังจะไม่ดองงานแล้วครับ TT
เพราะฉะนั้น งานนี้อาจจะรูปร่างดูไม่สวยงาม แต่ตัว Coding สามารถปรับแต่งได้มากมายแน่นอนครับ



ส่วนตรงนี้คือ code ของผม

void setup()
{
  //Initialization
  size(300,500);
  background(255);
  stroke(3);
  fill(180);
 
  //Variable
  //Spoon Variable

  int WSpoon , HSpoon ;
  int WSpoonHandle , HSpoonHandle;
  int RefX,RefY;
  //Fork Variable
  int WFork , HFork ;
  int WForkHandle , HForkHandle;
  int Space;
  /*
  W = Width , H = Height
  Reference X , Y at left-top of spoon handle (RefX,RefY)
  Space = space between spoon's handle and fork's handle
  */

 
  //Assign Variable
  //Assign Spoon

  RefX = 90;
  RefY = 200;
  WSpoon = 50;
  HSpoon = 80;
  WSpoonHandle = 20;
  HSpoonHandle = 150;
  //Assign Fork
  WFork = 50;
  HFork = 80;
  WForkHandle = 20;
  HForkHandle = 150;
  Space = 100;
 
  //Draw Spoon
  rect(RefX,RefY,WSpoonHandle,HSpoonHandle); //Draw Spoon's Handle
  ellipse(RefX+(WSpoonHandle/2),RefY-(HSpoon/2),WSpoon,HSpoon); //Draw Spoon
 
  //Draw Fork
  rect(RefX+Space,RefY,WForkHandle,HForkHandle); //Draw Fork's Handle
  beginShape(); //Draw Fork
  vertex(RefX+Space,RefY);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2),RefY);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2),RefY-HSpoon);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+((1*WFork)/5),RefY-HSpoon);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+((1*WFork)/5),RefY-(HSpoon/2));
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+((2*WFork)/5),RefY-(HSpoon/2));
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+((2*WFork)/5),RefY-HSpoon);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+((3*WFork)/5),RefY-HSpoon);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+((3*WFork)/5),RefY-(HSpoon/2));
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+((4*WFork)/5),RefY-(HSpoon/2));
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+((4*WFork)/5),RefY-HSpoon);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+WFork,RefY-HSpoon);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2)+WFork,RefY);
  vertex(RefX+Space-((WFork-WSpoonHandle)/2),RefY);
  endShape();
}


ต่อมา เรามาดูกันว่าตัวแปรตัวไหนบ้าง ที่สามารถปรับค่าเพื่อกำหนดขนาดส่วนไหนได้



จากภาพ สามารถเพิ่มลดค่าของตัวแปร เพื่อเพิ่มลดขนาดของส่วนต่างๆได้

ส่วนจุดสีเขียว คือจุดอ้างอิงในการวาดรูปทั้งหมด ซึ่งอยู่ตรงมุมซ้ายบนสุดของด้ามของช้อน สามารถปรับตำแหน่งได้โดยการปรับค่าของตัวแปร RefX และ RefY

ส่วนระยะห่างระหว่างมุมซ้ายบนของด้ามของช้อน กับมุมซ้ายบนของด้ามของส้อม สามารถปรับค่าความห่างได้ที่ตัวแปร Space