2024年9月30日 星期一

week04 颱風來了快跑

 //week04_1__PShape_loadShape_shape

size(500, 500);

PShape taiwan = loadShape("taiwan.svg"); //本周

PShape taiwan2 = loadShape("Taiwan-icon.svg");

shape(taiwan);

shape(taiwan2);




//week04_2__pushMatrix_scale_popMatrix
size(500, 500);
PShape taiwan2 = loadShape("taiwan.svg"); //本周
PShape taiwan = loadShape("Taiwan-icon.svg");
pushMatrix();
  scale(10);
  shape(taiwan);
popMatrix();
pushMatrix();
   scale(0.5);
   shape(taiwan2);
popMatrix();





//week04_3__void_setup_void_draw_void_wheelMouse
PShape taiwan2, taiwan; //宣告變數
void setup() {
  size(500, 500);
  taiwan2 = loadShape("taiwan.svg"); //本周
  taiwan = loadShape("Taiwan-icon.svg");
}
float taiwanScale = 1;
void draw() {
  background(#92CF25);
  pushMatrix();
    scale(10*taiwanScale);
   shape(taiwan);
  popMatrix();
  pushMatrix();
     scale(0.5*taiwanScale);
  shape(taiwan2);
  popMatrix();
}
void mouseWheel(MouseEvent e) {//mouseWheel 是mouse的滾輪
  float d = e.getCount();
  if (d>0) taiwanScale *=1.1;
  else taiwanScale *=0.9;
}






//week04_4_world_svg_flaot_s_scale_void_mouseWheel
PShape world;
void setup() {
  size(800, 400);
  world = loadShape("world.svg");
}
float s = 0.4;
void draw() {
  background(#92C2F5);
  scale(s);// 改用變數s 初始值為0.4
  shape(world);
}
void mouseWheel(MouseEvent e) {
  if (e.getCount()>0) s *= 1.1;
  else s *=0.9;
}







//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(#92C2F5);
  translate(x, y);
  scale(s);// 改用變數s 初始值為0.4
  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_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(#92C2F5);
  translate(x, y);
  scale(s);// 改用變數s 初始值為0.4
  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_carrot01_background_stroke_fill_ellipse
size(600,500);
background(0);
stroke(255);
fill(0);
ellipse(50,50,100,100);




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



// week04_9_carrot03_float_s_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;
}









//week_04_a_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;
}















沒有留言:

張貼留言