2024年12月9日 星期一

week14

 //week14_01_draw_lines_void_mouseDragged_mouseButton_LEFT_RIGHT

void setup(){

  size(500,500);

}

int x=-1,y=-1;

void draw(){

  if(x!=-1){

    ellipse(x,y,1,1);

    y++;

  }

}

void mouseDragged(){

  if(mouseButton==LEFT)line(mouseX,mouseY,pmouseX,pmouseY);

  if(mouseButton==RIGHT){

    x=mouseX;

    y=mouseY;

  }

}


//week14_01_draw_lines_void_mouseDragged_mouseButton_LEFT_RIGHT
void setup(){
  size(500,500);
}
int x=-1,y=-1;
void draw(){
  if(x!=-1){
    ellipse(x,y,1,1);
    y++;
  }
}
void mouseDragged(){
  if(mouseButton==LEFT)line(mouseX,mouseY,pmouseX,pmouseY);
  if(mouseButton==RIGHT){
    x=mouseX;
    y=mouseY;
  }
}



//week14_02_draw_lines_loadPixels_pixels_updatePixels void setup(){ size(500,500); background(255); } void draw(){ //pixels } void mouseDragged(){ if(mouseButton==LEFT){ line(mouseX,mouseY,pmouseX,pmouseY); loadPixels(); //println(pixels[01]); for(int i=0;i<width*height;i++){ if(pixels[i] !=-1)pixels[i]=color(random(255),random(255),random(255)); } updatePixels(); } }

//week14_02_draw_lines_loadPixels_pixels_updatePixels
void setup(){
  size(500,500);
  background(255);
}
void draw(){
  //pixels
}
void mouseDragged(){
  if(mouseButton==LEFT){
    line(mouseX,mouseY,pmouseX,pmouseY);
    loadPixels();
    //println(pixels[01]);
    for(int i=0;i<width*height;i++){
      if(pixels[i] !=-1)pixels[i]=color(random(255),random(255),random(255));
    }
    updatePixels();
  }
}



