วันเสาร์ที่ 21 กันยายน พ.ศ. 2556

Functions (Medium)


Exercise 1: Write Java program to allow the user to input two integer values and then the program prints the results of adding, subtracting, multiplying, and dividing among the two values.

See the example below:
Enter value a:30
Enter value b:10
The result of adding is 40.
The result of subtracting is 20;
The result of multiplying is 300.
The result of dividing is 3.
Solution:

void setup()
{
  caculateValues();
}

void caculateValues() {

  int a = 30, b = 10;
  int resulta = 40, results = 20, resultm = 300;
  float resultd = 3;
  print("Enter a:");
  print("Enter b:");
  resulta=a+b;
  results=a-b;
  resultm=a*b;
  resultd=(float)a/b;
  println("The result of adding is "+resulta);
  println("The result of subtracting is "+results);
  println("The result of multiplying is "+resultm);
  println("The result of dividing is "+resultd);
}

Arrays (Medium)


Exercise 1: By using the bubble sort algorithm, write a Java program to sort an integer array of 10 elements in ascending.

Solution:

void setup() {

  int[] arr= { 12, 34, 23, 2, 4, 56, 80, 34, 45, 90};
  bubblesort(arr, arr.length);
  int i = 0;
  while (i<arr.length) {
    println(arr[i]);
    i++;
  }
}

void bubblesort(int[] dataset, int n) {
  int i = 0;
  while (i<n) {
    int j = n-1;
    while (j>i) {
      if (dataset[j]<dataset[j-1]) {
        int temp = dataset[j];
        dataset[j] = dataset[j-1];
        dataset[j-1] = temp;
      }
      j--;
    }
    i++;
  }
}

Condition (Medium)


Exercise 1: Write a Java program that determines a student’s grade.

The program will read three types of scores(quiz, mid-term, and final scores) and determine the grade based on the following rules:
-if the average score >=90% =>grade=A
-if the average score >= 70% and <90% => grade=B
-if the average score>=50% and <70% =>grade=C
-if the average score<50% =>grade=F
See the example output below:
Quiz score: 80
Mid-term score: 68
Final score: 90
Your grade is B.
Solution:

void setup() {
  showGrade();
}

void showGrade() {

  float quiz_score = 80; 
  float mid_score = 68; 
  float final_score = 90; 
  float avg = (quiz_score+mid_score+final_score)/3;

  if (avg>=90) {
    println("Your grade A.");
  }
  else if (avg>=70 && avg<90) {
    println("Your grade B.");
  }
  else if (avg>=50 && avg<70) {
    println("Your grade C.");
  }
  else if (avg<50) {
    println("Your grade F.");
  }
  else {
    println("Invalid");
  }
}

Variable (Hard)


Exercise 3: Write a Java program to declare two integer variables, one float variable, and one string variable and assign 10, 12.5, and "Java programming" to them respectively. Then display their values on the screen.

Solution:


void setup() {
  accessVariables();
}

void accessVariables() {

  int x = 10;
  float y = 12.5;
  String s = "Java programming";
  println(x);
  println(y);
  println(s);
}

Variable (Medium)


Exercise 2:Write a Java program to display the asterisk pattern as shown below:

*****
*****
*****
*****
*****
Solution:

void setup() {
  printAsterisk("*****");
}

void printAsterisk(String x) {
  println(x);
  println(x);
  println(x);
  println(x);
  println(x);

}

Variable (Easy)


Exercise 1: Write a Java program to display Hello World on the screen.

Solution:

void setup() {
  String a = "Hello World.";
  println(a);
}

Loop (Easy)

 Write a Java program by using two for loops to produce the output shown below:



*******

******

*****

****

***

**

*
Solution:

void setup() {
  printStars();
}

void printStars() {
  int i = 0;
  while (i<=6) {
    int j = 1;
    while (j<=7-i) {
      print("*");
      j++;
    }
    println("");
    i++;
  }
}

Loop (Medium)

Exercise 2: Write a Java program by using three for loops to print the following pattern:


1******

12*****

123****

1234***

12345**

123456*

1234567

Solution:


void setup() {
  printPattern();
}

void printPattern() {
  int i = 1;
  //int j = 1;
  //int k = 7-i;

  while ( i <= 7 ) {
    int j = 1;
    while ( j <= i ) {
      print(j);
      ++j;
    }
    int k = 7-i;
    while ( k>= 1 ) {
      print("*");
      k--;
    }
    println("");
    i++;
  }
}

Loop (Hard)


Write Java program to print the table of characters that are equivalent to the Ascii codes from 1 to 122.

Solution:

void setup() {
  Characters();
}

void Characters() {

  int i =1;
  while (i <=122)
  {
    print((char)i+"\t");
    if (i % 10 == 0) {
      print("");
    }
    i++; 
  }
}

GCD & LCD


void setup() {
  println("GCD is "+gcd(2, 3));
  println("LCD is "+lcd(2, 3));
}

int gcd(int x, int y) {
  if(x==0){
    return y;
  }
  if(y==0){
    return x;
  }
  if(x>y){
    return gcd(y, x%y);
  }else{
    return gcd(x, y%x);
  }
}

int lcd(int x, int y) {
  return x*y/gcd(x, y);
}

Palindrom


String data = "level";

void setup() {
  if(Palindrom(data)==true) {
    println("YES!!! "+data+" is Palindrom");
  }else{
    println("NO!!! "+data+" isn't Palindrom");
  }
}

boolean Palindrom(String y) {
  String z = reString(y);
  int i = 0;
  int count = 0;
  while(i<y.length()) {
    if(z.charAt(i)==data.charAt(i)){
      count++;
    }
    i++;
  }  
  if(count==data.length()) {
    return true;
  }else{
    return false;
  }
}

String reString(String x) {
  int i = 0;
  String re = "";
  while (i<x.length ()) {
    re = re + x.charAt(x.length()-i-1);
    i++;
  }
  return re;
}

Class Button

Button A = new Button("NASIT");
void setup() {
  size(200, 200);
  background(255);
}

void draw() {
  A.clicked();
  A.display();
}

class Button {    

  String name;
  int x;
  int y;
  int r;  

  Button(String n) {  
    this.name = n;
    x = 100;
    y = 100;
    r = 50;
  }

  void clicked() {
    if (mousePressed==true) {
      println(this.name);            
      mousePressed = false;
    }
  }
  void display() {
    fill(200);
    rectMode(CENTER);
    rect(x, y, r, r);
  }
}

Solar

String[] name = {"Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"};
int[] moon = {0, 0, 1, 2, 66, 22, 27, 13};
int[][] data = {{35, 40, 45, 43, 75, 70, 55, 52}, {180, 230, 280, 350, 420, 500, 580, 640}};
int i = 0;
void setup() {
  size(700, 400);
  Star();
  fill(255, 0, 0);
  ellipse(-250, 200, 700, 700);
  text("Number of the moon", 300, 350);

}

