void setup() { //ประกาศสิ่งที่ต้องการให้คงที่ไม่มีการทำซ้ำ มีได้เพียง 1 ชุดในงานชิ้นหนึ่งเท่านั้น
size(340, 100); //กำหนดขนาดของภาพ หรือ Output ดูได้จาก size(width, height)
background(#000000); //ใช้ใส่สีให้กับพื้นหลังของภาพ ใส่นี่คือ สีฟ้าอมเขียวอ่อน
boolean [] M = {false, true, true, false,false, false}; /*เทียบเหมือนกับ BINARY 011000*/
boolean [] S = {true, false, true, true, false, false}; /*เทียบเหมือนกับ BINARY 1011100*/
boolean [] result = new boolean [M.length]; /*สร้างตัวแปร Array ชนิด boolean ขึ้นมาชื่อว่า result ไว้เก็บค่า M^S*/
boolean [] translate = new boolean [M.length]; /*สร้างตัวแปร Array ชนิด boolean ขึ้นมาชื่อว่า translate ไว้เก็บค่าตัวที่พิจารณา*/
boolean [] MS = new boolean [M.length]; /*สร้างตัวแปร Array ชนิด boolean ขึ้นมาชื่อว่า MS ไว้เก็บค่าคำตอบ*/
int i; /*ประกาศตัวแปร i ขึ้นมาเป็นจำนวนเต็ม ซึ่งเป็นตัวแปรแบบ local variable*/
boolean z = false; /*สร้างตัวแปรชนิด boolean ที่ชื่อว่า z ให้มีค่าเป็นเท็จ*/
int d = 46; /*เส้นผ่านศูนย์กลางของวงกลมแต่ละอัน*/
int x = d; /*ประกาศตัวแปร x ขึ้นมาเป็นจำนวนเต็ม ให้มีค่าเท่ากับ d ( local variable)*/
int y = 50; /*ประกาศตัวแปร y ขึ้นมาเป็นจำนวนเต็ม ให้มีค่าเท่ากับ 50 ( local variable)*/
for(i = M.length-1; i >= 0; i--) { /*ให้ค่าเริ่มต้นของ i = M.length-1 ตรวจสอบเงื่อนไขว่า i >= 0 หรือไม่ ทุกครั้งก่อนออกจาก loop i นำค่าที่เข้ามาลบไปทีละ 1*/
result[i] = M[i]^S[i]; /*นำค่า M[i]^S[i] มาใส่ในตัวแปร result[i]*/
if(M[i]&S[i] == true) { /*M[i]&S[i] เป็น true หรือไม่*/
if(i-1 >= 0) { /*i-1 มากกว่าหรือเท่ากับ 0 หรือไม่*/
translate[i-1] = false; /*กำหนดให้ translate ตัวที่ i-1 มีค่าเป้น false*/
} else z = true; /*ให้ z = true*/
}
}
if(z == true) { /*หาก F=true เติมสีเขียวม่วง*/
fill(#6600FF );
ellipse(x, y, d, d); /*วาดวงกลมที่มีจุดกึ่งกลางที่ (x, y) และมีเส้นผ่านศูนย์กลางเป็น d เพื่อกำหนดขนาดวงกลม*/
}
for(i = 0; M.length>i; i++) { /*ให้ค่าเริ่มต้นของ i=0 ตรวจสอบเงื่อนไขว่า i น้อยกว่าความยาวของ T หรือไม่ ทุกครั้งก่อนออกจาก loop i บวกเพิ่มไปทีละ 1*/
MS[i] = result[i]^translate[i]; /*กำหนดให้ result[i]^translate[i] มีค่าเป็น MS[i]*/
if(MS[i] == true) { /*หาก MS[i] = true ให้เติมสีเขียวอ่อน*/
fill(#6600FF);
} else{ /*หากไม่ใช่ ให้เติมสีน้ำเงินเข้ม*/
fill(#000033);
}
x+=d; /* บวกค่า x เพิ่มทีละ d*/
ellipse(x, y, d, d); //วาดวงกลมที่มีจุดกึ่งกลางที่ (x, y) และมีเส้นผ่านศูนย์กลางเป็น d เพื่อกำหนดขนาดวงกลม
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น