2024年12月9日 星期一

再晚睡我是狗

 //week14_01_draw_line_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()

{

  loadPixels();

  for(int i=0;i<width*height;i++)

  {

      if(pixels[i] != -1)pixels[i] = color(random(255),random(255),random(255));

    }

    updatePixels();

}

void mouseDragged()

{

  if(mouseButton==LEFT)

  {

    line(mouseX,mouseY,pmouseX,pmouseY);

  }

}

//week14_03_draw_lines_rain_PImage_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()

{

  background(img);

  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);

}

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(pp.y<498 && img.pixels[int(pp.x)+int(pp.y)*500]==-16777216)pp.y++;

  }

}

void mouseDragged()

{

  background(img);

  line(mouseX,mouseY,pmouseX,pmouseY);

  stroke(random(255),random(255),random(255));

  loadPixels();

  img.loadPixels();

  for(int i=0; i<500*500; i++)img.pixels[i]=pixels[i];

  img.updatePixels();

  updatePixels();

  for(PVector pp:p)

  {

    ellipse(x,y,20,20);

  }

}

void mousePressed()

{

  if(mouseButton == RIGHT)

  {

    p.add(new PVector(mouseX,mouseY));

  }

}

//week14_05_draw_lines_myFlooFill_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) myFlooFill(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 myFlooFill(int x,int y,color c1,color c2)

{

  pixels[x+y*500]=c2;

  if(isOK(x+1,y,c1)) myFlooFill(x+1,y,c1,c2);

  if(isOK(x-1,y,c1)) myFlooFill(x-1,y,c1,c2);

  if(isOK(x,y+1,c1)) myFlooFill(x,y+1,c1,c2);

  if(isOK(x,y-1,c1)) myFlooFill(x,y-1,c1,c2);

}

//week14_06_cute_cursor

void setup()

{

  size(500,500);

  PImage img = loadImage("kitty.png");

  cursor(img);

}

void draw()

{

  background(#FFFFF2);

}


//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("cute.png");

  imgBigKitty = loadImage("kitty.png");

  imgCursor = imgBigKitty;

}

void draw()

{

  background(#FFFFF2);

  imageMode(CENTER);

  image(imgCursor,mouseX,mouseY);

  imageMode(CENTER);

  if(frameCount%120==0)imgCursor = imgBigCute;

  if(frameCount%120==60)imgCursor = imgBigKitty;

}





沒有留言:

張貼留言