1.畫出簡單的點
程式:
void setup(){ size(300,300); } void draw(){ background(#002966); fill(#b7efff); noStroke(); ellipse(100,150,13,13); ellipse(200,150,13,13); }
2.可移動右邊的點改變線的位子
程式:
void setup(){
size(300,300);
}
float x=200,y=150;
void draw(){
background(#002966);
stroke(#b7efff);
line(100,150,x,y);
fill(#b7efff);
noStroke();
ellipse(100,150,13,13);
ellipse(x,y,13,13);
}
void mouseDragged(){
x=mouseX; y=mouseY;
}
3.力量的大小與向量相關
程式:
void setup(){
size(300,300);
}
float x=200,y=150;
void draw(){
background(#002966);
stroke(#b7efff);
line(100,150,x,y);
fill(#b7efff);
noStroke();
ellipse(100,150,13,13);
ellipse(x,y,13,13);
if(! mousePressed){
float dx=x-100,dy=y-150;
float len=sqrt(dx*dx+dy*dy);
x-=dx*(len-100)/len;
y-=dy*(len-100)/len;
}
}
void mouseDragged(){
x=mouseX; y=mouseY;
}
4.向外拉會回彈
程式:
void setup(){
size(300,300);
}
float x=200,y=150;
void draw(){
background(#002966);
stroke(#b7efff);
line(100,150,x,y);
fill(#b7efff);
noStroke();
ellipse(100,150,13,13);
ellipse(x,y,13,13);
if(! mousePressed){
float dx=x-100,dy=y-150;
float len=sqrt(dx*dx+dy*dy);
x-=dx*(len-100)/len*0.1;
y-=dy*(len-100)/len*0.1;
}
}
void mouseDragged(){
x=mouseX; y=mouseY;
}
5.向外拉會自動回彈與向外彈
程式:
void setup(){
size(300,300);
}
float x=200,y=150;
float vx=0,vy=0;
void draw(){
background(#002966);
stroke(#b7efff);
line(100,150,x,y);
fill(#b7efff);
noStroke();
ellipse(100,150,13,13);
ellipse(x,y,13,13);
if(! mousePressed){
float dx=x-100,dy=y-150;
float len=sqrt(dx*dx+dy*dy);
vx -= dx*(len-100)/len*0.001;
越大彈力越強
vy -= dy*(len-100)/len*0.001;
越大彈力越強
x+=vx;
y-=vy;
}
}
void mouseDragged(){
x=mouseX; y=mouseY;
}
6.物體會隨著滑鼠移動
程式:
void setup(){
size(400,300);
}
float x=200,y=150;
void draw(){
background(#002966);
fill(255);
rect(x,y,80,20);
//魚(貓),每次往你的mouse移動1/10
float dx=x-mouseX,dy=y-mouseY;
//float len=sqrt(dx*dx+dy*dy);
x-=dx*0.1;
y-=dy*0.1;
}









沒有留言:
張貼留言