2020年6月18日 星期四

Week17

程式設計二
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;
  }



沒有留言:

張貼留言