วันอังคารที่ 2 กันยายน พ.ศ. 2557

Lab 2 - Soccer Field (with Functions)

จาก Lab 1 เป็นสนามฟุตบอลของสโมสร Anfield ไว้สำหรับใช้แข่ง

แต่ทีม Liverpool มีนโยบายที่ส่งเสริมให้เด็กเล่นฟุตบอล

เลยต้องมีสนามเล็กๆให้เด็กได้ซ้อมเล่น

โดยการเรียกใช้ Function DrawField(int dW,int dH);
ค่า dW คือระยะห่างจากขอบ background ด้านซ้ายมาขอบสนามด้านซ้าย
ค่า dH คือระยะห่างจากขอบ background ด้านบนมาขอบสนามด้านบน



void setup()
{
  //Initialization
  size(550,330);
  background(6,179,0);
  strokeWeight(7);
  stroke(255);
  noFill();
  DrawField(100,100);
}
void DrawField(int dW,dH){
    //Variable
  int WField,HField;
  int SizeCenterCircle;
  float dGoal;
  float dCorner;
  
  /*
  dW = Different distance from width of background to field
  dH = Different distance from height of background to field
  WField = Width of field
  HField = Height of field
  SizeCenterCircle = Width and Height of circle at Center line
  dGoal = Different distance from outline from top to outside of goal area
  dCorner = Different distance from corner of field
  */
  
  //Assign
  WField = width-(2*dW);
  HField = height-(2*dH);
  SizeCenterCircle = 80;
  dGoal = HField/4;
  dCorner = HField/8;
  //Draw
  rect(dW,dH,WField,HField); //Draw Field
  line(dW+(WField/2),dH,dW+(WField/2),dH+HField); //Draw Center line
  ellipse(width/2,height/2,SizeCenterCircle,SizeCenterCircle); //Draw Circle at Center line
  rect(dW,dH+dGoal,1.25*dGoal,2*dGoal); //Draw Left Goal Area
  rect(dW+WField-(1.25*dGoal),dH+dGoal,1.25*dGoal,2*dGoal); //Draw Right Goal Area
  line(dW,dH+dCorner,dW+dCorner,dH); //Draw Left-Top Corner
  line(dW+WField,dH+dCorner,dW+WField-dCorner,dH); //Draw Right-Top Corner
  line(dW,dH+HField-dCorner,dW+dCorner,dH+HField); //Draw Left-Bottom Corner
  line(dW+WField,dH+HField-dCorner,dW+WField-dCorner,dH+HField); //Draw Right-Bottom Corner
    
}