2023年9月28日 星期四

KZNK Week03 吸引

 Week03-1 dxdy

開啟processing,輸入以下程式碼
命名week03_1_dxdy
線以1的位置增長






















Week03-2 random dxdy

開啟processing,輸入以下程式碼
命名week03_2_dxdy_random
























Week03-3 random+陣列

開啟processing,輸入以下程式碼
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 []y=new float[20];
float []dx=new float[20];
float []dy=new float[20];
void draw(){
  background(0);
  for(int i=0;i<20;i++){
    ellipse(x[i],y[i],5,5);
    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];
  }
}
命名week03_3_dxdy_random_i 
加入陣列




















Week03-4 nearline

開啟processing,加入以下程式碼
    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]);
    }
命名week03_4_nearline
把近的點連成線



















Week03-5 line color

開啟processing,改變以下程式碼 
    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]);
    }
命名week03_5_stroke_army_size
線的顏色可照距離改變深淺


















Week03-6 attraction

開啟processing,改變以下程式碼 
      if(d<100){ //距離夠近
        line(x[i],y[i],x[k],y[k]);
        dx[i]+=(x[k]-x[i])*0.00003; //就加吸引力
        dy[i]+=(y[k]-y[i])*0.00003;
      }
命名week03_6_attraction
加一點吸引力



















Week03-7 colorselector

開啟processing,輸入以下程式碼
命名week03_7_colorselector
用HSB跑色彩 以同樣亮度和飽和度變化

Week03-8 stroke

開啟processing,輸入以下程式碼
命名week03_8_strokepoint
用迴圈跑





沒有留言:

張貼留言