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

MY SOLAR



 int i = 0;  //ตัวแปรชนิด Global Variable ที่ใช้แทนได้ทั้งฟังก์ชั่น ตัวนี้นำไปใช้ในการนับ Array และเป็นจำนวนเต็ม
float [] r = {1.750, 6.052, 6.371, 3.390, 69.911, 58.232, 25.362, 24.622};  //Array ชุดที่เก็บข้อมูลสำหรับค่ารัศมีของดาวเคราะห์แต่ละดวง เป็นค่าทศนิยม
float [] d = {57.9102, 108.2002 , 180.6002, 227.9002, 478.5002, 833.5002, 1177.0002, 1462.0002};  //Array ชุดที่ใช้เก็บค่าระยะห่างระหว่างดวงดาว
float [] moon = {0, 0, 1, 2, 39, 30, 21, 8};  //Array ที่ใช้กำหนดจำนวนดวงจันทร์
String [] names = {"Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"};  //Array ชนิด String [] ใช้สำหรับเก็บชื่อของดาวเคราะห์ทั้ง 8 ดวง
color [] c = {#FF0033, #FF00CC, #CC33CC, #6666CC, #33CC99, #00CC33, #000033, #FFFF66};  //Array ที่ใช้สำหรับกำหนดสีของดาวเคราะห์ทั้งหมดตามลำดับ จากซ้ายไปขวา
int y = 150;
int a = 80;
void setup() {  //ฟังก์ชั่นหลักที่ใช้ในการกำหนดเรียกใช้งานฟังก์ชั่นต่างๆ
  background(#000000);  //ฟังก์ชั่นที่ใช้เติมสีให้กับพื้นหลัง โดยกำหนดตามแม่สี สีที่ใช้นี้คือ สีน้ำเงินเข้มจนเกือบดำ
  size(1200, 500);  //ฟังก์ชั่นที่ใช้ในการกำหนดพื้นที่ หรือ size(width, height)
  fill(#FF0900);  //ฟังก์ชั่นที่ใช้ในการเติมสีให้กับสิ่งต่างๆ ตามค่าของแม่สี หรือเครื่องหมาย # สีที่ใส่นี้คือ สีแดง
  ellipse (10, 90, 250, 500);  //ฟังก์ชั่นที่ใช้ในการวาดวงรี หรือ ellipse(x, y, width, height) สิ่งที่วาดนี้คือ ดวงอาทิตย์
  while(i < moon.length) {  //กำหนดลูปเงื่อนไขในกรณีที่ค่า i มีค่าน้อยกว่าความยาวของ Array ชื่อ moon
    fill(255);  //เติมสีขาว
    textSize(12);  //ฟังก์ชั่นที่ใช้ในการกำหนดขนาดของข้อความ
    text(names[0], r[0]*65, a);  //ฟังก์ชั่นที่ใช้ในการเขียนข้อความ โดยครั้งนี้กำหนดให้เขียนข้อความตามตำแหน่งของข้อความใน Array ชื่อ names สังเกตได้จาก text(data, x, y)
    text(names[1], r[1]*27, a);
    text(names[2], r[2]*32, a);
    text(names[3], r[3]*71, a);
    text(names[4], r[4]*5, a);
    text(names[5], r[5]*9, a);
    text(names[6], r[6]*27+15, a);
    text(names[7], r[7]*34, a);
    fill(c[i]);  //เติมสีตาม Array ชื่อ c
    ellipse (130+d[i]/2, y, 2.2*r[i], 2.2*r[i]);
    fill(255, 255, 0);  //เติมสีเหลืองให้กับดวงจันทร์
    drawmoon(d[2]+50, r[2]*2, moon[2]);
    drawmoon(d[3]+20, r[3]*2, moon[3]);
    drawmoon(d[4]-110, r[4]*2, moon[4]);
    drawmoon(d[5]-285, r[5]*2, moon[5]);
    drawmoon(d[6]-458, r[6]*2, moon[6]);
    drawmoon(d[7]-600, r[7]*2, moon[7]);
    i = i+1;  //ค่าของ i มีค่าเพิ่มขึ้นทีละ 1 จนกว่าจะสิ้นสุดลูป
  }
 }

void drawmoon(float x, float rad, float n) {  //ฟังก์ชั่นที่ใช้ในการสร้างดวงจันทร์ โดยกำหนดพารามิเตอร์
  int i = 0;  //กำหนดตัวแปร i ชนิด Local Variable ใช้ในการแทนค่าในฟังก์ชั่นนี้
  while(i < n) {  //ลูปกรณีที่ i มีค่าน้อยกว่า n
    ellipse(x+rad*0.7*sin(i), 150+(cos(i)*rad*0.7), 5, 5);
    i = i+2;
  }
}
 

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

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