2024年12月9日 星期一

Han 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_02_draw_lines_loadPixels_pixels_updaatePixels










void setup(){
  size(500,500);
  background(255);
}
void draw(){
  //pixels
}
void mouseDragged(){
  if(mouseButton==LEFT){
    line(mouseX,mouseY,pmouseX,pmouseY);
    loadPixels();
    println(pixels[0]);
    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(y<498&&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_ArrayList_PVector_p_pp









PImage img;
void setup(){
  size(500,500);
  img=createImage(500,500,RGB);
}
ArrayList<PVector> p=new ArrayList<PVector>();
void draw(){
  background(img);
  for(PVector pp:p){
    ellipse(pp.x,pp.y,20,20);
    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_myFloodFill_x_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_06_cute_cursor






void setup(){
  size(500,500);
  PImage img=loadImage("cute.png");
  cursor(img);
}
void draw(){
  background(255);
}

week14_07_cute_cursor_kitty_cursor






PImage imgCute,imgKitty;
void setup(){
  size(500,500);
  imgCute=loadImage("cute.png");
  imgKitty=loadImage("kitty.png");
  cursor(imgKitty);
}
void draw(){
  background(#FFFFF2);
  if(frameCount%120==0) cursor(imgCute);
  if(frameCount%120==60) cursor(imgKitty);
}

week14_08_big_cursor_imageMode_image_imageMode
PImage imgBigCute,imgBigKitty,imgCursor;
void setup(){
  size(500,500);
  imgBigCute=loadImage("bigcute.png");
  imgBigKitty=loadImage("kitty.png");
  imgCursor=imgBigKitty;
}
void draw(){
  background(#FFFFF2);
  imageMode(CENTER);
  image(imgCursor,mouseX,mouseY);
  imageMode(CENTER);
  if(frameCount%120==0) cursor(imgBigCute);
  if(frameCount%120==60) cursor(imgBigKitty);
}

沒有留言:

張貼留言