void Star() {
  while(i<=7) {
    fill(random(0, 255), random(0, 255), random(0, 255));
    ellipse(data[1][i], height/2, data[0][i], data[0][i]);
    fill(0);
    text(name[i], data[1][i]-15, 100);
    textSize(16);
    text(moon[i], data[1][i]-10, 300);
    i++;
  }
}

XO

float n = 0.33333;
int count = 0;
int r =  140;
float[][] pos = {
  {
    83.3333, 250, 353.333
  }
  , {
    83.3333, 83.3333, 20
  }
};
void setup() {
  size(500, 500);
  background(0, 255, 0);
  strokeWeight(10);
  while (count<=1) {
    line(width*n, 0, width*n, height);
    line(0, height*n, width, height*n);
    n = n + 0.33333;
    count++;
  }
  OX();
}


void OX() {
  int i = 0;
  textSize(250);
  while (i<2) {
    ellipse(pos[0][i], pos[1][i], r, r);
    i++;
  }
  text('x', 345, 150);
}

Othello

float n = 0.125;
int count = 0;
int r = 55;
float[][] pos = {{218.75, 281.25, 218.75, 281.75},{218.75, 218.75, 281.75, 281.25}};
void setup() {
  size(500,500);
  background(0, 255, 0);
  strokeWeight(3);
  while (count<=6) {
    line(width*n, 0, width*n, height);
    line(0, height*n, width, height*n);
    n = n + 0.125;
    count++;
  }
  Circle();
}

void Circle() {
  int i = 0;
  while(i<4) {
    if(i%3==0){
      fill(0);
    }else{
     fill(255);
    }
    ellipse(pos[0][i], pos[1][i], r, r);
    i++;
  }
}

Barchart Array 2D

float[] l = {46,61,62,88,97,127,130,170,304,316}; // ประกาศตัว l เป็น Array เป็นค่าของข้อมูล
String[][] data = {{"Samut Songkhram","Chumphon","Phangnga","Kamphaeng Phet","Mae Hong Son","Suphan Buri","Uthai Thani","Trat","Phayao","Uttaradit"}, {"46","61","62","88","97","127","130","170","304","316"}};  // ประกาศตัว name เป็น Array เป็นชื่อของข้อมูล
float max = l[0] , min = l[0] , sum = 0 , average;  // ประกาศตัวแปรเป็น Global
void setup() {
  size(700,650);  // คำสั่งกำหนดขนาดของเฟรม
  background(200); // คำสั่งกำหนดพื้นหลัง
  smooth();
  Chart(); // เรียกใช้ฟังก์ชัน
}

void Chart() {
  int i = 0;
  int h = 25;
  int x = 30;
  int y = 60;
  while(i<l.length){  // จะเข้าเงื่อนไขต่อเมื่อค่า i น้อยกว่าจำนวนของตัวแปร l
    fill(random(0,256),random(0,256),random(0,256)); // ใส่พื้นหลังของวัตถุ
    rect(x,y,l[i],h);  // วาดสี่เหลี่ยม
    fill(0);  // ใส่พื้นหลังของวัตถุ
    textSize(24);  // สั่งให้เพิ่มขนาดของตัวหนังสือเป็นขนาด 24
    text(data[0][i],x,y);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (x,y)
    text(data[1][i],x+500,y+20);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (x+500,y+20)
    y = y + (h*2);  // ให้ y มีค่าเท่ากับ y + (h*2)
     if(l[i]<=min) { // จะเข้าเงื่อนไขต่อเมื่อค่า l[i] น้อยกว่าหรือเท่ากับ min
      min=l[i]; // ให้ min เท่ากับ l[i]
    }
     if(l[i]>=max) {  // จะเข้าเงื่อนไขต่อเมื่อค่า l[i] มากกว่าหรือเท่ากับ max
      max=l[i]; // ให้ max เท่ากับ l[i]
    }
    sum = sum + l[i];  // ให้ sum มีค่าเท่ากับ sum + l[i]
    i++;  // เพิ่มค่า i ทีละ 1
  }
 average = sum/l.length;  // ให้ average มีค่าเท่ากับ sum/l.length
 text("Average is "+average,180,630); // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (180,630)
 text("Min is "+min,180,570);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (180,570)
 text("Max is "+max,180,600);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (180,600)
 text("Provinces with the lowest jobless in 2011",80,30);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (80,30)
}

วันศุกร์ที่ 26 กรกฎาคม พ.ศ. 2556

Binary

boolean[] t = {true,true,false,false,true};   // ประกาศตัวแปรประเภท boolean เก็บค่า True กับ False

void setup() {
  size(500,300);  // กำหนดขนาดของเฟรมเป็น 500x300
  background(255);  // กำหนดพื้นหลังเป็นสีขาว
  smooth();
}

