2023年9月28日 星期四

部落格Week03


第一堂課

  • 輸入程式碼叫出一個點

  • 修改程式碼讓點畫出一條線



void setup(){
 size(500,500); 
}
float x=250,y=250;
float dx=1,dy=1;
void draw(){
  ellipse(x,y,5,5);
  x+=dx;
  y+=dy;
}


  •  修改程式碼讓點碰到邊界會反彈


void setup(){
 size(500,500); 
 dx=random(-1,+1);
 dy=random(-1,+1);
}
float x=250,y=250;
float dx=1,dy=1;
void draw(){
  background(0);
  ellipse(x,y,5,5);
  x+=dx;
  y+=dy;
  if(x<0||x>500)dx=-dx;
  if(y<0||y>500)dy=-dy;
}

  • 創建新檔案輸入程式碼產生一堆亂動的點 


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];
}
}

  • 創建新檔案輸入程式碼讓線會彼此連起來且變紅色 


第二堂課


  •  新增檔案輸入程式碼讓線有虛實變化


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[]y=new float[N];
 float[]dx=new float[N];
 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]);
  }
  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];
}
}
  • 新增檔案輸入程式碼製作出吸力

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[]y=new float[N];
 float[]dx=new float[N];
 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.00003;
    dy[i]+=(y[k]-y[i])*0.00003;
  }
  }
  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];
}
}


第三堂課


  • 新增檔案輸入程式碼叫出有顏色的背景

  •  修改程式碼改成HSB模式

  • 修改程式碼讓背景顏色會一直變化

void setup(){
  size(500,500);
  colorMode(HSB,360,100,100);
}
void draw(){
  background(frameCount%360,83,95);
}
  • 新增檔案輸入程式碼叫出彩虹
 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);
    }
  }
  • 新增檔案輸入程式碼叫出隨機顏色的球

  • 修改程式碼讓滑鼠點擊可以改變顏色

  • 修改程式碼讓有一個圓形的顏色不一樣




沒有留言:

張貼留言