วันพฤหัสบดีที่ 25 กรกฎาคม พ.ศ. 2556

Lab5:Circle





CODE
 void setup(){
  size(250,280);
  background(0);
  int [] a = {1,1,2,3,1};          //สร้าง Array ชื่อ a ที่มีค่าเท่ากับ 1,1,2,3,1 ตามลำดับ
  int x = 30;
  int y = 40;
  int r = 50;
  int i = 0;          //ตัวแปร i เท่ากับ 0 (ลำดับ 0 ใน Array)
  int n = 5;
  while(i<n){          //ถ้าลำดับ i ใน Array ชื่อ a น้อยกว่าค่า n (ซึ่งเท่ากับ 5)
    drawRow(x, y, a[i], r);          //ให้สร้างฟังก์ชันชื่อ drawRow(x,y,a[i],r)
    y = y + r;          //เพิ่มค่า y ทีละ r (ซึ่งเท่ากับเพิ่มทีละ 50)
    i = i + 1;          //เพิ่มค่า i ทีละ 1 เพื่อเลื่อนลำดับใน Array
  }
}

void drawRow(int x1, int y1, int n1, int r1) {          //เรียกใช้ฟังก์ชัน drawRow(int x1,int y1,int n1,int r1) เพื่อสร้างแถวของวงกลม
  int i = 0;          //ตัวแปร i เท่ากับ 0 (ลำดับ 0 ใน Array)
  while (i < n1) {          //ถ้าตัวแปร i น้อยกว่าค่า n1 (ซึ่งเท่ากับค่าใน Array ชื่อ a ที่มีค่าเท่ากับ 1,1,2,3,1 ตามลำดับ )
    drawCircle(x1, y1, r1);          //ให้สร้างฟังก์ชันชื่อ drawCircle(x1,y1,r1)
    x1 = x1 + r1;          //เพิ่มค่า x1 ทีละ r1 (ซึ่งเท่ากับเพิ่มทีละ 50) เพื่อเว้นระยะห่างของวงกลม
    i = i + 1;          //เพิ่มค่า i ทีละ 1
  }
}

void drawCircle(int x2, int y2, int r2) {          //เรียกใช้ฟังก์ชัน drawCircle(int x2,int y2,int r2) เพื่อสร้างวงกลม
  noStroke();
  fill(50+y2,50+(6*y2),100+(5*y2));
  ellipse(x2, y2, r2, r2);
}

จากโค้ด  ค่าใน Array จาก int [] a = {1,1,2,3,1}; จะทำให้ได้วงกลมแถวละ 1,1,2,3,1 ตามลำดับ
             ถ้าเปลี่ยนค่าใน Array จาก int [] a = {1,1,2,3,1}; ไปเป็น int [] a = {2,3,4,3,2}; จะทำให้ได้วงกลมแถวละ 2,3,4,3,2 ตามลำดับ จะได้ดังรูป



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

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