2024年12月9日 星期一

Emily 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++;//往下滴(x,y)座標中,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) { //在左鍵dragged拖曳時
    line(mouseX, mouseY, pmouseX, pmouseY);//本來的線,是灰黑色,不是白色
    loadPixels();//取出畫面的像素
    //println(pixels[0]);//白色是-1
    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_ing_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() {
  background(img);
  line(mouseX, mouseY, pmouseX, pmouseY);
  loadPixels();
  img.loadPixels();
  for (int i=0; i<500*500; i++) img.pixels[i]=pixels[i]; //把畫面的色彩搬到img裡面
  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);
  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裡面
  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_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_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("bigcute.png");
  imgBigKitty = loadImage("bigkitty.png");
  imgCursor = imgBigKitty;
}
void draw() {
  background(#FFFFF2);
  imageMode(CENTER);
  image(imgCursor, mouseX, mouseY);
  imageMode(CORNER);
  if (frameCount%120==0) imgCursor = imgBigCute;
  if (frameCount%120==0) imgCursor = imgBigKitty;
}

## 上傳github!!



沒有留言:

張貼留言