2023年9月28日 星期四

LAD Week03

 點線面

點:
void setup(){
  size(500,500); 
}
float x=250,y=250;
void draw(){
  ellipse(x,y,5,5);    
}
移動:


亂數使其移動時沒有規律,在使其遇到邊界時反彈


加入20個點

相近的3點連線
加一個N控制點的數量,再使線條因距離有深淺變化

增加吸引力,距離夠近加一點吸引力,使其變化程度更複雜


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);//dx=random(-1,+1)
    dy[i]=random(-1,+1);
  }
}
int N=50;
float []x=new float[N];//float x=250,y=250;
float []y=new float[N];
float []dx=new float[N];//float da=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<20;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]);
        dx[i]-=(x[k]-x[i])*0.00001;
        dy[i]-=(y[k]-y[i])*0.00001;
    }
    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];
  }
}

新版processing

顏色

沒有留言:

張貼留言