WEEK04-1
1.記得下載.svg檔
程式碼
//week04_1_PShape_loadShape_shape
size(500,500);
PShape taiwan = loadShape("Taiwan-icon.svg");
PShape taiwan2 = loadShape("tw.svg");
shape(taiwan);
shape(taiwan2);
WEEK04-2
1.複習pushMatrix、popMatrix
程式碼
//week04_2_pushMatrix_scale_popMatrix
size(500,500);
PShape taiwan = loadShape("Taiwan-icon.svg");
PShape taiwan2 = loadShape("tw.svg");
pushMatrix();
scale(10);
shape(taiwan);
popMatrix();
pushMatrix();
scale(0.5);
shape(taiwan2);
popMatrix();
WEEK04-3
1.滑鼠滾輪縮放
程式碼
//week04_3_void_setup_void_draw_void_mouseWheel
PShape taiwan,taiwan2;
void setup(){
size(500,500);
taiwan = loadShape("Taiwan-icon.svg");
taiwan2 = loadShape("tw.svg");
}
float taiwanScale = 1;
void draw(){
background(#92C2F5);
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;
}
WEEK04-4
1.可以縮放,但只針對左上角
2.下個程式碼改進
程式碼
//week04_4_world_svg_scale_void_mouseWheel
PShape world;
void setup(){
size(800,400);
world = loadShape("world.svg");
}
float s = 0.4;
void draw(){
background(#92C2F5);
scale(s);
shape(world);
}
void mouseWheel(MouseEvent e){
if(e.getCount()>0) s *= 1.1;
else s*=0.9;
}
WEEK04-5
1.可以縮放,和拖曳,但每次縮放中心點還是固定左上做縮放
2.下個程式碼改進
程式碼
//week04_5_world_svg_translate_x_y
PShape world;
void setup(){
size(800,400);
world = loadShape("world.svg");
}
float s = 0.4,x = 0,y = 0;
void draw(){
background(#92C2F5);
translate(x,y);
scale(s);
shape(world);
}
void mouseDragged(){
x +=mouseX - pmouseX;
y +=mouseY - pmouseY;
}
void mouseWheel(MouseEvent e){
if(e.getCount()>0) s *= 1.1;
else s*=0.9;
}
WEEK04-6
1.可以縮放,和拖曳,滑鼠固定縮放中心點
程式碼
//week04_6
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(#92C2F5);
translate(x,y);
scale(s);
shape(world);
ellipse(realX,realY,10,10);
}
void mouseDragged(){
x +=mouseX - pmouseX;
y +=mouseY - pmouseY;
}
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;
}
WEEK04-7
1.
程式碼
//week04_7_carrot01_background_stroke_fill_ellipse
size(600,500);
background(0);
stroke(255);
fill(0);
ellipse(50,50,100,100);
WEEK04-8
1.
程式碼
//week04_8_carrot02_void_setup_void_draw_void_mouseDragged
void setup(){
size(600,500);
background(0);
stroke(255);
fill(0);
}
void draw(){
}
void mousePressed(){
ellipse(mouseX,mouseY,100,100);
}
WEEK04-9
1.
程式碼
//week04_9_carrot03_float_s_mouseButton_L_R
void setup(){
size(600,500);
background(0);
stroke(255);
fill(0);
}
void draw(){
}
float s = 25;
void mousePressed(){
ellipse(mouseX,mouseY,s,s);
if(mouseButton==LEFT) s *= 1.1;
if(mouseButton==RIGHT) s *= 0.9;
}
WEEK04-10
1.
程式碼
//week04_a_carrot04_float_cos_t_sin_t
void setup(){
size(600,500);
background(0);
stroke(255);
fill(0);
}
void draw(){
}
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;
}











沒有留言:
張貼留言