2020年6月18日 星期四

幾何圖形


先寫出背景,背景顏色,及一顆圓球
void setup(){
    size(300,300);
}
void draw(){
  background(#002966);\\背景顏色
  fill(#b7efff);\\球的顏色
  noStroke();\\\不畫線
  ellipse(100,150, 13,13);
  ellipse(200,150, 13,13);
}

下一步:
把圓跟圓之間的線畫出來

void setup(){
    size(300,300);
}
void draw(){
  background(#002966);
  stroke(#b7efff);///多加了這行畫線
  line(100,150, 200,150);以及點連點的線

  fill(#b7efff);
  noStroke();
  ellipse(100,150, 13,13);
  ellipse(200,150, 13,13);
}

使點可以隨著滑鼠移動
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;
}


讓點放開滑鼠時回彈
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;
}
一次只有10分之一,比較圓滑

虎克定律
微積分: 位置=>速度=>加速度(力)
讓圓圈反彈


   使圓圈彈跳速度變快
vx -= dx*(len-100)/len*0.1;
    vy -= dy*(len-100)/len*0.1;
    x+= vx;///x -= dx*(len-100)/len*0.1;\\\越大越強
    y+= vy;///y -= dy*(len-100)/len*0.1;
}
void mouseDragged(){
  x= mouseX; y= mouseY;
  vx =0; vy=0;\\\在拉動時,不能有速度
}





沒有留言:

張貼留言