//week14_03_draw_lines_rain_PImage_createImage_img_loadPixels_pixels_updatePixels PImage img; void setup(){ size(500,500); img=createImage(500,500,RGB); img.loadPixels(); for(int i=0;i<500*500;i++)img.pixels[i]=color(#FFFFF2); img.updatePixels(); } int x=250,y=0; void draw(){ background(img); ellipse(x,y,20,20); if(img.pixels[x+y*500]==-14) y++; } void mouseDragged(){ line(mouseX,mouseY,pmouseX,pmouseY); loadPixels(); img.loadPixels(); for(int i=0;i<500*500;i++)img.pixels[i]=pixels[i]; img.updatePixels(); updatePixels(); }
//week14_03_draw_lines_rain_PImage_createImage_img_loadPixels_pixels_updatePixels
PImage img;
void setup(){
  size(500,500);
  img=createImage(500,500,RGB);
  img.loadPixels();
  for(int i=0;i<500*500;i++)img.pixels[i]=color(#FFFFF2);
  img.updatePixels();
}
int x=250,y=0;
void draw(){
  background(img);
  ellipse(x,y,20,20);
  if(img.pixels[x+y*500]==-14) y++;
}
void mouseDragged(){
  line(mouseX,mouseY,pmouseX,pmouseY);
  loadPixels();
  img.loadPixels();
  for(int i=0;i<500*500;i++)img.pixels[i]=pixels[i];
  img.updatePixels();
  updatePixels();
}


//week14_04_draw_lines_rain PImage img; void setup(){ size(500,500); img=createImage(500,500,RGB); } //int x=250,y=0; ArrayList<PVector>p=new ArrayList<PVector>(); void draw(){ background(img); for(PVector pp:p){ ellipse(pp.x, pp.y,20,20); //if(y<498 && img.pixels[x+y*500]==-16777216)y++; if(pp.y<498 && img.pixels[int(pp.x)+int(pp.y)*500]==-16777216) pp.y++; } } void mouseDragged(){ background(img); stroke(random(255),random(255),random(255)); line(mouseX,mouseY,pmouseX,pmouseY); loadPixels(); img.loadPixels(); for(int i=0;i<500*500;i++)img.pixels[i]=pixels[i]; img.updatePixels(); updatePixels(); for(PVector pp:p){ ellipse(pp.x, pp.y,20,20); } } void mousePressed(){ if(mouseButton==RIGHT){ p.add(new PVector(mouseX,mouseY)); } }

//week14_04_draw_lines_rain
PImage img;
void setup(){
  size(500,500);
  img=createImage(500,500,RGB);
}
//int x=250,y=0;
ArrayList<PVector>p=new ArrayList<PVector>();
void draw(){
  background(img);
  for(PVector pp:p){
    ellipse(pp.x, pp.y,20,20);
  //if(y<498 && img.pixels[x+y*500]==-16777216)y++;
  if(pp.y<498 && img.pixels[int(pp.x)+int(pp.y)*500]==-16777216) pp.y++;
  }
}

void mouseDragged(){
  background(img);
  stroke(random(255),random(255),random(255));
  line(mouseX,mouseY,pmouseX,pmouseY);
  loadPixels();
  img.loadPixels();
  for(int i=0;i<500*500;i++)img.pixels[i]=pixels[i];
  img.updatePixels();
  updatePixels();
  for(PVector pp:p){
    ellipse(pp.x, pp.y,20,20);
  }
}
void mousePressed(){
  if(mouseButton==RIGHT){
     p.add(new PVector(mouseX,mouseY));
  }
}



//week14_05_draw_lines_my_FloodFill_x_y_c1_c2_pixels_isOK void setup(){ size(500,500); background(#FFFFF2); } void draw(){ if(mousePressed && mouseButton==LEFT)line(mouseX,mouseY,pmouseX,pmouseY); if(mousePressed && mouseButton==RIGHT){ loadPixels(); color c1=pixels[mouseX+mouseY*500]; color c2=color(random(255),random(255),random(255)); if(c1!=c2) myFloodFill(mouseX,mouseY,c1,c2); updatePixels(); } } boolean isOK(int x,int y,color c1){ if(x<0 || y<0 || x>=500 || y>=500) return false; if(pixels[x+y*500]!=c1)return false; return true; } void myFloodFill(int x,int y,color c1,color c2){ pixels[x+y*500]=c2; if(isOK(x+1,y,c1))myFloodFill(x+1,y,c1,c2); if(isOK(x-1,y,c1))myFloodFill(x-1,y,c1,c2); if(isOK(x,y+1,c1))myFloodFill(x,y+1,c1,c2); if(isOK(x,y-1,c1))myFloodFill(x,y-1,c1,c2); }
//week14_05_draw_lines_my_FloodFill_x_y_c1_c2_pixels_isOK
void setup(){
  size(500,500);
  background(#FFFFF2);
}
void draw(){
  if(mousePressed && mouseButton==LEFT)line(mouseX,mouseY,pmouseX,pmouseY);
  if(mousePressed && mouseButton==RIGHT){
    loadPixels();
    color c1=pixels[mouseX+mouseY*500];
    color c2=color(random(255),random(255),random(255));
    if(c1!=c2) myFloodFill(mouseX,mouseY,c1,c2);
    updatePixels();
  }
}
boolean isOK(int x,int y,color c1){
  if(x<0 || y<0 || x>=500 || y>=500) return false;
  if(pixels[x+y*500]!=c1)return false;
  return true;
}
void myFloodFill(int x,int y,color c1,color c2){
  pixels[x+y*500]=c2;
  if(isOK(x+1,y,c1))myFloodFill(x+1,y,c1,c2);
  if(isOK(x-1,y,c1))myFloodFill(x-1,y,c1,c2);
  if(isOK(x,y+1,c1))myFloodFill(x,y+1,c1,c2);
  if(isOK(x,y-1,c1))myFloodFill(x,y-1,c1,c2);
}














沒有留言:

張貼留言