void draw() {
  int r = 80;  // ประกาศ และกำหนด ตัว r เป็นค่าของรัศมี
  int i = 0;  // ประกาศ และกำหนด ตัว i เป็นค่าในการไล่นับ
  int x = 90;  // ประกาศ และกำหนด ตัว x เป็นค่าตำแหนางของแกน X
  while(i<t.length) {  // จะเข้าเงื่อนไขเมื่อ i มีค่าน้อยกว่า จำนวนตัวแปรของ t
    if(t[i]==true){  // ถ้า t ตัวที่ i มีค่าเป็นจริงแล้ว
      fill(255);  // ให้ใส่สีวัตถุเป็นสีขาว
      Circle(x,r);  // เรียกใช้ฟังก์ชัน Circle
      x = x + r;  // ให้ค่า x เพิ่มขึ้น เท่ากับ x+r
    }else{ // ถ้าไม่เข้า if
      fill(0);  // ให้ใส่สีวัตถุเป็นสีดำ
      Circle(x,r); // เรียกใช้ฟังก์ชัน Circle
      x = x + r; // ให้ค่า x เพิ่มขึ้น เท่ากับ x+r
    }
    i++;  //  เมื่อออกจาก if ให้ i เพิ่มขึ้นทีละ 1
  }


void Circle(int x, int r) { 
  ellipse(x, 150, r, r);   // วาดวงกลม
}


Some UFO

int x = 0, count = x;  // ประกาศ และกำหนดตัวแปรแบบ Global variale
int[] n = {100,200,300}; // ประกาศ และกำหนดตัวแปรแบบ Global variale (Array)
int[] h = {1,2,3}; // ประกาศ และกำหนดตัวแปรแบบ Global variale (Array)

void setup() {
  size(600, 400); // กำหนดขนาดจอภาพที่แสดง
  smooth();
  strokeWeight(5); // กำหนดความหนาของเส้นวัตถุ}

void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  background(x, 255, 255);  // กำหนดพื้นหลังให้มีค่าเปลี่ยนไปตามค่า x
  int i = 0;
  while(i<h.length) {
    drawUFO(x, n[i], h[i]);  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ
    i++;
  }
  if (count <= 400) { // ใช้คำสั่งเงื่อนไข (if) โดยที่ ถ้า count มีค่าน้อยกว่าหรีลือ 400
    x = x + 1;  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ เพิ่มขึ้นทีละ  1
    count = x;  // สั่งให้ count มีค่าเท่ากับ x  }
  else {  // แต่ถ้านอกจากนั้น
    x = x - 1;  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ ลดลงทีละ  1
    count = count + 1; // สั่งให้เพิ่มค่าของ count โดยสั่งให้ เพิ่มขึ้นทีละ  1
  }
  if (count == 400*2) { // และถ้า count มีค่าเท่ากับ 400*2
    count = 0;  // ให้ count เท่ากับ 0  }
}

void drawUFO(int x, int y, int n) { // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  //int y = 300;  // ประกาศ และกำหนดตัวแปร y ให้มีค่าเป็นตำแหน่งแกน Y  int rx = 100;   //  ประกาศ และกำหนดตัวแปร rx เพื่อกำหนดรัศมีใแกน X
  int ry = 50;  //  ประกาศ และกำหนดตัวแปร ry เพื่อกำหนดรัศมีใแกน Y
  int i = 0; //  ประกาศ และกำหนดตัวแปร i เพื่อไล่
  while(i<n) {
    line(x, y - 70, x, y);   // คำสั่งวาดเส้น
    fill(255, 0, 0); // ใส่สีพื้นหลังวัตถุ    ellipse(x, y - 70, 20, 20);   // คำสั่งวาดวงกลม
    fill(255, 255, 0); // ใส่สีพื้นหลังวัตถุ
    ellipse(x, y - 10, rx - 50, ry);   // คำสั่งวาดวงกลม    fill(0); // ใส่สีพื้นหลังวัตถุ
    ellipse(x, y, rx, ry - 25);   // คำสั่งวาดวงกลม    x = x + 100; // ให้ x เพิ่มขึ้นทีละ 100
    i++; // ให้ i เพิ่มขึ้นทีละ 100
  }
}

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

Barchart (Calculate max/min/average for your data)

float[ ] l = {64,61,62,88,97,127,130,170,304,316}; // ประกาศตัว l เป็น Array เป็นค่าของข้อมูล
String[ ] name = {"Samut Songkhram","Chumphon","Phangnga","Kamphaeng Phet","Mae Hong Son","Suphan Buri","Uthai Thani","Trat","Phayao","Uttaradit"};  // ประกาศตัว name เป็น Array เป็นชื่อของข้อมูล
String[ ] value = {"64","61","62","88","97","127","130","170","304","316"};  // ประกาศตัว value เป็น Array เก็บค่าของข้อมูลที่เป็นข้อความ
float max = l[0] , min = l[0] , sum = 0 , average;  // ประกาศตัวแปรเป็น Global
void setup() {
  size(700,650);  // คำสั่งกำหนดขนาดของเฟรม
  background(255); // คำสั่งกำหนดพื้นหลัง
  smooth();
  Chart(); // เรียกใช้ฟังก์ชัน
}

void Chart() {
  int i = 0;
  int h = 25;
  int x = 30;
  int y = 60;
  while(i<l.length){  // จะเข้าเงื่อนไขต่อเมื่อค่า i น้อยกว่าจำนวนของตัวแปร l
    fill(random(0,256),random(0,256),random(0,256)); // ใส่พื้นหลังของวัตถุ
    rect(x,y,l[i],h);  // วาดสี่เหลี่ยม
    fill(0);  // ใส่พื้นหลังของวัตถุ
    textSize(24);  // สั่งให้เพิ่มขนาดของตัวหนังสือเป็ขนาด 24
    text(name[i],x,y);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (x,y)
    text(value[i],x+500,y+20);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (x+500,y+20)
    y = y + (h*2);  // ให้ y มีค่าเท่ากับ y + (h*2)
     if(l[i]<=min) { // จะเข้าเงื่อนไขต่อเมื่อค่า l[i] น้อยกว่าหรือเท่ากับ min
      min=l[i]; // ให้ min เท่ากับ l[i]
    }
     if(l[i]>=max) {  // จะเข้าเงื่อนไขต่อเมื่อค่า l[i] มากกว่าหรือเท่ากับ max
      max=l[i]; // ให้ max เท่ากับ l[i]
    }
    sum = sum + l[i];  // ให้ sum มีค่าเท่ากับ sum + l[i]
    i++;  // เพิ่มค่า i ทีละ 1
  }
 average = sum/l.length;  // ให้ average มีค่าเท่ากับ sum/l.length
 text("Average is "+average,180,630); // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (180,630)
 text("Min is "+min,180,570);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (180,570)
 text("Max is "+max,180,600);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (180,600)
 text("Provinces with the lowest jobless in 2011",80,30);  // สั่งให้แสดงตัวหนังสือบนเฟรมที่ตำแหน่ง (80,30)
}

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

Curve stitching

void setup() {
  size(500, 500);
  smooth();
  background(255);
  drawline1(0);
}

void drawline1(int x) {
  int count = 0;
  int s = 2;
  int n = height/s;
  while(count<n) {
    line(0, x, x, height);
    line(x, 0, width, x);
    x = x + s;
    count = count + 1;
  }
}


         เป็นการใช้คำสั่ง while loop  วาดรูปซ้ำๆกัน โดยการกำหนดเงื่อนไขคือ เมื่อ count มีค่า น้อยกว่า ค่า n แล้ว ซึ่งตอนแรก เรากำหนดค่าของ count เป็น 0 ดังนั้นเป็นจริงตามเงื่อนไข จึงสั่งให้วาดเส้น 1 เส้น แล้ววาดเส้นต่ออีก 1 เส้น แล้วให้ x = x + s เป็นการเพิ่นค่าของ x ให้เท่ากับ
 x + s แล้วให้ count = count + 1 เป็นการเพิ่นค่าของ count เพิ่มขึ้นอีก 1 แล้วกลับไปเช็คเงื่อนไขต่ออีกรอบ แล้วถ้าเงื่อนไขยังเป็นจริงอยู่ ก็จะวนขึ้นมาทำแบบนี้ไปเรื่อย จนกว่าเงื่อนไขจะเป็นเท็จ หรือก็คือ count มีค่ามากกว่า หรือเท่ากับค่าของ n จึงออกจาก loop แล้วก็คำสั่งต่อไปจนจบ
         รูปที่ออกมาก็จะกลายเป็นรูปเส้นโค้งที่สวยงาม



Mobile

void setup() {
  size(500, 750);
  smooth();
  background(255);
  drawMobile(10);
}

void drawMobile(int x) {
  int count = 0;
  int w = 20;
  int n = 20;
  int s = 10;
  int l = 300;
  while(count<n) {
    fill(random(0, 256), random(0, 256), random(0, 256));
    noStroke();
    rect(x, 100, w, l);
    x = x + (s+w);
    l = l + 20;
    count = count + 1;
  }
  fill(134, 67, 0);
  rect(0, 100, width, w);
}


       เป็นการใช้คำสั่ง while loop  วาดรูปซ้ำๆกัน โดยการกำหนดเงื่อนไขคือ เมื่อ count มีค่า น้อยกว่า ค่า n แล้ว ซึ่งตอนแรก เรากำหนดค่าของ count เป็น 0 ดังนั้นเป็นจริงตามเงื่อนไข จึงสั่งให้วาดสี่เหลี่ยม 1 รูป แล้วให้ x = x + (s+w) เป็นการเพิ่นค่าของ x ให้เท่ากับ (s+w) แล้วให้ count = count + 1 เป็นการเพิ่นค่าของ count เพิ่มขึ้นอีก 1 แล้วกลับไปเช็คเงื่อนไขต่ออีกรอบ แล้วถ้าเงื่อนไขยังเป็นจริงอยู่ ก็จะวนขึ้นมาทำแบบนี้ไปเรื่อย จนกว่าเงื่อนไขจะเป็นเท็จ หรือก็คือ count มีค่ามากกว่า หรือเท่ากับค่าของ n จึงออกจาก loop แล้วก็คำสั่งต่อไปจนจบ รูปที่ออกมาก็จะได้โมบายที่มีปลายยาวขึ้นเรื่อยๆ

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

UFO

int x = 0;  // ประกาศ และกำหนดตัวแปร x แบบ Global variale
int count = x; // ประกาศ และกำหนดตัวแปร count แบบ Global variale

void setup() {
  size(400, 400); // กำหนดขนาดจอภาพที่แสดง
  smooth();
  strokeWeight(5); // กำหนดความหนาของเส้นวัตถุ
}

void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  background(x, 255, 255);  // กำหนดพื้นหลังให้มีค่าเปลี่ยนไปตามค่า x
  drawUFO(x);  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวตถุ
  
  if (count <= 400) { // ใช้คำสั่งเงื่อนไข (if) โดยที่ ถ้า count มีค่าน้อยกว่าหรีลือ 400
    x = x + 1;  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ เพิ่มขึ้นทีละ  1
    count = x;  // สั่งให้ count มีค่าเท่ากับ x
  }
  else {  // แต่ถ้านอกจากนั้น
    x = x - 1;  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ ลดลงทีละ  1
    count = count + 1; // สั่งให้เพิ่มค่าของ count โดยสั่งให้ เพิ่มขึ้นทีละ  1
  }
  if (count == 400*2) { // และถ้า count มีค่าเท่ากับ 400*2
    count = 0;  // ให้ count เท่ากับ 0
  }
}

void drawUFO(int x) { // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  int y = 250;  // ประกาศ และกำหนดตัวแปร y ให้มีค่าเป็นตำแหน่งแกน Y
  int rx = 200;   //  ประกาศ และกำหนดตัวแปร rx เพื่อกำหนดรัศมีใแกน X
  int ry = 100;  //  ประกาศ และกำหนดตัวแปร ry เพื่อกำหนดรัศมีใแกน Y
  line(x, y - 120, x, y);   // คำสั่งวาดเส้น
  fill(255, 0, 0); // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y - 120, 20, 20);   // คำสั่งวาดวงกลม
  fill(255, 255, 0); // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y - 30, rx - 100, ry);   // คำสั่งวาดวงกลม
  fill(0); // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry - 50);   // คำสั่งวาดวงกลม
}


Like (If)

int y = 70;  // ประกาศ และกำหนดตัวแปร y ให้เป็นค่าแกน Y โดยกำหนดเป็น Global variable

void setup() {
  size(300, 300); // กำหนดขนาดของจอที่แสดง
  smooth();
  drawMountain(90, 250, 300); // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าคงที่
  drawSun(220, 50, 50); // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าคงที่
}

void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  int x = 95;  // ประกาศ และกำหนดตัวแปร x ให้เป็นค่าแกน X
  int r = 50;  // ประกาศ และกำหนดตัวแปร r ให้เป็นค่ารัศมีของวัตถุ
  y = y + 5;  // สั่งให้ y เพิ่มขึ้นทีละ 5
  drawWater(150, 370, 270);  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าคงที่
  fill(y-10, 255, 255);  // ใส่สีพื้นหลังวัตถุ ให้เปลี่ยนไปตามค่าของ y
  drawWaterfall (x, y, r);   // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าของตัวแปร
  if(y > 300) {  // ใช้คำสั่งเงื่อนไข (if) โดยที่ ถ้า y มีค่ามากกว่า 320
    y = 70; // ก็จะให้ x = 70
  }
}


void drawWaterfall (int x, int y, int r) { // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  strokeWeight(2); // คำสั่งให้เส้นวัตถุหนาขึ้น
  stroke(255);  // คำสั่งให้เส้นวัตถุเป็นสีขาว
  ellipse(x, y, r, r);  // คำสั่งวาดวงกลม
}

void drawWater(int x, int y, int r) {  // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  fill(0, 250, 250); // ใส่สีพื้นหลังวัตถุ
  noStroke(); // คำสั่งให้เส้นวัตถุไม่มี
  ellipse(x, y, r+100, r); // คำสั่งวาดวงกลม
}

void drawMountain(int x, int y, int r) { // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  int s = 50 ;  // ประกาศ และกำหนดตัวแปร s เป็นค่าความห่างของวัตถุ
  fill(0, 255, 0);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, r, r+100); // คำสั่งวาดวงกลม
  ellipse((x+r)-s, y, r, r+100); // คำสั่งวาดวงกลม
}

