[TODO]
上課內容:
Taiwan-icon.svg(讀入svg)
// week04_1_PShape_loadShape_shape // google: taiwan-icon.svg 下載 svg 檔(檔案總管-檢視-副檔名) //PImage img = loadImage("image.jpg"); //上週教的 //image(img, 0, 0); // week03_1_PImage_loadImage_image size(500,500); // 本周要教的 PShape loadShape shape PShape taiwan = loadShape("Taiwan-icon.svg"); PShape taiwan2 = loadShape("tw.svg"); shape(taiwan); shape(taiwan2);
Taiwan-icon.svg(調整大小)
// week04_2_pushMatrix_scale_popMatrix size(500,500); PShape taiwan = loadShape("Taiwan-icon.svg"); PShape taiwan2 = loadShape("tw.svg"); //第二張svg圖檔 pushMatrix(); scale(10); shape(taiwan); popMatrix(); pushMatrix(); scale(0.5); shape(taiwan2); popMatrix();
Taiwan-icon.svg(放大縮小)
// week04_3_void_setup_void_draw_void_mouseWheel PShape taiwan,taiwan2; //宣告變數 void setup(){ size(500,500); taiwan = loadShape("Taiwan-icon.svg"); //讀入 svg taiwan2 = loadShape("tw.svg"); //第二張svg圖檔 } float taiwanScale = 1; void draw(){ background(#90C8FF); pushMatrix(); scale(10*taiwanScale); shape(taiwan); popMatrix(); pushMatrix(); scale(0.5*taiwanScale); shape(taiwan2); popMatrix(); } void mouseWheel(MouseEvent e){ float d = e.getCount(); if(d>0) taiwanScale *= 1.1; else taiwanScale *= 0.9; }
world.svg(換圖)
// week04_4_world_svg_float_s_scale_s_void_mouseWheel_s PShape world; void setup(){ size(800,400); world = loadShape("world.svg"); } float s = 0.4; void draw(){ background(#90C8FF); scale(s); //改用變數 s 初始值是 0.4 shape(world); } void mouseWheel(MouseEvent e){ if(e.getCount()>0) s*=1.1; else s*=0.9; }
world.svg(拖曳)
// week04_5_float_x_y_translate_x_y_void_mouseDragged PShape world; void setup(){ size(800,400); world = loadShape("world.svg"); } float s=0.4, x=0, y=0; void draw(){ background(#90C8FF); translate(x,y); //要再加上一個移動量 x,y scale(s); //改用變數 s 初始值是 0.4 shape(world); } void mouseDragged(){ //void mouseDragged() x += mouseX - pmouseX; y += mouseY - pmouseY; } void mouseWheel(MouseEvent e){//void mouseWheel(MouseEvent e) if(e.getCount()>0) s*=1.1; else s*=0.9; }
world.svg(定中心位置)// week04_6_better_scale PShape world; void setup(){ size(800,400); world = loadShape("world.svg"); } float s=0.4, x=0, y=0; float realX=0, realY=0; void draw(){ background(#90C8FF); translate(x,y); //要再加上一個移動量 x,y scale(s); //改用變數 s 初始值是 0.4 shape(world); ellipse(realX, realY, 10, 10); } void mouseDragged(){ //void mouseDragged() x += mouseX - pmouseX; y += mouseY - pmouseY; } void mouseWheel(MouseEvent e){//void mouseWheel(MouseEvent e) realX = (mouseX - x)/s; //地圖上,真的座標 realY = (mouseY - y)/s; //地圖上,真的座標 float oldS = s; if(e.getCount()>0) s*=1.1; else s*=0.9; x = x+realX*oldS - realX*s; y = y+realY*oldS - realY*s; }
world.svg(定中心位置,圓圈比例)// week04_6_better_scale PShape world; void setup(){ size(800,400); world = loadShape("world.svg"); } float s=0.4, x=0, y=0; float realX=0, realY=0; void draw(){ background(#90C8FF); translate(x,y); //要再加上一個移動量 x,y scale(s); //改用變數 s 初始值是 0.4 shape(world); ellipse(realX, realY, 10/s, 10/s); //除s,讓圓圈比例不變 } void mouseDragged(){ //void mouseDragged() x += mouseX - pmouseX; y += mouseY - pmouseY; } void mouseWheel(MouseEvent e){//void mouseWheel(MouseEvent e) realX = (mouseX - x)/s; //地圖上,真的座標 realY = (mouseY - y)/s; //地圖上,真的座標 float oldS = s; if(e.getCount()>0) s*=1.1; else s*=0.9; x = x+realX*oldS - realX*s; y = y+realY*oldS - realY*s; }
carrot01
// week04_7_carrot01_background_stroke_fill_ellipse size(600,500); background(0); stroke(255); fill(0); ellipse(50,50,100,100);
carrot02(多個大小一樣的圓)// week04_8_carrot02_void_setup_void_draw_mouseDragged void setup(){ size(600,500); background(0); //黑畫1次 stroke(255); fill(0); } void draw(){ //ellipse(mouseX,mouseY,100,100); } void mousePressed(){ ellipse(mouseX,mouseY,100,100); }carrot03(手動,左右鍵控制大小)
// week04_9_carrot03_float_mouseButton_LEFT_RIGHT void setup(){ size(600,500); background(0); //黑畫1次 stroke(255); fill(0); } void draw(){ //ellipse(mouseX,mouseY,100,100); } float s=25; void mousePressed(){ ellipse(mouseX,mouseY,s,s); if(mouseButton==LEFT) s*=1.1; //滑鼠左鍵 if(mouseButton==RIGHT) s*=0.9; //滑鼠右鍵 }carrot04(半自動)
// week04_10_carrot04_float_t_cos_t_sin_t void setup(){ size(600,500); background(0); //黑畫1次 stroke(255); fill(0); } void draw(){ //ellipse(mouseX,mouseY,100,100); } float s=25, t=0; void mousePressed(){ ellipse(300+200*cos(t), 250+200*sin(t),s,s); t += 0.06; if(mouseButton==LEFT) s*=1.1; //滑鼠左鍵 if(mouseButton==RIGHT) s*=0.9; //滑鼠右鍵 }
沒有留言:
張貼留言