วันศุกร์ที่ 26 กรกฎาคม พ.ศ. 2556
binary plus
boolean[] a= {true,false,true,false}; //เปรียบเสมือน ตัวเลข 1010
boolean[] b = {true,false,true,true}; //เปรียบเสมือน ตัวเลข 0011
boolean[] c = new boolean[5]; //array ของคำตอบ มี 5 ช่อง กรณีบวกแล้ว ทดเกิน 4 ช่อง
boolean[] t = {false,false}; เก็บค่าของตัวทด
int i=0;
void setup(){//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก
i=a.length-1;//กำหนดให้ i คือจำนวนภายใน array -1
while(i>=0)//เงื่อนไขถ้า i มากกว่า 0 จะทำตาม statement ด้านล่าง
{
if(a[i]== true && b[i]== true){//ถ้าค่าใน array a มีค่าเป็น true และ array b มีค่าเป็น true จะทำตาม statement ด้านล่าง คือให้ c[i] ตำแหน่งลำดับที่ i มีค่าเป็น false กำหนดตัวทดเป็นหนึ่ง true ในหลังถัดไปที่จะนำไปคิด
t[0]=true;
c[i]=false;
if(t[1]==true){//ถ้าในขณะนี้มีตัวที่ทดอยู่มีค่าเป็น true ให้c[i]มีค่าเป็น true แต่ถ้าไม่ใช่ให้เป็น false จากนั้น t[1] จะกลับไปมีค่าเป็น false (ตาม statement ด้านล่าง)
c[i]=true;
}
else{
c[i]=false;
}
t[1]=t[0];
}
else if(a[i]== false && b[i]== false){//ถ้าค่าใน array a มีค่าเป็น true และ array b มีค่าเป็น true จะทำตาม statement ด้านล่าง คือให้ c[i] ตำแหน่งลำดับที่ i มีค่าเป็น false ไม่มีตัวทดให้ t[0] เป็น false
t[0]=false;
c[i]=false;
if(t[1]==true){//ถ้าในขณะนี้มีตัวที่ทดอยู่มีค่าเป็น true ให้c[i]มีค่าเป็น true แต่ถ้าไม่ใช่ให้เป็น false จากนั้น จากนั้น t[1] จะกลับไปมีค่าเป็น false (ตาม statement ด้านล่าง)
c[i]=true;
}
else{
c[i]=false;
}
t[1]=t[0];
}
else{//แต่ถ้าไม่ใช่ให้t[0] ตัวทดมีค่าเป็น false และให้c[i]มีค่าเป็น true
t[0]=false;
c[i]=true;
if(t[1]==true){//ในขณะนี้มีตัวที่ทดอยู่มีค่าเป็น true ให้c[i]มีค่าเป็น false และให้ตัวทดกับตำแหน่งถัดไปเป็น true
c[i]=false;
t[0]=true;
}
else{//แต่ถ้าไม่เป็นไปตามเงื่อนไขให้ c[i] มีค่าเป็น true และให้ตัวทดกลับไปเป็น false เหมือนเดิม
c[i]=true;
}
t[1]=t[0];
}
i=i-1;//ลดค่าเพื่อกลับไปวน loop อีก และจะหยุดลบและออกจาก loop เมื่อไม่เป็นไปตามเงื่อนไข
}
if(a[0] == true && b[0] == true){//ถ้าค่าใน array a[0] มีค่าเป็น true และ array b [0]มีค่าเป็น true จะแสดงค่า 1 ออกมาไว้ก่อน
print (1);}
i=0;
while(i<a.length && i<b.length){//เงื่อนไขถ้า i น้อยกว่าจำนวนภายใน array a และ b จะทำตาม statement ด้านล่าง
if(c[i]==true){//ถ้าc[i] มีค่าเป็น true ให้แสดงค่าออกมาเป็น 1
print(1);
}
if(c[i]==false){//ถ้าc[i] มีค่าเป็น false ให้แสดงค่าออกมาเป็น 0
print(0);
}
i=i+1;//มีการบวกเพิ่มค่าเพื่อจะได้กลับไปวน loop อีก และจะไม่บวกอีกเมื่อออกจากเงื่อนไข
}
}
Barchart
void setup() { //เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก ก่อน void draw ด้วย
size (400,400);
background(25);
}
void draw () {{//เป็น function หนึ่งใน system function เช่นเดียวกับ setup มีการเรียกใช้อัตโนมัติ แต่การทำงานของทั้งสองจะแตกต่างกัน void draw จะทำงานตาม Statement และเงื่อนที่ได้กำหนดให้นั้นซ้ำๆไปเรื่อยๆ
int x = 50;
int i = 0; //ตำแหน่งลำดับใน index
int y = 50;
float [] B = {13.51,14.74,12.598,32.65,26.50};
while(i < B.length){
if(i==0){//i=0 หรือ จำนวนแรกใน index
fill(#F8FC03);
}
if(i==1){ //i=1 หรือ จำนวนที่สองใน index
fill(#FC7C03);
}
if(i==2){//i=2 หรือ จำนวนที่สามใน index
fill(#23FC03);
}
if(i==3){//i=3 หรือ จำนวนที่สี่ใน index
fill(#03A7FC);
}
if(i==4){//i=4 หรือ จำนวนที่ห้าใน index
fill(#7E03FC);
}
rect (x,350,40,-B[i]*10); //คำสั่งวาดรูปสี่เหลี่ยมเป็นแผนภูมิแท่ง
text(B[i]+"%",x, (B[i]+360));//ตัวอักษรใต้กราฟ กำหนดสามสิ่ง คือ สิ่งที่ต้องการแสดง,จุดบนแกน x ,จุดบนแกน y
i = i + 1; //บวกเพิ่มเพื่อกลับไปวน loop อีกครั้ง จะบวกจนกว่าจะออกจาก loop
x = x + 60;//บวกเพิ่มทุกครั้งเมื่อสิ้นสุดการทำ statement นี้ เป็นการบวกเพื่อเก็บค่าใหม่นำไปใช้ในครั้งถัดไป
}
fill (#FC0AA8);
text("No. of marine fishery establishments ",10,70);//ตัวอักษรใต้กราฟ กำหนดสามสิ่ง คือ สิ่งที่ต้องการแสดง,จุดบนแกน x ,จุดบนแกน y
}
References : http://web.nso.go.th/en/census/marfish/fisht1.htm
binary minus
boolean[]a={true,false,true,true};//เก็บค่าของ binary ในรูปของ true,false โดย true แทน 1 และ false แทน 0
boolean[]b={true,true,false,false};//เก็บค่าของ binary ในรูปของ true,false โดย true แทน 1 และ false แทน 0
boolean[]c=new boolean[4];//เก็บค่าของ binary ใหม่จำนวน 4 จำนวน
int i = 3;//index 3 คือจำนวนที่สี่เพราะ index มีการเก็บค่าตั้งแต่ 0 เป็นต้นไป
void setup(){//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก
while(i>0){
if(a[i]==true && b[i] == true){//ถ้าค่าใน array a มีค่าเป็น true และ array b มีค่าเป็น true จะทำตาม statement ด้านล่าง คือให้ c[i] ตำแหน่งลำดับที่ i มีค่าเป็น false
c[i]=false;
}
else if(a[i]==false && b[i]==false){//ถ้าค่าใน array a มีค่าเป็น false และ array b มีค่าเป็น false จะทำตาม statement ด้านล่าง คือให้ c[i] ตำแหน่งลำดับที่ i มีค่าเป็น false
c[i]=false;
}
else if(a[i]==false && b[i]==true){//ถ้าค่าใน array a มีค่าเป็น false และ array b มีค่าเป็น true จะทำตาม statement ด้านล่าง คือให้ c[i] ตำแหน่งลำดับที่ i มีค่าเป็น true
c[i]=true;
c[i-1]=!c[i-1];
if(c[i-1]==true){//c[i-1] มีค่าเป็นจริงให้ทำตาม statement ด้านล่าง
int j=1;
while(a[i-j]==true){//ตำแหน่งหรือลำดับด้านหน้าเป็น true
j++;//บวก j เพิ่มอีก 1
if(a[0]==true){//ตำแหน่งหรือลำดับด้านหน้าสุด(แรก)เป็น true
break;//หยุดเงื่อนไข
}
c[i-j]=!c[i-j];
}
}
}
else if(a[i] == true && b[i] == false){//ถ้าค่าใน array a มีค่าเป็น true และ array b มีค่าเป็น false จะทำตาม statement ด้านล่าง คือให้ c[i] ตำแหน่งลำดับที่ i มีค่าเป็น true
c[i]=true;
}
i=i-1;//เพิ่มทุกครั้งเพื่อกลับไปวน loop
}
print(""+c[0]+c[1]+c[2]+c[3]);//แสดงผลการคำนวณ
}
Binary display
boolean[] a = {false,false,true,false};//เก็บค่าของ binary ในรูปของ true,false โดย true แทน 1 และ false แทน 0;
boolean[] b = {false,true,true,false};//เก็บค่าของ binary ในรูปของ true,false โดย true แทน 1 และ false แทน 0;
void setup(){//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก ก่อน void draw ด้วย
size(300,300);
background(243,240,29);
}
int x=40;
int i=0;
int r=74;
void draw(){{//เป็น function หนึ่งใน system function เช่นเดียวกับ setup มีการเรียกใช้อัตโนมัติ แต่การทำงานของทั้งสองจะแตกต่างกัน void draw จะทำงานตาม Statement และเงื่อนที่ได้กำหนดให้นั้นซ้ำๆไปเรื่อยๆ
while(i<a.length)
{
if(a[i]==true&&b[i]==true) {//ถ้าค่าใน array a มีค่าเป็น true และ array b มีค่าเป็น true จะทำตาม statement ด้านล่าง
fill(0,155,0);
drawLight(x); //เรียกใช้ฟังก์ชั่นที่เรากำหนดเอง
x=x+r;
}else {
if(a[i]==false&&b[i]==false) { //ถ้าค่าใน array a มีค่าเป็น false และ array b มีค่าเป็น false จะทำตาม statement ด้านล่าง
fill(0,155,0);
drawLight(x); //เรียกใช้ฟังก์ชั่นที่เรากำหนดเอง
x=x+r;
}
if(a[i]==false&&b[i]==true){ //ถ้าค่าใน array a มีค่าเป็น false และ array b มีค่าเป็น true จะทำตาม statement ด้านล่าง
fill(145,0,0);
drawLight(x); //เรียกใช้ฟังก์ชั่นที่เรากำหนดเอง
x=x+r;
}
}
i=i+1;
}
}
void drawLight(int x){
ellipse(x,150,r,r);
}
Some UFO
int x = 0;
int y = 0;
int c= 0;
int d= 0;
//การประกาศและกำหนดข้างต้นเป็นการประกาศตัแปรแบบ global variable ซึ่งก็คือการประกาศและกำหนดตัวแปรภายนอกฟังก์ชั่น ทุกฟังก์ชั่นสามารถเรียกใช้ไ
void setup () {//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก ก่อน void draw ด้วย
size (500,300);
}
void drawBackg(){//เป็น function ที่เรากำหนดเอง
background (random(1,5),random(13,15),random(2,85));
}
void draw () {//เป็น function หนึ่งใน system function เช่นเดียวกับ setup มีการเรียกใช้อัตโนมัติ แต่การทำงานของทั้งสองจะแตกต่างกัน void draw จะทำงานตาม Statement และเงื่อนที่ได้กำหนดให้นั้นซ้ำๆไปเรื่อยๆ
drawBackg();//เรียกใช้ function ที่เรากำหนดเอง
drawUFO(x,y,60);//เรียกใช้ function ที่เรากำหนดเอง
if (x<440) {
x=x+3;
}else {
if(y<-440){
x=0;
y=0;
}else{
y=y-1;
}
}
if ( c<=80) {
c = c+5;
}
else
if (d <=-80) {
d= 0;
c=0;
}
else {
d = d-5;
}
}
void drawUFO(int x,int y,int A) {//เป็น function ที่เรากำหนดเอง
fill (300,200,30);
int [ ] posts = {3,2,3,4};//index เก็บค่าจำนวนเอาไว้
drawRow(x+50,y,posts[0],A);
A=A+50;
drawRow(x+100,y,posts[1],A);
A=A+100;
drawUFO1(c,d);
drawRow(x+50,y,posts[2],A);
A=A+50;
drawRow(x,y,posts[3],A);
A=A+50;
}
void drawUFO1(int c,int d){//เป็น function ที่เรากำหนดเอง
strokeWeight(3);
fill(#36648B);
ellipse(250-c-d,230,70,130);
ellipse(250-c-d,250,200,70);
fill(#AFEEEE);
arc(250-c-d,230,120,40,0,PI);
arc(250-c-d,230,110,160,PI,TWO_PI);
arc(250-c-d,230,70,130,PI,TWO_PI);
fill(54,122,234);
ellipse(250-c-d,195,35,35);
fill(0);
ellipse(250-c-d,195,15,15);
arc(250-c-d,225,30,15,0,PI);
fill(254,123,125);
ellipse(190-c-d,230,20,20);
ellipse(225-c-d,250,20,20);
ellipse(275-c-d,250,20,20);
ellipse(310-c-d,230,20,20);
}
void drawRow(int x,int y,int n,int A){//เป็น function ที่เรากำหนดเอง
int count = 0;
while(count<n){
ellipse (30+x+y,A,30,15);
ellipse (30+x+y,A+10,80,20);
count = count +1;//เพิ่มจำนวนการวน loop
x=x+90;//บวก 90 ที่ x ทุกครั้งที่สิ้นสุด statement เพื่อกลับไปวน loop ใหม่หรือออกจาก loop
}
}
calculator max min and average
float[]Age={18,18.5,19,20,21,25,35,18,19,22};//เป็น index สำหรับเก็บข้อมูลที่มีจำนวนหลายๆค่า
int i=0;//กำหนดตำแหน่งลำดับของข้อมูล
float a;
float max = Age[0];//ค่าสูงสุด
float min = Age[0];//ค่าต่ำสุด
float average = 0;//ค่าเฉลี่ย
void setup() {//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวที่เราต้องนำเอามาใช้เพราะต้องการให้โปรแกรมแสดงผลเพียงครั้งเดียว หากเราใช้ void setup ในการเรียกจะทำให้เกิดการทำซ้ำสามารถทดลองได้ที่ http://processingjs.org/tools/processing-helper.html โดยให้เปลี่ยนจาก void setup เป็น void draw
while (i<Age.length) {//เงื่อนไข กำหนดให้ i น้อยกว่า Age.length ซึ่ง Age.length คือ ขนาดของที่เก็บข้อมูลว่ามีกี่ค่าโดยใน index ที่ได้กำหนดข้างต้นจะเก็บค่าตั้งแต่ 0-9 (รวมมีจำนวน ๅจ จำนวน)
if (Age[i] >max) {//ถ้า Age ในตำแหน่ง i มากกว่า ค่าสูงสุด
max = Age[i];//จะทำให้ได้ค่า max ใหม่นั่นก็คือ Ageในตำแหน่งที่ i
a = i+1;//เมื่อเงื่่อนไขเป็นจริงให้เพิ่มตำแหน่งโดยการ+1
}
if (Age[i] < min) {//ถ้า Age ในตำแหน่ง i น้อยกว่า ค่าสูงสุด
min = Age[i];//จะทำให้ได้ค่า min ใหม่นั่นก็คือ Ageในตำแหน่งที่ i
a = i+1;//เมื่อเงื่่อนไขเป็นจริงให้เพิ่มตำแหน่งโดยการ+1
}
average = average+Age[i];//เก็บค่าโดยให้มีการบวกจำนวนต่างๆที่มีอยู่ใน index แล้วนำผลรวมนั้นไปคิดค่าเฉลี่ย
i=i+1;
}
println("Max of age is = "+max);//แสดงผลค่า max
println("Min of age is= "+min);//แสดงผลค่า min
println("average of age is= "+average/i);//แสดงผลค่าเฉลี่ย
}
วันพุธที่ 24 กรกฎาคม พ.ศ. 2556
จำนวนเฉพาะ
การหาจำนวนเฉพาะระหว่างจำนวน1-9 มีทั้งหมดกี่จำนวนอะไรบ้าง?
int a = 9;//ขอบเขตจำนวนที่หา
int n=1;
int b=0;//จำนวนที่หารด้วย1และตัวมันเองลงตัว
int c=2;
while(c<=a){
while(n<=c){
if(c%n==0){
b=b+1;
}
n=n+1;
}
if(b==2){
println(+c);
}
n=1;
b=0;
c=c+1;
}
วันอังคารที่ 23 กรกฎาคม พ.ศ. 2556
Variable : Hard
Question... Write the C code to calculate and print the next two numbers in the following series. You may use only one variable in each problem.
ให้เขียนโค้ดคำนวณและแสดงผลค่าของตัวเลข 2 จำนวนถัดไป ของลำดับต่อไปนี้ โดย สามารถใช้ตัวแปรเพียงแค่ตัวเดียวในแต่ละปัญหา
0,2,4,6,8,10,...,...
Answer...
ให้เขียนโค้ดคำนวณและแสดงผลค่าของตัวเลข 2 จำนวนถัดไป ของลำดับต่อไปนี้ โดย สามารถใช้ตัวแปรเพียงแค่ตัวเดียวในแต่ละปัญหา
0,2,4,6,8,10,...,...
Answer...
int n=0;
while(n<=7){
print(n*2);
n=n+1;
}
จะแสดงผลหรือพิมพ์ออกมาเป็น : 02468101214(ซึ่งเราไม่สามารถแยกจำนวนออกได้)
int n=0;
while(n<=7){
println(n*2);
n=n+1;
}
จะแสดงผลหรือพิมพ์ออกมาเป็น : 0
2
4
6
8
10
12
14
(ซึ่งทำให้เราสามารถแยกจำนวนออกได้จำนวนไหนเป็นจำนวนไหน)
วันจันทร์ที่ 22 กรกฎาคม พ.ศ. 2556
condition
Question...Rewrite the following sequence of if statements as a single if-else.
ให้เขียนลำดับ statement ใหม่ โดยให้เปลี่ยนจาก if เป็น if-else เพียงอันเดียว
if (year % 4==0)
System.out.print(year+"is a leap year.");
if(year % 4 !=0)
{
year = year +4 - year % 4;
System.out.print(year+"is the next leap year.");
}
Answer...
if (year % 4==0){
System.out.print(year+"is a leap year.");
if(year % 4 !=0)
}else{
year = year +4 - year % 4;
System.out.print(year+"is the next leap year.");
}
source : Programming and problem solving with Java
Nell Dale and Chip Weems. -- 2nd ed. page 270
ISBN-13 : 978-0-7637-3402-2
ให้เขียนลำดับ statement ใหม่ โดยให้เปลี่ยนจาก if เป็น if-else เพียงอันเดียว
if (year % 4==0)
System.out.print(year+"is a leap year.");
if(year % 4 !=0)
{
year = year +4 - year % 4;
System.out.print(year+"is the next leap year.");
}
Answer...
if (year % 4==0){
System.out.print(year+"is a leap year.");
if(year % 4 !=0)
}else{
year = year +4 - year % 4;
System.out.print(year+"is the next leap year.");
}
source : Programming and problem solving with Java
Nell Dale and Chip Weems. -- 2nd ed. page 270
ISBN-13 : 978-0-7637-3402-2
Loop
1. Question... What does the following loop print out?(number is of
type int.)
อะไรทำให้ loop พิมพ์ค่าออกมา (ประกาศตัวแปร number เป็นประเภท int)
number = 1;
while (number <11)
{
number ++;
out.println(number);
}
Answer...
int number = 1;
while (number <11)
{
number ++;
System.out.println(number);
}
เมื่อมีการประกาศตัวแปรด้วย int แล้ว ก็ยังไม่สามารถ run code ได้ เนื่องจากว่า
การที่เราจะตั้ง statement ให้พิมพ์ค่าใดออกมานั้น ต้องมีคำว่า System ไว้ข้างหน้า out เสมอหรือไม่ก็ไม่ต้องใส่ out ให้ตั้ง statement เป็น println ไปเลย
int number = 1;
while (number <11)
{
number ++;
println(number);
}
source : Programming and problem solving with Java
Nell Dale and Chip Weems. -- 2nd ed. page 330
ISBN-13 : 978-0-7637-3402-2
source : Programming and problem solving with Java
Nell Dale and Chip Weems. -- 2nd ed. page 330
ISBN-13 : 978-0-7637-3402-2
Loop
Question...When the following code is executed,how many iterations of loop are performed?
เมื่อมีโค้ดถูกดำเนินการ มีการวน loop เท่าไหร่
int number =2;
boolean done = false;
while(!done){
number =number*2;
if (number>64)
done=true;
}
Answer...
int number =2;
boolean done = false;
while(!done){
number =number*2;
println(number);
if (number>64)
done=true;
}
เพื่อให้เราสามารถสังเกตจำนวนครั้งการวน loop ได้นั้นเราจึงใส่ statement "println(number);"ลงไป
หลังจากการ run code ทำให้เราทราบว่ามีการรวน loop ทั้งหมด 6 ครั้ง ตามบรรทัดของตัวเลขที่ output
source : Programming and problem solving with Java
Nell Dale and Chip Weems. -- 2nd ed. page 330
ISBN-13 : 978-0-7637-3402-2
source : Programming and problem solving with Java
Nell Dale and Chip Weems. -- 2nd ed. page 330
ISBN-13 : 978-0-7637-3402-2
Condition
Question...Give this code fragment:
if (height>= minHeight){
if(weight>=minWeight){
System.out.print("Eligible to serve.");
}else{
System.out.print("Too light to serve.");
}
}else{
if (weight>=minWeight){
System.out.print("Too short to serve.");
}else{
System.out.print("Too short and too light to serve.");
}
}
a. What is the output when height exceeds minHeight and weight exceeds minWeight?
สิ่งใดจะถูกส่งออกเมื่อ height มากกว่า minHeight และ weight มากกว่า minWeight
Answer...เราสามารถหาคำตอบได้โดยการประกาศและกำหนดค่าดังนี้
int height =12;//มีค่ามากกว่า minHeight เป็นไปตามที่โจทย์กำหนด
int minHeight =10;//มีค่าน้อยกว่า height
int weight =3;//มีค่ามากกว่า minWeight เป็นไปตามที่โจทย์กำหนด
int minWeight = 0;//มีค่าน้อยกว่า weight
เมื่อเราได้ประกาศและกำหนดค่าต่างๆเหล่านี้ไปแล้ว output ของ code นี้คือ Eligible to serve.
a. What is the output when height is less than minHeight and weight is less than minWeight?
สิ่งใดจะถูกส่งออกเมื่อheight น้อยกว่า minHeight และ weight น้อยกว่า minWeight
Answer...เราสามารถหาคำตอบได้โดยการประกาศและกำหนดค่าดังนี้
int height =12;//มีค่าน้อยกว่า minHeight เป็นไปตามที่โจทย์กำหนด
int minHeight =14;//มีค่ามากกว่า height
int weight =3;//มีค่าน้อยกว่า minWeight เป็นไปตามที่โจทย์กำหนด
int minWeight = 5;//มีค่ามากกว่า weight
เมื่อเราได้ประกาศและกำหนดค่าต่างๆเหล่านี้ไปแล้ว output ของ code นี้คือ Too short and too light to serve.
source : Programming and problem solving with Java
Nell Dale and Chip Weems. -- 2nd ed. page 267
ISBN-13 : 978-0-7637-3402-2
condition
Question....Given the float variables x1,x2,y1,y2,and m ,write a code segment to find the slope of a line through the two points (x1,y1)and(x2,y2). Use the formula
ให้ตัวแปรลอยๆ x1, x2, y1, y2, และ m ให้เขียนโค้ดหาความชันของเส้นผ่านจุดสองจุด (x1, y1) และ (x2, y2)
ใช้สูตร
m = y2-y1
x2-x1
to determine the slope of the line. If x1 equals x2,the line is vertical and the slope is undefined. The segment should display the slope with an appropriate label.If the slope is undefined, it should display the message “Slope undefined.”
กำหนดความชันของเส้น ถ้า x1 เท่ากับ x2 เส้นแนวตั้งและความชันจะหาค่าไม่ได้ ส่วนการแสดงผลความชันที่เหมาะสมควรเป็นป้ายประกาศ ถ้าความชันหาค่าไม่ได้ก็ควรแสดงข้อความ "ความชันหาค่าไม่ได้"
Write a code :
//ประกาศและกำหนดตัวแปรเพื่อให้โค้ดสามารถแสดงผลให้เราดูได้
int y1= 10;
int y2= 15;
int x1= 15;
int x2= 15;//หากกำหนดค่าของ x2 มากกว่า x1 จะทำให้เราสามารถหาค่าของความชั่นได้
int m=0;
if(x2-x1>0){//เงื่อนไขบอกว่าถ้า x2-x1 แล้วมากกกว่า 0 จะสามารถหาค่าความชันได้โดย statement ด้านล่าง
m=y2-y1/(x2-x1);
println(+m);
}else{//ถ้าไม่เป็นไปตามเงื่อนไขด้านบนจะทำตาม statement ด้านล่างนี้
System.out.print("Slope undefined.");
}
source : Programming and problem solving with Java
Nell Dale and Chip Weems. -- 2nd ed. page 271
ISBN-13 : 978-0-7637-3402-2
วันพฤหัสบดีที่ 18 กรกฎาคม พ.ศ. 2556
Express way
void setup(){//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก ก่อน void draw ด้วยsize(400,400);
noStroke();
background(#99FCE4);
fill(#CDF572);
rect(0,100,400,300);
fill(#E8EAE1);
triangle(200,100,100,400,300,400);
}
int x=200;
int y=100;
int w=0;
int h=300;
int count=0;
int n=5;
//การประกาศและกำหนดข้างต้นเป็นการประกาศตัแปรแบบ global variable ซึ่งก็คือการประกาศและกำหนดตัวแปรภายนอกฟังก์ชั่น ทุกฟังก์ชั่นสามารถเรียกใช้ได้
void draw(){//เป็น function หนึ่งใน system function เช่นเดียวกับ setup มีการเรียกใช้อัตโนมัติ แต่การทำงานของทั้งสองจะแตกต่างกัน void draw จะทำงานตาม Statement และเงื่อนที่ได้กำหนดให้นั้นซ้ำๆไปเรื่อยๆ
stroke(0);//เส้นที่ใช้วาดมีสีดำ
while(count<n){//เงื่อนไขที่ใช้ในการวน loop กำหนดคำสั่งว่าถ้า count มีค่าน้อยกว่า 10 ให้ทำ statemaent ที่กำหนดต่อไปเรื่อยๆ จนกว่าจะออกจาเงื่อนไข
line(x,y,x-100+w,y+h);
w=w+50;//statement นี้ จะทำให้ค่า w ในครั้งต่อไปเพิ่มขึ้น ครั้งละ 50
count=count+1;//เมื่อทำตาม statement ดังกล่าวหมดแล้วจะบวกเงื่อนไขเข้าไปอีก 1 วนกลับไปที่เงื่อนไขอีกครั้ง
}
strokeWeight(4);//เส้นที่ใช้วาดมีขนาดเท่ากับ 4
line(x,y,x,400);
}
Railway
void setup(){//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก ก่อน void draw ด้วย
size(400,400);//ขนาดของ canvas ที่เรากำหนด
background(#69DEFC);
fill(#1E7102);
rect(0,160,400,240);//การสร้างสี่เหลี่ยม
}
int x= 100;//การประกาศและกำหนดตำแหน่งบนแกน x
int y= 400;//การประกาศและกำหนดตำแหน่งบนแกน y
int w= 220;//การประกาศและกำหนดความกว้างของเส้น
int h=0;//การประกาศและกำหนดความสูง
int n=0;//การประกาศและกำหนดเพื่อใช้ลดความกว้างของเส้น
int count=0;//การประกาศและกำหนดข้างต้นเป็นการประกาศตัแปรแบบ global variable ซึ่งก็คือการประกาศและกำหนดตัวแปรภายนอกฟังก์ชั่น ทุกฟังก์ชั่นสามารถเรียกใช้ได้
void draw(){//เป็น function หนึ่งใน system function เช่นเดียวกับ setup มีการเรียกใช้อัตโนมัติ แต่การทำงานของทั้งสองจะแตกต่างกัน void draw จะทำงานตาม Statement และเงื่อนที่ได้กำหนดให้นั้นซ้ำๆไปเรื่อยๆ
while(count<10 ){//เงื่อนไขที่ใช้ในการวน loop กำหนดคำสั่งว่าถ้า count มีค่าน้อยกว่า 10 ให้ทำ statemaent ที่กำหนดต่อไปเรื่อยๆ จนกว่าจะออกจาเงื่อนไขline(x+30,y,x+85,y-240);//ส่วนหนึ่งของรางที่พาดทับตามแนวแกนตั้ง
strokeWeight(2);//ขนาดของเส้นที่ใช้วาดstroke(#6C2509);//สีของเส้นที่ใช้วาดline(x+n,y-h,x+w-n,y-h);h=h+25;//statement นี้ จะทำให้ค่า h ในครั้งต่อไปเพิ่มขึ้น ครั้งละ 25n=n+7;//statement นี้ จะทำให้ค่า n ในครั้งต่อไปเพิ่มขึ้น ครั้งละ 7count=count+1;//เมื่อทำตาม statement ดังกล่าวหมดแล้วจะบวกเงื่อนไขเข้าไปอีก 1}//ถ้าไม่เป็นไปตามเงื่อนไขด้านบนก็จะออกจาก loop เพื่อมาทำตาม statement ด่านล่าง
line(x+w-30,y,x+w-85,y-240);//ส่วนหนึ่งของรางที่พาดทับตามแนวแกนตั้ง
}
วันอังคารที่ 16 กรกฎาคม พ.ศ. 2556
mobile
void setup(){//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก ก่อน void draw ด้วย
size(400,400);//ขนาดของ canvas ที่เรากำหนด
background(223,123,123);
}
int h = 100;
int w = 20;
int xpos = 150;
int ypos = 150;
int count=0;
int n=4;
int m=0;
int o=0;//การประกาศและกำหนดข้างต้นเป็นการประกาศตัแปรแบบ global variable ซึ่งก็คือการประกาศและกำหนดตัวแปรภายนอกฟังก์ชั่น ทุกฟังก์ชั่นสามารถเรียกใช้ได้
void draw(){//เป็น function หนึ่งใน system function เช่นเดียวกับ setup มีการเรียกใช้อัตโนมัติ แต่การทำงานของทั้งสองจะแตกต่างกัน void draw จะทำงานตาม Statement และเงื่อนที่ได้กำหนดให้นั้นซ้ำๆไปเรื่อยๆ
while(count<n){//เงื่อนไขที่ใช้ในการวน loop กำหนดคำสั่งว่าถ้า count มีค่าน้อยกว่า n ให้ทำ statemaent ที่กำหนดต่อไปเรื่อยๆ จนกว่าจะออกจาเงื่อนไข
line(xpos+10+m,ypos,xpos+10+m,ypos-50);rect(xpos+m,ypos,w,h+o);o=o+30;//statement นี้ จะทำให้ค่า o ในครั้งต่อไปเพิ่มขึ้น ครั้งละ 30m=m+30;//statement นี้ จะทำให้ค่า m ในครั้งต่อไปเพิ่มขึ้น ครั้งละ 30count=count+1;//เมื่อทำตาม statement ดังกล่าวหมดแล้วจะบวกเงื่อนไขเข้าไปอีก 1}
//ถ้าไม่เป็นไปตามเงื่อนไขด้านบนก็จะออกจาก loop เพื่อมาทำตาม statement ด่านล่างline(xpos+5+50,ypos-70,xpos+5+50,ypos-150);rect(xpos+5,ypos-70,100,20);}
brigde
void setup(){//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก ก่อน void draw ด้วย
size(400,400);//ขนาดของ canvas ที่เรากำหนด
background(#67D9FA);
}
int xpos=230;
int ypos=200;
int count=0;
int a=0;
int b=0;
int n=15;//การประกาศและกำหนดข้างต้นเป็นการประกาศตัแปรแบบ global variable ซึ่งก็คือการประกาศและกำหนดตัวแปรภายนอกฟังก์ชั่น ทุกฟังก์ชั่นสามารถเรียกใช้ได้
void draw(){//เป็น function หนึ่งใน system function เช่นเดียวกับ setup มีการเรียกใช้อัตโนมัติ แต่การทำงานของทั้งสองจะแตกต่างกัน void draw จะทำงานตาม Statement และเงื่อนที่ได้กำหนดให้นั้นซ้ำๆไปเรื่อยๆ
while(count<n){//เงื่อนไขที่ใช้ในการวน loop กำหนดคำสั่งว่าถ้า count มีค่าน้อยกว่า n ให้ทำ statemaent ที่กำหนดต่อไปเรื่อยๆ จนกว่าจะออกจาเงื่อนไขstrokeWeight(4);
//strokeWeight(1);line(xpos,ypos-70-a,xpos-b,ypos);line(xpos,ypos-70-a,xpos+80+a,ypos);a=a+5;//statement นี้ จะทำให้ค่า a ในครั้งต่อไปเพิ่มขึ้น ครั้งละ 5b=b+15;//statement นี้ จะทำให้ค่า b ในครั้งต่อไปเพิ่มขึ้น ครั้งละ 15count=count+1;//เมื่อทำตาม statement ดังกล่าวหมดแล้วจะบวกเงื่อนไขเข้าไปอีก 1}
//ถ้าไม่เป็นไปตามเงื่อนไขด้านบนก็จะออกจาก loop เพื่อมาทำตาม statement ด่านล่าง
line(0,200,600,200);fill(#4D3F1E);strokeWeight(1);quad(225,53,231,53,237,260,223,260);}
Curve Stitching
void setup()
{//เป็น function หนึ่งใน system function เป็น function ที่เรียกใช้อัตโนมัติ และยังเป็นฟังก์ชั่นที่ทำงานเพียงครั้งเดียวและจะทำงานก่อนเป็นสิ่งแรก ก่อน void draw ด้วย
size(400,400);//ขนาดของ canvas ที่เรากำหนด
}
void draw(){//เป็น function หนึ่งใน system function เช่นเดียวกับ setup มีการเรียกใช้อัตโนมัติ แต่การทำงานของทั้งสองจะแตกต่างกัน void draw จะทำงานตาม Statement และเงื่อนที่ได้กำหนดให้นั้นซ้ำๆไปเรื่อยๆ
background(random(0,255),random(12,12),random(122,12));//เป็นคำสั่งที่จะสุ่มเลือกสีระหว่างค่าที่เรากำหนดเอาเอง สังเกตได้จากการกระพริบของสีพื้นหลังที่มีการเปลี่ยนตลอดเวลา
int xPos = 100;
int yPos = 100;
int a = 0;
int h = 100;
int count =0;
int n= 21;
int d= 200;
int c=100;//การประกาศและกำหนดข้างต้นเป็นการประกาศตัแปรแบบ local variable ซึ่งก็คือการประกาศและกำหนดตัวแปรภายในฟังก์ชั่น มีเพียงฟังก์ชั่นนั้นเพียงฟังก์ชั่นเดียวที่สามารถเรียกใช้ได้
while(count<n){//เงื่อนไขที่ใช้ในการวน loop กำหนดคำสั่งว่าถ้า count มีค่าน้อยกว่า n ให้ทำ statemaent ที่กำหนดต่อไปเรื่อยๆ จนกว่าจะออกจาเงื่อนไข
//Curve บนด้านซ้ายline(xPos,yPos+h-a,xPos-a,yPos);//ส่วนโค้งล่างซ้ายline(xPos,yPos-h+a,xPos-a,yPos);//ส่วนโค้งบนซ้ายline(xPos,yPos-h+a,xPos+a,yPos);//ส่วนโค้งบนขวาline(xPos,yPos+h-a,xPos+a,yPos);//ส่วนโค้งล่างขวา//Curve บนด้านขวาline(xPos+d,yPos+h-a,xPos+d-a,yPos);//ส่วนโค้งล่างซ้ายline(xPos+d,yPos-h+a,xPos+d-a,yPos);//ส่วนโค้งบนซ้ายline(xPos+d,yPos-h+a,xPos+d+a,yPos);//ส่วนโค้งบนขวาline(xPos+d,yPos+h-a,xPos+d+a,yPos);//ส่วนโค้งล่างขวา//Curve ล่างด้านขวาline(xPos+d,yPos+d+h-a,xPos+d-a,yPos+d);//ส่วนโค้งล่างซ้ายline(xPos+d,yPos+d-h+a,xPos+d-a,yPos+d);//ส่วนโค้งบนซ้ายline(xPos+d,yPos+d-h+a,xPos+d+a,yPos+d);//ส่วนโค้งบนขวาline(xPos+d,yPos+d+h-a,xPos+d+a,yPos+d);//ส่วนโค้งล่างขวา//Curve ล่างด้านซ้ายline(xPos,yPos+d+h-a,xPos-a,yPos+d);//ส่วนโค้งล่างซ้ายline(xPos,yPos+d-h+a,xPos-a,yPos+d);//ส่วนโค้งบนซ้ายline(xPos,yPos+d-h+a,xPos+a,yPos+d);//ส่วนโค้งบนขวาline(xPos,yPos+d+h-a,xPos+a,yPos+d);//ส่วนโค้งล่างขวา//Curve ตรงกลางline(xPos+c,yPos+c+h-a,xPos+c-a,yPos+c);//ส่วนโค้งล่างซ้ายline(xPos+c,yPos+c-h+a,xPos+c-a,yPos+c);//ส่วนโค้งบนซ้าย
line(xPos+c,yPos+c-h+a,xPos+c+a,yPos+c);//ส่วนโค้งบนขวาline(xPos+c,yPos+c+h-a,xPos+c+a,yPos+c);//ส่วนโค้งล่างขวาa=a+5;//statement นี้ จะทำให้ค่า a ในครั้งต่อไปเพิ่มขึ้นอีกครั้งละ 5count=count+1;//เมื่อทำตาม statement ดังกล่าวหมดแล้วจะบวกเงื่อนไขเข้าไปอีก 1}}
วันพฤหัสบดีที่ 11 กรกฎาคม พ.ศ. 2556
SPORT:ยิงธนู
size ใช้ในการกำหนดขนาดของ Canvas (กว้างxยาว)หากไม่กำหนด Canvas จะมีขนาด100x100
int … เป็นการประกาศตัวแปร[x, y,หรือ r] เพื่อที่จะกำหนดและเรียกใช้ต่อไป
-การกำหนด = ค่าที่กำหนด เรียกว่า literal เป็นค่าที่ไม่ใช่ตัวแปร สามารถนำไปใช้ได้ในทันที Ex. 10,20, 20+30 โดยที่ค้าข้างขวาจะเป็นตัวกำหนดตัวแปรข้างซ้าย
-การเรียกใช้ = จะทำโดยการนำเอาตัวแปรที่ประกาศและกำหนดนั้นไปไว้ตรงบริเวณที่ต้องการ
rect เป็นการวาดรูปสี่เหลี่ยมมุมฉากที่กำหนด มุมเพียงจุดเดียว ความกว้างและความยาว
ellipse เป็นการวาดรูปวงกลมวงรีที่ต้องกำหนด(x,y,ความกว้างม,ความยาว)โดย x,y คือจุดศูนย์กลางของวงกลม
triangle เป็นการวาดรูปสามเหลี่ยมที่กำหนดจุดทั้งสามจุด(x1y1x2,y2,x3,y3)
void setup เป็นฟังก์ชันในการประกาศ กำหนดค่า และเป็นสำหรับพื้นฐาน animation มีการเรียกใช้โดยอัตโนมัติ เราไม่ต้องมีการเรียกใช้อีกและยังเป็นฟังก์ชั่นที่จะทำงานก่อนฟังก์ชั่นอื่นๆเสมอไม่ว่าจะวางไว้บนสุดหรือล่างสุดก็จะทำงานก่อนเป็นอันดับเเรก
void draw เป็นฟังก์ชั่นอัตโนมัติที่ไม่ต้องมีการเรียกใช้ จะทำงานซ้ำๆตามที่ได้ให้ค่าเอาไว้
void setup(){//ฟังก์ชันในการประกาศ กำหนดค่า และเป็นสำหรับพื้นฐาน animation มีการเรียกใช้โดยอัตโนมัติ เราไม่ต้องมีการเรียกใช้อีกและยังเป็นฟังก์ชั่นที่จะทำงานก่อนฟังก์ชั่นอื่นๆเสมอไม่ว่าจะวางไว้บนสุดหรือล่างสุดก็จะทำงานก่อนเป็นอันดับเเรก
size(300,300);
}
void drawTarget(){//เป็นฟังก์ชั่นที่เราสร้างขึ้นเอง (user defined function)
int r=20;
int R=25;
int x= 50;
int y=170;
//Target ด้านซ้าย
fill(255, 255, 32);
ellipse(x,y,r+100,R+100);
fill(0, 255, 255);
ellipse(x,y,r+70,R+70);
fill(127, 255, 0);
ellipse(x,y,r+45,R+45);
fill(254,21,14);
ellipse(x,y,r+25,R+25);
fill(0);
ellipse(x,y,r+10,R+10);
fill(245);
ellipse(x,y,r-5,R-5);
//Target ด้านขวา
fill(255, 255, 32);
ellipse(x+100,y-70,r+100,R+100);
fill(0, 255, 255);
ellipse(x+100,y-70,r+70,R+70);
fill(127, 255, 0);
ellipse(x+100,y-70,r+45,R+45);
fill(254,21,14);
ellipse(x+100,y-70,r+25,R+25);
fill(0);
ellipse(x+100,y-70,r+10,R+10);
fill(245);
ellipse(x+100,y-70,r-5,R-5);
}
int x=0;
void drawTanu(){//เป็นฟังก์ชั่นที่เราสร้างขึ้นเอง (user defined function)
triangle(260+x,180,350+x,175,350+x,185);
triangle(250+x,170,340+x,165,340+x,175);
triangle(230+x,150,320+x,145,320+x,155);
x=x-1;//ทำให้ภาพเคลื่อนที่ไปทางซ้ายโดยการลบออกไปทีละ 1
}
void draw(){
background(0);//เรียกใช้ฟังก์ชั่นที่เราสร้างขึ้นเอง (user defined function)
drawTarget();//เรียกใช้ฟังก์ชั่นที่เราสร้างขึ้นเอง (user defined function)
drawTanu();//เรียกใช้ฟังก์ชั่นที่เราสร้างขึ้นเอง (user defined function)
}
MUSIC:DRUMMER BY FUNCTION
คำอธิบาย
size ใช้ในการกำหนดขนาดของ Canvas (กว้างxยาว)หากไม่กำหนด Canvas จะมีขนาด100x100
background เป็นการกำหนดสีของพื้นหลัง
int … เป็นการประกาศตัวแปร[x, y,หรือ r] เพื่อที่จะกำหนดและเรียกใช้ต่อไป
-การกำหนด = ค่าที่กำหนด เรียกว่า literal เป็นค่าที่ไม่ใช่ตัวแปร สามารถนำไปใช้ได้ในทันที Ex. 10,20, 20+30 โดยที่ค้าข้างขวาจะเป็นตัวกำหนดตัวแปรข้างซ้าย
-การเรียกใช้ = จะทำโดยการนำเอาตัวแปรที่ประกาศและกำหนดนั้นไปไว้ตรงบริเวณที่ต้องการ
rect เป็นการวาดรูปสี่เหลี่ยมมุมฉากที่กำหนด มุมเพียงจุดเดียว ความกว้างและความยาวในทิศทางบวก
ellipse เป็นการวาดรูปวงกลมวงรีที่ต้องกำหนด(x,y,ความกว้างม,ความยาว)โดย x,y คือจุดศูนย์กลางของวงกลม
line เป็นการวาดเส้นตรงโดยการกำหนดจุดสองจุด
fill เป็นคำสั่งการใส่สีของรูป
triangle เป็นการวาดรูปสามเหลี่ยมที่กำหนดจุดทั้งสามจุด(x1y1x2,y2,x3,y3)
void setup เป็นฟังก์ชันในการประกาศ กำหนดค่า และเป็นสำหรับพื้นฐาน animation มีการเรียกใช้โดยอัตโนมัติ เราไม่ต้องมีการเรียกใช้อีกและยังเป็นฟังก์ชั่นที่จะทำงานก่อนฟังก์ชั่นอื่นๆเสมอไม่ว่าจะวางไว้บนสุดหรือล่างสุดก็จะทำงานก่อนเป็นอันดับเเรก
void draw เป็นฟังก์ชั่นอัตโนมัติที่ไม่ต้องมีการเรียกใช้ จะทำงานซ้ำๆตามที่ได้ให้ค่าเอาไว้
void setup(){//ฟังก์ชันในการประกาศ กำหนดค่า และเป็นสำหรับพื้นฐาน animation มีการเรียกใช้โดยอัตโนมัติ เราไม่ต้องมีการเรียกใช้อีกและยังเป็นฟังก์ชั่นที่จะทำงานก่อนฟังก์ชั่นอื่นๆเสมอไม่ว่าจะวางไว้บนสุดหรือล่างสุดก็จะทำงานก่อนเป็นอันดับเเรก
size(300,300);//กำหนดขนาดของ canvas
background(185);//พื้นหลังสีเทา
}
int r=90;
int w=60;
void drawDrum(){//เป็นฟังก์ชั่นที่เรากำหนดหรือสร้างขึ้นมาเอง(user defined function)
//กลองด้านหน้า
fill(#71AF15);//การใส่สีโดยการใช้โค้ดสี
ellipse(145, 195, r, r);//กลองด้านหน้า
fill(185);//สีเทา
ellipse(150, 210, r, r);//ขอบกลองด้านหน้าเป็นขอบสีเทา
fill(0);//สีดำ
ellipse(150, 210, r-5, r-5);//กลองด้านหน้าที่เป็นสีดำ
line(145, 135, 145, 156);//เส้นเชื่อมต่อระหว่างกลองตามแนวแกน y
line(141, 135, 141, 156);//เส้นเชื่อมต่อระหว่างกลองตามแนวแกน y
line(126, 135, 159, 135);//เส้นเชื่อมต่อระหว่างกลองตามแนวแกน x
line(126, 132, 159, 132);//เส้นเชื่อมต่อระหว่างกลองตามแนวแกน x
fill(#548919);//การใส่สีโดยการใช้โค้ดสี
rect(40, 125, w, 75);//กลองด้านหลังด้านซ้ายที่สูงๆ
rect(195,150, w, 30);//กลองด้านหลังด้านขวา
}
int x1= 10;
int x2= 62;
int x3= 110;
int y1= 250;
int y2= 220;
void drawLegDrum(){//เป็นฟังก์ชั่นที่เรากำหนดหรือสร้างขึ้นมาเอง(user defined function)
//ขาตั้งกลอง
fill(0);
triangle(x1, y1, x2, y2, x3, y1);//ขาตั้งกลองด้านซ้าย
triangle(x1+170, y1, x2+170, y2, x3+170, y1);//ขาตั้งกลองด้านขวา
fill(185);
triangle(18, y1, 62, y2, 102, y1);//ขาตั้งกลองด้านซ้าย
triangle(188, y1, 232, y2, 272, y1);//ขาตั้งกลองด้านขวา
int Y=250;
int W= 5;
int H= -170;
fill(0);
rect(230, Y, W, H);//ขาตั้งกลอง
rect(60, Y, W, H-20);//ขาตั้งกลอง
}
void drawChape(){//เป็นฟังก์ชั่นที่เรากำหนดหรือสร้างขึ้นมาเอง(user defined function)
//ฉาบ
fill(#A07534);//การใส่สีโดยการใช้โค้ดสี
int R1=80;//การประกาศและกำหนด
int R2=10;
ellipse(230, 100, R1, R2);//ฉาบ
ellipse(60, 80, R1, R2);//ฉาบ
}
void drawBackDrum(){//เป็นฟังก์ชั่นที่เรากำหนดหรือสร้างขึ้นมาเอง(user defined function)
fill(#94ED37);//การใส่สีโดยการใช้โค้ดสี
int y= 145;//การประกาศและกำหนด
int w1= 40;
int h= -45;
rect(126, y, -w1, h);//กลองด้านบนซ้าย
rect(159, y, w1, h);//กลองบนขวา
}
void draw(){//ฟังก์ชั่นอัตโนมัติที่ไม่ต้องมีการเรียกใช้ จะทำงานซ้ำๆตามที่ได้ให้ค่าเอาไว้
drawDrum();//เรียกใช้ฟังก์ชั่นชื่อ drawDrum
drawLegDrum();//เรียกใช้ฟังก์ชั่นชื่อ drawLegDrum
drawChape();//เรียกใช้ฟังก์ชั่นชื่อ drawChape ซึ่งเป็นฟังก์ชั่นที่เราได้สร้างขึ้นมาเอง(สามารถดูได้ที่ด้านบน)
drawBackDrum();//เรียกใช้ฟังก์ชั่นชื่อ drawBackDrum ซึ่งเป็นฟังก์ชั่นที่เราสร้างขึ้นมาเอง
}
SPORT:Shooting action
คำอธิบาย
size ใช้ในการกำหนดขนาดของ Canvas (กว้างxยาว)หากไม่กำหนด Canvas จะมีขนาด100x100
background เป็นการกำหนดสึของพื้นหลัง
fill เป็นการกำหนดสีของรูปที่เราวาด
stroke เป็นการกำหนดสีของเส้น
strokeWeight เป็นการกำหนดขนาดของเส้น
int … เป็นการประกาศตัวแปร[x, y,หรือ r] เพื่อที่จะกำหนดและเรียกใช้ต่อไป
-การกำหนด = ค่าที่กำหนด เรียกว่า literal เป็นค่าที่ไม่ใช่ตัวแปร สามารถนำไปใช้ได้ในทันที Ex. 10,20, 20+30 โดยที่ค้าข้างขวาจะเป็นตัวกำหนดตัวแปรข้างซ้าย
-การเรียกใช้ = จะทำโดยการนำเอาตัวแปรที่ประกาศและกำหนดนั้นไปไว้ตรงบริเวณที่ต้องการ
rect เป็นการวาดรูปสี่เหลี่ยมมุมฉากที่กำหนด มุมเพียงจุดเดียว ความกว้างและความยาว
ellipse เป็นการวาดรูปวงกลมวงรีที่ต้องกำหนด(x,y,ความกว้างม,ความยาว)โดย x,y คือจุดศูนย์กลางของวงกลม
quad เป็นการวาดที่สามารถกำหนดมุมได้สี่มุมโดยกำหนดเป็นจุด x,y (x1,y1,x2,y2,x3,y3,x4,y4)โดยการกำหนดจุดนั้นจะกระทำโดยการเวียนในทิศตามเข็นหรือทวนเข็มนาฬิกา
void setup เป็นฟังก์ชันในการประกาศ กำหนดค่า และเป็นสำหรับพื้นฐาน animation มีการเรียกใช้โดยอัตโนมัติ เราไม่ต้องมีการเรียกใช้อีกและยังเป็นฟังก์ชั่นที่จะทำงานก่อนฟังก์ชั่นอื่นๆเสมอไม่ว่าจะวางไว้บนสุดหรือล่างสุดก็จะทำงานก่อนเป็นอันดับเเรก
void draw เป็นฟังก์ชั่นอัตโนมัติที่ไม่ต้องมีการเรียกใช้ จะทำงานซ้ำๆตามที่ได้ให้ค่าเอาไว้
mouseX คือ ตัวแปรที่มีอยู่ในระบบอยู่แล้ว ที่ระบุตำแหน่งของเมาส์ตามแนวแกน X
mouseY คือ ตัวแปรที่มีอยู่ในระบบอยู่แล้ว ที่ระบุตำแหน่งของเมาส์ตามแนวแกน Y
void setup(){//void setup เป็นฟังก์ชันในการประกาศ กำหนดค่า และเป็นสำหรับพื้นฐาน animation มีการเรียกใช้โดยอัตโนมัติ เราไม่ต้องมีการเรียกใช้อีกและยังเป็นฟังก์ชั่นที่จะทำงานก่อนฟังก์ชั่นอื่นๆเสมอไม่ว่าจะวางไว้บนสุดหรือล่างสุดก็จะทำงานก่อนเป็นอันดับเเรก
size(300,300);//ขนาดของ canvas
}
void draw(){//void draw เป็นฟังก์ชั่นอัตโนมัติที่ไม่ต้องมีการเรียกใช้ จะทำงานซ้ำๆตามที่ได้ให้ค่าเอาไว้
background(0);//พื้นหลังมีสีดำ
int x=175;//กำหนดจุด x ตามแนวแกน x
int y=130;//กำหนดจุด y ตามแนวแกน y
int r=235;//กำหนดค่าความกว้างความสูงของวงกลม
//เป้ายิงปืน
ellipse(x+mouseX,y+mouseY,r,r);//วงกลมสีขาวด้านนอกสุด
ellipse(x+mouseX,y+mouseY,r-25,r-25);//วงกลมสีขาวตรงกลาง
ellipse(x+mouseX,y+mouseY,r-50,r-50);//วงกลมสีขาวที่ติดกับวงกลมสีดำ
fill(0);//กำหนดเพื่อให้ได้รูปสีดำ
stroke(153);//กำหนดเพื่อให้เส้นของรูปมีสีเทา
ellipse(x+mouseX,y+mouseY,r-75,r-75);//วงกลมสีดำวงนอกสุด
ellipse(x+mouseX,y+mouseY,r-100,r-100);//วงกลมสีเทาถัดเข้าไป
ellipse(x+mouseX,y+mouseY,r-125,r-125);//วงกลมสีเทาถัดเข้าไป
ellipse(x+mouseX,y+mouseY,r-150,r-150);//วงกลมสีเทาถัดเข้าไป
ellipse(x+mouseX,y+mouseY,r-175,r-175);//วงกลมสีดำวงสุดท้าย
fill(255,5,5);//กำหนดเพื่อให้ได้รูปเป็นสีแดง
ellipse(x+mouseX,y+mouseY,r-200,r-200);
ellipse(x+mouseX,y+mouseY,r-232,r-232);
//จะเปลี่ยนตำแหน่งเมื่อเลื่อนเมาส์ซ้ายขวาและขึ้นลง โดยการกำหนด(mouseX)จะเปลี่ยนตำแหน่งไปตามแนวแกนX เมื่อมีการเลื่อนเมาส์ไปตามแนวแกน X และ(mouseY)จะเปลี่ยนตำแหน่งไปตามแนวแกน y เมื่อมีการเลื่อนเมาส์ไปตามแนวแกน Y โดยบวกเพิ่มจากจุดแกนที่ได้ประกาศและกำหนดเอาไว้ใน int
//ด้ามปืนและที่ลั่นไกปืน
int x1=240;
int y1=195;
int x2=y1;
int y2=x2;
int x4=220;
int y3=100;
int y4=y3;
int x3=175;
fill(80,75,75);//สีเทา
quad(x3-50,y3,x3,y3,x3+20,y3+40,x3-30,y3+40);//ที่ลั่นไกปืนสีเทา
quad(x1,y1,x2,y2,x3,y3,x4,y4);//ด้ามปืนสีเทา
fill(0);//สีดำ
quad(x1,y1,x2+8,y2,x3+8,y3,x4,y4);//ด้ามปืนสีดำ
quad(x3-45,y3,x3-3,y3,x3+8,y3+35,x3-25,y3+35);//ที่ลั่นไกปืนสีดำ
//body ของปืน
int X=50;
int Y=60;
int h=50;
int w=185;
fill(186,180,181);//สีเทาอ่อน
rect(X,Y,w,h);//bodyสีเทาอ่อน
fill(0);//สีดำ
rect(X,Y+25,w,h-25);//bodyสีดำ
rect(X,Y,-w+160,h-30);//ปากกระบอกปืน
fill(80,75,75);//สีเทาเข้ม
rect(X,Y+20,w-120,h-20);//อยู่ใกล้ๆกับปากกระบอกปืน
//text
strokeWeight(5);//ขนาดของตัวอักษร
line(20,255,35,250);
line(20,255,35,265);
line(35,265,10,285);
fill(250);//กำหนดสีของภาพที่วาด
ellipse(random(0,250),random(0,250),25,25);//random เป็นสุ่มเอาอย่างใดอย่างหนึ่ง ในที่นี้ใช้ random ในการกำหนดตำแหน่ง x และ y โดยจำกัดขอบเขตการสุ่มอยู่ที่ 0 ถึง 250
}
สมัครสมาชิก:
บทความ (Atom)