void drawSun(int x, int y, int r) { // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  fill(242, 190, 13);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, r, r); // คำสั่งวาดวงกลม
}



น้ำตกไหลเรื่อยๆๆๆๆๆๆ

Like (Function)

int y = 70;  // ประกาศ และกำหนดตัวแปร y ให้เป็นค่าแกน Y โดยกำหนดเป็น Global variable

void setup() {
  size(300, 300); // กำหนดขนาดของจอที่แสดง
  smooth(); 
  drawMountain(90, 250, 300); // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าคงที่
  drawSun(220, 50, 50); // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าคงที่
}

void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  int x = 95;  // ประกาศ และกำหนดตัวแปร x ให้เป็นค่าแกน X
  int r = 50;  // ประกาศ และกำหนดตัวแปร r ให้เป็นค่ารัศมีของวัตถุ
  y = y + 5;  // สั่งให้ y เพิ่มขึ้นทีละ 5
  drawWater(150, 370, 270);  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าคงที่
  fill(y-10, 255, 255);  // ใส่สีพื้นหลังวัตถุ ให้เปลี่ยนไปตามค่าของ y
  drawWaterfall (x, y, r);   // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าของตัวแปร
  
}


void drawWaterfall (int x, int y, int r) { // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  strokeWeight(2); // คำสั่งให้เส้นวัตถุหนาขึ้น
  stroke(255);  // คำสั่งให้เส้นวัตถุเป็นสีขาว
  ellipse(x, y, r, r);  // คำสั่งวาดวงกลม
}

