วันจันทร์ที่ 1 กันยายน พ.ศ. 2557

Lab 2 - Spoon and Fork (with Functions)

จาก Lab 1 มีช้อนส้อมอยู่คู่เดียว มันคงไม่ดีถ้าเกิดมีแขกมาบ้านแล้วช้อนส้อมไม่เพียงพอ

งั้นผมจะเพิ่มช้อนซ้อมออกมา ด้วยการใช้ FUNCTIONS !!!!

สร้าง Fuction DrawSpoon(int RefX,int Ref Y); เพื่อวาดช้อน และ DrawFork(int RefX,int RefY); เพื่อวาดส้อม !!!

โดยการปรับ Parameter RefX และ RefY เพื่อกำหนดจุดซ้ายบนของด้ามจับว่าจะอยู่ตรงไหน



Code อยู่นี่ :D

void setup()
{
  //Initialization
  size(300,500);
  background(255);
  stroke(3);
  fill(180);
  DrawSpoon(90,200);
  DrawFork(190,200);
  DrawSpoon(40,150);
  DrawFork(250,100);
  DrawSpoon(170,210);
  DrawFork(80,130);
  DrawSpoon(100,350);
  DrawFork(150,350);
  DrawSpoon(220,320);
  DrawFork(70,300);
}

void DrawSpoon(int RefX,int RefY){
  //Spoon Variable
  int WSpoon , HSpoon ;
  int WSpoonHandle , HSpoonHandle;
  //Assign Spoon
  WSpoon = 50;
  HSpoon = 80;
  WSpoonHandle = 20;
  HSpoonHandle = 150;
  /*
  WSpoon = Width of Spoon , HSpoon = Height of Spoon
  Reference X , Y at left-top of spoon handle (RefX,RefY)
  */

 
  //Draw Spoon
  rect(RefX,RefY,WSpoonHandle,HSpoonHandle); //Draw Spoon's Handle
  ellipse(RefX+(WSpoonHandle/2),RefY-(HSpoon/2),WSpoon,HSpoon); //Draw Spoon
}

void DrawFork(int RefX,int RefY){
  //Fork Variable
  int WFork , HFork ;
  int WForkHandle , HForkHandle;
  int Space;
  //Assign Fork
  WFork = 50;
  HFork = 80;
  WForkHandle = 20;
  HForkHandle = 150;
  /*
  WFork = Width of Fork , HFork = Height of Fork
  Reference X , Y at left-top of fork handle (RefX,RefY)
  */

 
  //Draw Fork
  rect(RefX,RefY,WForkHandle,HForkHandle); //Draw Fork's Handle
  beginShape(); //Draw Fork
  vertex(RefX,RefY);
  vertex(RefX-((WFork-WForkHandle)/2),RefY);
  vertex(RefX-((WFork-WForkHandle)/2),RefY-HFork);
  vertex(RefX-((WFork-WForkHandle)/2)+((1*WFork)/5),RefY-HFork);
  vertex(RefX-((WFork-WForkHandle)/2)+((1*WFork)/5),RefY-(HFork/2));
  vertex(RefX-((WFork-WForkHandle)/2)+((2*WFork)/5),RefY-(HFork/2));
  vertex(RefX-((WFork-WForkHandle)/2)+((2*WFork)/5),RefY-HFork);
  vertex(RefX-((WFork-WForkHandle)/2)+((3*WFork)/5),RefY-HFork);
  vertex(RefX-((WFork-WForkHandle)/2)+((3*WFork)/5),RefY-(HFork/2));
  vertex(RefX-((WFork-WForkHandle)/2)+((4*WFork)/5),RefY-(HFork/2));
  vertex(RefX-((WFork-WForkHandle)/2)+((4*WFork)/5),RefY-HFork);
  vertex(RefX-((WFork-WForkHandle)/2)+WFork,RefY-HFork);
  vertex(RefX-((WFork-WForkHandle)/2)+WFork,RefY);
  vertex(RefX-((WFork-WForkHandle)/2),RefY);
  endShape();
}