2023年9月28日 星期四

互動技術概論week03

本周目標


從點開始

加入點的移動
加入背景,亂數

  dx = random(-1,+1); //亂數往哪跑

  dy = random(-1,+1); //亂數往哪跑


加入界線

點碰到邊線後彈回

  if(x<0 || x>500) dx = -dx;

  if(y<0 || y>500) dy = -dy;


加入for迴圈(點的個數)


把點連起來






讓線有漸層感,設變數N改變點的數量

加吸引力



    if(d<100){ //距離夠近的話

      line(x[i],y[i],x[k],y[k]);

      dx[i] += (x[k]-x[i])*0.0001;//加一點吸引力

      dy[i] += (y[k]-y[i])*0.0001;//加一點吸引力

    }

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);//dy = 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 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]);

      dx[i] += (x[k]-x[i])*0.0001;

      dy[i] += (y[k]-y[i])*0.0001;

    }

  }

  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-2

挑顏色


變色


 background(frameCount%360,83,95);

week03-3
彩虹
size(400,400);
colorMode(HSB,400);
for(int i=0;i<400;i++){
  for(int j=0;j<400;j++){
    stroke(i,400,400);
    point(i,j);
  }
}

week03-4


按滑鼠變色

讓其中一顆顏色不同
void setup(){
  size(300,300);
  colorMode(HSB,360,100,100);
  chooseColor();
}
void mousePressed(){
  chooseColor();  
}
int I,J;
float h,s,b,dh,ds,db;
void chooseColor(){
  h = random(360);
  s = random(50,100); 
  b = random(50,100); 
  I = int(random(5));
  J = int(random(5));
  dh = random(-10,+10);
  ds = random(-10,+10); 
  db = random(-10,+10);
}
void draw(){
  background(203,63,65);  
  for(int i=0;i<5;i++){
    for(int j=0;j<5;j++){
      if(i==I && j==J)fill(h+dh,s+ds,b+db);
      else fill(h,s,b);
      ellipse(30+j*60,30+i*60,60,60); 
    }
  }
}





沒有留言:

張貼留言