void drawWater(int x, int y, int r) {  // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  fill(0, 250, 250); // ใส่สีพื้นหลังวัตถุ
  noStroke(); // คำสั่งให้เส้นวัตถุไม่มี
  ellipse(x, y, r+100, r); // คำสั่งวาดวงกลม
}

void drawMountain(int x, int y, int r) { // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  int s = 50 ;  // ประกาศ และกำหนดตัวแปร s เป็นค่าความห่างของวัตถุ
  fill(0, 255, 0);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, r, r+100); // คำสั่งวาดวงกลม
  ellipse((x+r)-s, y, r, r+100); // คำสั่งวาดวงกลม
}

void drawSun(int x, int y, int r) { // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  fill(242, 190, 13);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, r, r); // คำสั่งวาดวงกลม
}





น้ำตกๆๆๆๆๆๆ
  

Sport (If)

int xa = 0; // ประกาศ และกำหนดตัวแปร xa แบบ Global variale

void setup() {
  size(500, 500); // กำหนดขนาดของจอที่แสดง
  smooth();
  strokeWeight(3);
}

void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  background(255, 255, 255);  // ใส่เพิ่มหลัง
  int x = 430; // ประกาศ และกำหนดตัวแปร x ให้เป็นค่าแกน X
  int y = 250; // ประกาศ และกำหนดตัวแปร y ให้เป็นค่าแกน Y
  int rx = 100; //  ประกาศ และกำหนดตัวแปร rx เพื่อกำหนดรัศมีใแกน X
  int ry = 250;  //  ประกาศ และกำหนดตัวแปร ry เพื่อกำหนดรัศมีใแกน Y
  drawTarget(x, y, rx, ry);  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ
  drawArrow();  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ อีกอัน
  xa = xa + 5;  // สั่งให้ xa เพิ่มขึ้นทีละ 5
  if(xa > 430) {   // ใช้คำสั่งเงื่อนไข (if) โดย ถ้าค่าของ xa มีค่ามากกว่า 430
      xa = 430;  // ก็จะสั่งให้ xa มีค่าเท่ากับ 430 เพื่อให้หยุด
    }
}
 
 

void drawTarget(int x, int y, int rx, int ry) {  // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  int s = 20; // ประกาศ และกำหนดตัวแปร s เป็นค่าความห่างของวัตถุ
  fill(255, 255, 255);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
  rx = rx - s;  // สั่งให้เพิ่มค่าของ rx โดยสั่งให้  rx = rx - s
  ry = ry - s;  // สั่งให้เพิ่มค่าของ ry โดยสั่งให้  ry = ry - s
  fill(0, 0, 0);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
  rx = rx - s;  // สั่งให้เพิ่มค่าของ rx โดยสั่งให้  rx = rx - s
  ry = ry - s;  // สั่งให้เพิ่มค่าของ ry โดยสั่งให้  ry = ry - s
  fill(0, 0, 255);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
  rx = rx - s;  // สั่งให้เพิ่มค่าของ rx โดยสั่งให้  rx = rx - s
  ry = ry - s;  // สั่งให้เพิ่มค่าของ ry โดยสั่งให้  ry = ry - s
  fill(255, 0, 0);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
}

void drawArrow() {
  int y = 250;  // ประกาศ และกำหนดตัวแปร y ให้เป็นค่าแกน Y
  int l = 150;  // ประกาศ และกำหนดตัวแปร l ให้เป็นค่าความยาววัตถุ
  line(xa, y, xa-l, y);  // วาดเส้น
  fill(255, 255, 0);  // ใส่สีพื้นหลังวัตถุ
  triangle(xa, y, xa-20, y+10, xa-20, y-10); // คำสั่งวาดสามเหลี่ยม
}


เย้ๆๆๆๆๆ ยิงโดนแล้วนะจ๊ะ อ่าาาาาาาาาา :)

Sport (Function)

int xa = 0; // ประกาศ และกำหนดตัวแปร xa แบบ Global variale

void setup() {
  size(500, 500); // กำหนดขนาดของจอที่แสดง
  smooth();
  strokeWeight(3);  
}

void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  background(255, 255, 255);  // ใส่เพิ่มหลัง
  int x = 430; // ประกาศ และกำหนดตัวแปร x ให้เป็นค่าแกน X
  int y = 250; // ประกาศ และกำหนดตัวแปร y ให้เป็นค่าแกน Y
  int rx = 100; //  ประกาศ และกำหนดตัวแปร rx เพื่อกำหนดรัศมีใแกน X
  int ry = 250;  //  ประกาศ และกำหนดตัวแปร ry เพื่อกำหนดรัศมีใแกน Y
  drawTarget(x, y, rx, ry);  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ
  drawArrow();  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ อีกอัน
  xa = xa + 5;  // สั่งให้ xa เพิ่มขึ้นทีละ 5
}
  
  

void drawTarget(int x, int y, int rx, int ry) {  // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  int s = 20; // ประกาศ และกำหนดตัวแปร s เป็นค่าความห่างของวัตถุ
  fill(255, 255, 255);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
  rx = rx - s;  // สั่งให้เพิ่มค่าของ rx โดยสั่งให้  rx = rx - s
  ry = ry - s;  // สั่งให้เพิ่มค่าของ ry โดยสั่งให้  ry = ry - s
  fill(0, 0, 0);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
  rx = rx - s;  // สั่งให้เพิ่มค่าของ rx โดยสั่งให้  rx = rx - s
  ry = ry - s;  // สั่งให้เพิ่มค่าของ ry โดยสั่งให้  ry = ry - s
  fill(0, 0, 255);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
  rx = rx - s;  // สั่งให้เพิ่มค่าของ rx โดยสั่งให้  rx = rx - s
  ry = ry - s;  // สั่งให้เพิ่มค่าของ ry โดยสั่งให้  ry = ry - s
  fill(255, 0, 0);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
}

void drawArrow() {
  int y = 250;  // ประกาศ และกำหนดตัวแปร y ให้เป็นค่าแกน Y
  int l = 150;  // ประกาศ และกำหนดตัวแปร l ให้เป็นค่าความยาววัตถุ
  line(xa, y, xa-l, y);  // วาดเส้น
  fill(255, 255, 0);  // ใส่สีพื้นหลังวัตถุ
  triangle(xa, y, xa-20, y+10, xa-20, y-10); // คำสั่งวาดสามเหลี่ยม
}

