## 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_ppPImage 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_isOKvoid 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_cursorvoid setup() { size(500, 500); PImage img = loadImage("kitty.png"); cursor(img); } void draw() { background(#FFFFF2); }
## week14_07_cute_cursor_kitty_cursorPImage 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_imageModePImage 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!!
沒有留言:
張貼留言