2020年6月19日 星期五

week 17

虎克定律




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;//讓魚不會太靠近滑鼠 也不會太遠
}//讓魚慢慢地去吃飼料


沒有留言:

張貼留言