ยิงไม่โดน 555 :)

Music (IF)

 int x = -50; // ประกาศ และกำหนดตัวแปร x แบบ Global variale
 float w = 1; // ประกาศ และกำหนดตัวแปร w แบบ Global variale 
//*** float เป็นชนิดตัวแปรที่เก็บค่าที่เป็นทศนิยม

 void setup() {
  size(300, 300); // กำหนดขนาดจอภาพที่แสดง
  smooth();
}

 void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  int rx = 75; //  ประกาศ และกำหนดตัวแปร rx เพื่อกำหนดรัศมีใแกน X
  int ry = 45;  //  ประกาศ และกำหนดตัวแปร ry เพื่อกำหนดรัศมีใแกน Y
  int y = 180;  // ประกาศ และกำหนดตัวแปร y ให้มีค่าเป็นตำแหน่งแกน Y
  x = x + 5; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ เพิ่มขึ้นทีละ 5
  w = w + 0.2; // สั่งให้เพิ่มค่าของ w โดยสั่งให้ เพิ่มขึ้มทีละ 0.2 
  strokeWeight(w); // กำหนดความหนาองเส้นวัตถุให้ขึ้นโดยใส่เป็นค่าตัวแปร
  background(x, y, x + y);  // กำหนดพื้นหลังให้มีค่าเปลี่ยนไปตามค่า xและ y
  drawNote(x, y, rx, ry); // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวตถุ
  if(x > 350) { // ใช้คำสั่งเงื่อนไข (if) โดยที่ ถ้า x มีค่ามากกว่า 350
    x = -50; // ก็จะให้ x = -50
  }else{
  if(w > 15)  { // และถ้า w มากกว่า 50 แล้ว
    w = 1; ก็จะให้ w = 1
  }
 }
 void drawNote(int x, int y, int rx, int ry){ // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  int h = 105; // ประกาศ และกำหนดตัวแปร h เป็นค่าความสูงวัตถุ
  int s = 75; // ประกาศ และกำหนดตัวแปร s เป็นค่าความห่างของวัตถุ
  fill(0, 0, 0); // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
  x = x + (rx/2);  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + (rx/2)
  line(x, y - h, x + (rx/2) + s, y - h); // วาดเส้น
  line(x, y - h, x, y); // วาดเส้น
  x = x + s;  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + s
  ellipse(x, y, rx, ry);  // คำสั่งวาดวงกลม
  x = x + (rx/2);  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + (rx/2) อีกครั้ง
  line(x, y - h, x, y); // วาดเส้น

Music (Function)

void setup() {
  size(300, 300);  // กำหนดขนาดจอภาพที่แสดง
  smooth();
  strokeWeight(5); // กำหนดความหนาองเส้นวัตถุให้ขึ้น
}

 void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  int x = mouseX; // ประกาศ และกำหนดตัวแปร x ให้มีค่าตามตำแหน่งเมาส์ในแกน X
  int y = mouseY; // ประกาศ และกำหนดตัวแปร y ให้มีค่าตามตำแหน่งเมาส์ในแกน Y
  int rx = 50; //  ประกาศ และกำหนดตัวแปร rx เพื่อกำหนดรัศมีใแกน X
  int ry = 30;  //  ประกาศ และกำหนดตัวแปร ry เพื่อกำหนดรัศมีใแกน Y
  background(x, y, x + y); // กำหนดพื้นหลังให้มีค่าเปลี่ยนไปตามค่า xและ y
  drawNote(x, y, rx, ry);  // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ
}

 void drawNote(int x, int y, int rx, int ry){ // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  int h = 70; // ประกาศ และกำหนดตัวแปร h เป็นค่าความสูงวัตถุ
  int s = 50; // ประกาศ และกำหนดตัวแปร s เป็นค่าความห่างของวัตถุ
  fill(0, 0, 0); // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, rx, ry); // คำสั่งวาดวงกลม
  x = x + (rx/2);  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + (rx/2)
  line(x, y - h, x + (rx/2) + s, y - h); // วาดเส้น
  line(x, y - h, x, y); // วาดเส้น
  x = x + s;  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + s
  ellipse(x, y, rx, ry);  // คำสั่งวาดวงกลม
  x = x + (rx/2);  // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + (rx/2) อีกครั้ง
  line(x, y - h, x, y); // วาดเส้น
 }
เป็นการใช้ฟังก์ชัน ซึ่งจะทำให้โค้ดเราดูง่ายและเป็นระเบียบมากขึ้น และทำให้วัตถเคลื่อนที่โดยการใช้คำสั่ง mouseX และ mouseY

Art (IF)

int y = -10; // ประกาศ และกำหนดตัวแปร y แบบ Global variale

void setup() {
  size(300, 300); // กำหนดขนาดของจอที่แสดง
  smooth(); // ใช้คำสั่ง smooth ให้งานมีความสวยงายขึ้น
  noStroke(); // ใช้คำสั่ง noStroke ไม่วาดเส้นขอบ
  background(255, 255, 255); // ใส่เพิ่มหลัง
}

void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  int x = 25;   // ประกาศ และกำหนดตัวแปร x ให้เป็นค่าแกน X
  int r = 50;  // ประกาศ และกำหนดตัวแปร r ให้เป็นค่ารัศมี
  y = y + 5; // สั่งให้ y เพิ่มขึ้นทีละ 5
  fill(255, 0, 0);  // ใส่สีพื้นหลังวัตถุ
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r อีกครั้ง
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r อีกครั้ง
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r อีกครั้ง
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r อีกครั้ง
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  if(y>400) {  // ใช้คำสั่งเงื่อนไข (if) โดย ถ้าค่าของ y มีค่ามากกว่า 400
      y = -40; // ก็จะสั่งให้ y มีค่าเท่ากับ -20 เพื่อให้วาดซ้ำ
      background(255, 255, 255); // แล้วก็เปลี่ยนพื้นหลังเป็นสีขาวด้วยเมื่อวาดเสร็จ 1 รอบ
}

void drawCircle(int x, int y, int r) { // สร้างฟังก์ชันเพื่อวาดวัตถุ โดยใช้ตังแปรกำหนดค่าต่างๆ
  fill(x, y, r);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, r, r); // วาดวงกลม
  }
}

จะเห็นว่าคำสั่งอื่นๆเหมือน Art ใน Lab 2 แค่เพิ่มคำสั่งเงื่อนไข (if) เพืื่ให้มีการกำหนดค่าของ y ใหม่ และจะทำให้วัตถุถูกวาดใหม่ตลอด สวยงามขึ้น :)

Art (Function)

int y = -10; // ประกาศ และกำหนดตัวแปร y แบบ Global variale

