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

-Solar System-



void setup(){
size(500,300);
background(0);
}
int y=150;
int x=0;
int r=1;
int[][] elements={{-140,70,90,120,160,210,270,330,380},{400,5,10,15,13,35,35,25,25}};
                           //สร้างตัวแปรอาเรย์2มิติ ชนิดจำนวนเต็ม และกำหนดค่า
String[] planet={"Sun","Mercury","Venus","Earth","Mars","Jupiter","Saturn","Uranus","Neptune"};
int[] moon={0,0,0,1,2,66,22,27,13};
void draw(){
 smooth();
 while(x<planet.length){      //วนลูปเพื่อใช้ในการวาดดาว
   drawP(x,r);               //เรียกใช้ฟังชัน drawP โดยมีการส่งค่าไปยังฟังก์ชัน drawP
  if(x%2==0){            //เงื่อนไขที่ใช้ในการ เขียนข้อความกำกับในดาวแต่ละดวง
  text(planet[x],elements[0][x],y-50);
  }
  else{
  text(planet[x],elements[0][x]-5,y+50);
  }
  drawmoon();           //เรียกใช้ฟังก์ชัน drawmoon()
  x=x+1;
 }


}
void drawP(int x,int r){    //ฟังก์ชันที่ใช้ในการวาดดาว โดยมีx และ y เป็นparameter
  if(x==0){
   fill(255,0,0);
  }
  else if(x==6){
  ellipse(elements[0][x],y,70,10);  //ตำแน่งของวงกลมในพิกัดxจะเปลี่ยนไปตาม
                                                     ค่าที่เราเก็บไว้ในตัวแปลelement[][] ข้างต้น
                                                     สังเกตได้จากตัวแปลxที่อยู๋ใน[]
                                                     เพราะทุกๆครั้งที่มีการวนลูปค่าxจะเพิ่มขึ้น
  }
  else{
   fill(255);
  }
  ellipse(elements[0][x],y,elements[r][x],elements[r][x]);
}
void drawmoon(){         //ฟังก์ชันที่ใช้ในการวาดพระจันทร์
  int c=0;
  while(c<moon[x]){
    fill(250,250,100);
   ellipse(elements[0][x]+20*cos(c),y+20*sin(c),3,3);
   c=c+1;
   fill(255);
  }

}
//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจาก lab2 http://com5630043.blogspot.com/search/label/lab2

//อ้างอิงอธิบายเรื่องif-elseจาก lab3 http://com5630043.blogspot.com/search/label/lab3%20%3A%20Condition

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

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