虎克定律
void setup()
{
size(300,300);
}
float x=100,y=150;
void draw()
{
background(#002966);
stroke(#b7efff);//畫出線
line(x,y,200,150);
fill(#b7efff);
ellipse(x,y,13,13);//畫出左右的圓
ellipse(200,150,13,13);
if(! mousePressed)//如果滑鼠沒有按下
{
float dx=x-200;
float 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;//滑鼠拉線
}
void setup()
{
size(300,300);
}
float x=100,y=150;
float vx=0,vy=0;
void draw()
{
background(#002966);
stroke(#b7efff);
line(x,y,200,150);
fill(#b7efff);
ellipse(x,y,13,13);
ellipse(200,150,13,13);
if(! mousePressed)
{
float dx=x-200;
float dy=y-150;
float len =sqrt(dx*dx+dy*dy);
float f=(len-100);
dx/=len;
dy/=len;
vx-=f*dx*0.01;
vy-=f*dy*0.01;
x+=vx;
y+=vy;
x-=dx*(len-100)/len*0.1;
y-=dy*(len-100)/len*0.1;
} //虎克定律 讓線彈跳
}
void mouseDragged()
{
x=mouseX; y=mouseY;
}
魚吃飼料
void setup()
{
size(400,300);
}
float x=100,y=150;
void draw()
{
background(#002966);
ellipse(x,y,50,50);
float dx=x-mouseX;
float dy=y-mouseY;
float len=sqrt(dx*dx+dy*dy);
x-=dx*(len-100)/len*0.1;
y-=dy*(len-100)/len*0.1;//讓魚不會太靠近滑鼠 也不會太遠
}//讓魚慢慢地去吃飼料






沒有留言:
張貼留言