void setup() {
  size(300, 300); // กำหนดขนาดของจอที่แสดง
  smooth(); // ใช้คำสั่ง smooth ให้งานมีความสวยงายขึ้น
  noStroke(); // ใช้คำสั่ง noStroke ไม่วาดเส้นขอบ
  background(255, 255, 255); // ใส่เพิ่มหลัง
}

void draw() { // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  int x = 25;   // ประกาศ และกำหนดตัวแปร x ให้เป็นค่าแกน X
  int r = 50;  // ประกาศ และกำหนดตัวแปร r ให้เป็นค่ารัศมี
  y = y + 10; // สั่งให้ y เพิ่มขึ้นทีละ 10
  fill(255, 0, 0);  // ใส่สีพื้นหลังวัตถุ
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r 
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r อีกครั้ง
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r อีกครั้ง
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r อีกครั้ง
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
  x = x + r; // สั่งให้เพิ่มค่าของ x โดยสั่งให้ x = x + r อีกครั้ง
  drawCircle(x, y, r);  // สั่งใช้ฟังก์ชัน drawCircle เพื่อวาด อีกครั้ง
}

void drawCircle(int x, int y, int r) { // สร้างฟังก์ชันเพื่อวาดวัตถุ โดยใช้ตังแปรกำหนดค่าต่างๆ 
  fill(x, y, r);  // ใส่สีพื้นหลังวัตถุ
  ellipse(x, y, r, r); // วาดวงกลม
}

เป็นการใช้ฟังก์ชัน ซึ่งจะทำให้โค้ดเราดูง่ายและเป็นระเบียบมากขึ้น และทำให้วัตถเคลื่อนที่โดยการกำหนดให้ตัวแปร y เป็น Global variable และให้เพิ่มค่าขึ้นเรื่อยๆ

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

The Cat (Like)

size (300, 300);
smooth ();
background (135, 206, 250);
strokeWeight (3);

// ears
fill (0);
triangle (40, 30, 150, 100, 50, 180);
triangle (260, 30, 250, 180, 150, 100);
// face
fill (255);
ellipse (150, 180, 200, 180);
// eyes
int cx = 100 ; // center X-axis of Eyes
int cy = 160 ; // center Y-axis of Eyes
int s = 100 ; // space of Eyes
int rx = 90 ; // radius X-axis of Eyes
int ry = 70 ; // radius Y-axis of Eyes
fill (175, 238, 238);
ellipse (cx, cy, rx, ry);
ellipse (cx + s , cy, rx, ry);

line (cx, 135, cx, 185);
line (cx + s, 135, cx + s, 185);

// mouth
fill (250, 128, 114);
triangle (150, 250, 110, 210, 190, 210);

// Whiskers
int x = 30 ; // point X of  Whiskers
int sx = 100 ; // space of point X
int l = 70 ; // Length of  Whiskers
line (x, 190, x+l, 200);
line (x, 210, x+l, 210);
line (x, 230, x+l, 220);
x = x + sx + l ;
line (x, 200, x+l, 190);
line (x, 210, x+l, 210);
line (x, 220, x+l, 230);


Archery (Sport)

size (200, 200) ;
int c = 100 ; // center
int r = 150 ; // radius
int s = 20 ; // space
smooth () ;
ellipse (c, c, r, r) ;
fill ( 0, 0, 0) ;
ellipse (c, c, r - s, r - s) ;
fill ( 0, 0, 255) ;
ellipse (c, c, r - ( s* 2 ), r - ( s* 2 )) ;
ellipse (c, c, r - ( s* 3 ), r - ( s* 3 )) ;
fill ( 255, 0, 0) ;
ellipse (c, c, r - ( s* 4 ), r - ( s* 4 )) ;
ellipse (c, c, r - ( s* 5 ), r - ( s* 5 )) ; 
fill ( 255, 255, 0) ;
ellipse (c, c, r - ( s* 6 ), r - ( s* 6 )) ;
ellipse (c, c, r - ( s* 7 ), r - ( s* 7 )) ;
strokeWeight ( 3 ) ;
line (20, c, c, c );
triangle ( 10, c - 20, s, c, 10, c + s ) ;
triangle ( 10, c - 20, s, c, 10, c + s ) ;


Drum (Music)


size (300 , 300) ;
int cx = 150 ; // center of X-axis
int cy = 100 ; // center of Y-axis
int h = 100 ; // Height of Drum

fill (0) ;
ellipse (cx, cy + h, 150, 50) ; // Bottom
rect (75, 100, 150, h) ; // Body

// Drumhead
fill (255) ;
ellipse (cx, cy, 150, 50) ; 
fill (0) ;
ellipse (cx, cy, 100, 25) ;

// Wooden drum
strokeWeight (5) ;
stroke (255, 150, 0) ;
line (90, 50, 140, 90) ;
line (160, 90, 210, 50) ;

Monster(Art)

size (300, 300);
background (50, 205, 50);
smooth ();
int r = 100 ; // radius of eyes
int s = 200 ; // space of eyes
int cx = 50 ; // center X-axis of eyes
int cy = 100 ; // center Y-axis of eyes
// Eye
ellipse (cx, cy, r, r);
ellipse (cx+s, cy, r, r);
fill (0);
ellipse (cx-20, cy, r-70, r-70);
ellipse ((cx+s)+20, cy, r-70, r-70);
// Nose
ellipse (150, 150, 150, 100);
fill (255);
ellipse (120, 150, 50, 50);
ellipse (180, 150, 50, 50);

วันจันทร์ที่ 1 กรกฎาคม พ.ศ. 2556

Bridge

void setup() {
  size(400, 300);
  smooth();
  background(255);
  drawSlings(100, 300, 100);
}

void drawSlings(int t1, int t2, int y) {
  int count = 0;
  int s = 10;
  int n = 20;
  int x1 = 0;
  int x2 = 200;
  while(count<n) {
    line(x1, 200, t1, y);
    x1 = x1 + s;
    line(x2, 200, t2, y);
    x2 = x2 + s;
    count = count + 1;
  }

  strokeWeight(10);
  line(0, height/1.5, width, height/1.5);
  line(100, 200, 100, 300);
  line(300, 200, 300, 300);
}


void setup() {
  size(400, 300);
  smooth();
  background(255);
  drawSlings(100, 300, 100);
}

