2023年9月28日 星期四

小凱 Week03

 第一節課

今天目標製作出一個會動的封面,由點、線、面組成。
1.先試著畫點,加入dx,dy來改變座標。


2.改變背景顏色,dx、dy改亂數讓它亂跑,碰到牆壁會反彈。

3.接著透過for迴圈,讓x,y,dx,dy取亂數,畫面就會有多個圓球在跑。

4.接著加上線連接點。
void setup(){
  size(500,500);
  for(int i=0;i<20;i++){
    x[i]=random(500);
    y[i]=random(500);
    dx[i]=random(-1,+1);//亂數
    dy[i]=random(-1,+1);//亂數
  }
}
float []x=new float[20];//float x=250,y=250;
float []y=new float[20];
float []dx=new float[20];//float dx=1,dy=1;
float []dy=new float[20];
void draw(){
  background(0);
  for(int i=0;i<20;i++){
    ellipse(x[i],y[i],5,5);
    for(int k=0;k<20;k++){
      stroke(255,0,0);
      if(dist(x[i],y[i],x[k],y[k])<100)
      line(x[i],y[i],x[k],y[k]);
    }
    x[i]+=dx[i];
    y[i]+=dy[i];
    if(x[i]<0||x[i]>500) dx[i]=-dx[i];
    if(y[i]<0||y[i]>500) dy[i]=-dy[i];
  }
}

 第二節課

1.增加更多點,把20改成N。

2.讓線因點之間的距離有顏色深淺之分。
void setup(){
  size(500,500);
  for(int i=0;i<N;i++){
    x[i]=random(500);
    y[i]=random(500);
    dx[i]=random(-1,+1);//亂數
    dy[i]=random(-1,+1);//亂數
  }
}
int N=40;
float []x=new float[N];//float x=250,y=250;
float []y=new float[N];
float []dx=new float[N];//float dx=1,dy=1;
float []dy=new float[N];
void draw(){
  background(0);
  for(int i=0;i<N;i++){
    ellipse(x[i],y[i],5,5);
    for(int k=0;k<N;k++){
      float d=dist(x[i],y[i],x[k],y[k]);
      stroke(2.55*(100-d));
      if(d<100)
      line(x[i],y[i],x[k],y[k]);
    }
    x[i]+=dx[i];
    y[i]+=dy[i];
    if(x[i]<0||x[i]>500) dx[i]=-dx[i];
    if(y[i]<0||y[i]>500) dy[i]=-dy[i];
  }
}

3.希望讓動畫更順暢,點與點之間加一點吸引力。

第三節課

進入新的主題:顏色
開啟processing,到色彩選擇器選一個顏色放到程式裡。

改成colorMode(HSB)

加上frameCount%360,色調會持續
改變。

下一個利用迴圈,展現顏色的最大最小值。
size(400,400);
noStroke();
colorMode(HSB,400);
for(int i=0;i<400;i++){
  for(int j=0;j<400;j++){
    stroke(i,400,400);
    point(i,j);
  }
} 

有一個分辨顏色的遊戲,觀察顏色的深淺度,選出不一樣的,試著做做看。

接著做顏色分辨

讓某一個的顏色跟別人不一樣





沒有留言:

張貼留言