2024年9月30日 星期一

week04

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;

}







沒有留言:

張貼留言