void drawSlings(int t1, int t2, int y) {
  int count = 0;
  int s = 10;
  int n = 20;
  int x1 = 0;
  int x2 = 200;
  while(count<n) {
    line(x1, 200, t1, y);
    x1 = x1 + s;
    line(x2, 200, t2, y);
    x2 = x2 + s;
    count = count + 1;
  }

  strokeWeight(10);
  line(0, height/1.5, width, height/1.5);
  line(100, 200, 100, 300);
  line(300, 200, 300, 300);
}

    เป็นการใช้คำสั่ง while loop  วาดรูปซ้ำๆกัน โดยการกำหนดเงื่อนไขคือ เมื่อ count มีค่า น้อยกว่า ค่า n แล้ว ซึ่งตอนแรก เรากำหนดค่าของ count เป็น 0 ดังนั้นเป็นจริงตามเงื่อนไข จึงสั่งให้วาดเส้น 1 เส้น แล้วให้ x1 = x1 + s เป็นการเพิ่นค่าของ x1 ให้เท่ากับ x1 + s แล้ววาดเส้นต่ออีก 1 เส้น แล้วให้ x2 = x2 + s เป็นการเพิ่นค่าของ x2 ให้เท่ากับ x2 + s แล้วให้ count = count + 1 เป็นการเพิ่นค่าของ count เพิ่มขึ้นอีก 1 แล้วกลับไปเช็คเงื่อนไขต่ออีกรอบ แล้วถ้าเงื่อนไขยังเป็นจริงอยู่ ก็จะวนขึ้นมาทำแบบนี้ไปเรื่อย จนกว่าเงื่อนไขจะเป็นเท็จ หรือก็คือ count มีค่ามากกว่า หรือเท่ากับค่าของ n จึงออกจาก loop แล้วก็คำสั่งต่อไปจนจบ

Railway

void setup() {
  size(400, 400);
  smooth();
  background(255);
  drawrailway(0);
}

void drawrailway(int x) {
  int count = 0;
  int w = 30;
  int n = width/w;
  while(count<n) {
    fill(134, 67, 0);
    rect(x, 50, w, 300);
    x = x + (w*2);
    count = count + 1;
  }
  fill(200);
  rect(0, 100, width, w);
  rect(0, 270, width, w);
}


     เป็นการใช้คำสั่ง while loop  วาดรูปซ้ำๆกัน โดยการกำหนดเงื่อนไขคือ เมื่อ count มีค่า น้อยกว่า ค่า n แล้ว ซึ่งตอนแรก เรากำหนดค่าของ count เป็น 0 ดังนั้นเป็นจริงตามเงื่อนไข จึงสั่งให้วาดสี่เหลี่ยม 1 รูป แล้วให้ x = x + (w*2) เป็นการเพิ่นค่าของ x ให้เท่ากับ (w*2) แล้วให้ count = count + 1 เป็นการเพิ่นค่าของ count เพิ่มขึ้นอีก 1 แล้วกลับไปเช็คเงื่อนไขต่ออีกรอบ แล้วถ้าเงื่อนไขยังเป็นจริงอยู่ ก็จะวนขึ้นมาทำแบบนี้ไปเรื่อย จนกว่าเงื่อนไขจะเป็นเท็จ หรือก็คือ count มีค่ามากกว่า หรือเท่ากับค่าของ n จึงออกจาก loop แล้วก็คำสั่งต่อไปจนจบ

Express Way

void setup() {
  size(500, 300);
  smooth();
  background(255);
  drawWay(50);
}

void drawWay(int x) {
  int count = 0;
  int s = 50;
  int w = 30;
  int n = 6;
  while(count<n) {
    fill(0);
    rect(x, 100, w, 100);
    x = x + (s+w);
    count = count + 1;
  }
  fill(200);
  rect(0, 100, width, w);
}


        เป็นการใช้คำสั่ง while loop  วาดรูปซ้ำๆกัน โดยการกำหนดเงื่อนไขคือ เมื่อ count มีค่า น้อยกว่า ค่า n แล้ว ซึ่งตอนแรก เรากำหนดค่าของ count เป็น 0 ดังนั้นเป็นจริงตามเงื่อนไข จึงสั่งให้วาดสี่เหลี่ยม 1 รูป แล้วให้ x = x + (s+w) เป็นการเพิ่นค่าของ x ให้เท่ากับ (s+w) แล้วให้ count = count + 1 เป็นการเพิ่นค่าของ count เพิ่มขึ้นอีก 1 แล้วกลับไปเช็คเงื่อนไขต่ออีกรอบ แล้วถ้าเงื่อนไขยังเป็นจริงอยู่ ก็จะวนขึ้นมาทำแบบนี้ไปเรื่อย จนกว่าเงื่อนไขจะเป็นเท็จ หรือก็คือ count มีค่ามากกว่า หรือเท่ากับค่าของ n จึงออกจาก loop แล้วก็คำสั่งต่อไปจนจบ

วันจันทร์ที่ 24 มิถุนายน พ.ศ. 2556

Line & Ellipse


Thai

int y = 300;  // ประกาศ และกำหนดตัวแปร y ให้เป็นค่าแกน Y โดยกำหนดเป็น Global variable

void setup () {
  size ( 300 , 300 ); // กำหนดขนาดของจอที่แสดง
  background ( 0 );  // กำหนดพื้นหลัง
}
void draw () {  // สร้างฟังก์ชันเรียกใช้อัตโนมัติ
  background ( 0 );  // กำหนดพื้นหลัง
  y = y - 1 ;  // สั่งให้ y ลดลงทีละ 1
  drawcloud ( 50 , 60 , 30 ); // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ โดยกำหนดค่าคงที่
  fill (255 , 255, 0);
  ellipse ( 120 , 50 , 50 , 50 );  // คำสั่งวาดวงกลม
  drawlight (); // สั่งใช้วานฟังก์ชัน ที่สร้างเองให้วาดวัตถุ 
}
void drawcloud (int c , int rx , int ry) {  // สร้างฟังก์ชันให้วาดวัตถุโดยให้ค่าเป็นตัวแปร
  fill ( 255 );  // ใส่สีพื้นหลังวัตถุ
  ellipse ( c , c , rx , ry );  // คำสั่งวาดวงกลม
  ellipse ( c*2 , c*2 , rx , ry );  // คำสั่งวาดวงกลม
  ellipse ( c+200 , c+20 , rx , ry );  // คำสั่งวาดวงกลม
}
void drawlight (){
  int h = 60; // ประกาศ และกำหนดตัวแปร h เป็นค่าความสูงวัตถุ
  int w = 50; // ประกาศ และกำหนดตัวแปร w เป็นค่าความกว้างวัตถุ
  if (y < 0){  // ใช้คำสั่งเงื่อนไข (if) โดยที่ ถ้า y มีค่าน้อยกว่า 0
   y = 300 ;  // ก็จะให้ y = 300
}
  fill (255);  // ใส่สีพื้นหลังวัตถุ
  rect ( 125 ,y , w , h );  // คำสั่งวาดสี่เหลี่ยม
  ellipse ( 150 , y+h , w , 10);  // คำสั่งวาดวงกลม
  fill ( 225,150,0);  // ใส่สีพื้นหลังวัตถุ
  ellipse ( 150,y+h,10,10);  // คำสั่งวาดวงกลม
}



มาลอยโคมกัน มาลอยโคมกัน :)