線可以來回彈
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);
dy/=len;
dx/=len;
vx-=f*dx*0.01;
vy-=f*dy*0.01;
x+=vx;
y+=vy;
}
}
void mouseDragged()
{
x=mouseX;y=mouseY;
}
保持距離
void setup()
{
size(300,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;
}


沒有留言:
張貼留言