2025年3月13日 星期四

12751036-徐詩淳_week04

// week04_01_atan2_dy_dx_cos_sin

void setup(){

  size(600, 300);

}

void draw(){

  background(#C0FFEE); // 粉青色

  ellipse(150, 150, 100, 100); // x,y,w,h 

  float dx = mouseX-150, dy = mouseY-150;

  float a = atan2(dy, dx);

  ellipse(150+cos(a)*15, 150+sin(a)*25, 50, 50);

  // ellipse(150+25, 150, 50, 50);

}




// week04_02_atan2_for_x_dx_dy_cos_sin
void setup(){
  size(600, 300);
}
void draw(){
  background(#C0FFEE); // 粉青色
  for(int x = 150; x<=450; x+=300){
  ellipse(x, 150, 100, 100); // big eyes
  float dx = mouseX-x, dy = mouseY-150;
  float a = atan2(dy, dx); // 算出角度
  ellipse(x+cos(a)*15, 150+sin(a)*25, 50, 50);
  // ellipse(150+25, 150, 50, 50); 
  }
}


// week04_03_rotate_radians_mouseY
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  // rotateY(radians(mouseX)); //上周的左右轉
  rotateX(radians(-mouseY)); // 本周的左右轉
  box(200);
}


// week04_04_rotateZ
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  // rotateY(radians(mouseX));
  rotateZ(radians(mouseX)); 
  ellipse(0, 0, 100, 150);
}


// week04_05_robot_arm_pushMatrix_T_R_T_box_Matrix
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  pushMatrix();
    translate(0, 100);
    box(50); // 檯座
    pushMatrix();
      translate(0, -25);
      rotateZ(radians(mouseX));
      translate(0, -50);
      box(10, 100, 10);
    popMatrix();
  popMatrix();
}




// week04_05a_rotateZ_translate_box
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2); //移到畫面中心
  
    // 以下兩行分別註解,排列組合觀察
    rotateZ(radians(frameCount)); // 對Z軸旋轉
    translate(0, -50); // 把下端移到中心
    box(10, 100, 10); // 可轉動的長條
}


// week04_05b_translate_mouseX_mouseY_rotateZ_translate
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  // translate(width/2, height/2); //移到畫面中心
  
    translate(mouseX, mouseY); // 加這行
    rotateZ(radians(frameCount)); // 對Z軸旋轉
    translate(0, -50); // 把下端移到中心
    box(10, 100, 10); // 可轉動的長條
}


// week04_06_push_translate_rotate_sphere_pop
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  pushMatrix();
    translate(mouseX, mouseY);
    rotate(radians(frameCount));
    sphere(100);
  popMatrix();
}


// week04_07_sun_earth
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  sphere(50); //sun
  rotateY(radians(frameCount));
  pushMatrix();
    translate(150, 0);
    rotateY(radians(frameCount));
    sphere(30); //Earth
  popMatrix();
}

// week04_08_sun_earth_moon
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  sphere(50); // sun
  rotateY(radians(frameCount));
  pushMatrix();
    translate(150, 0);
    rotateY(radians(frameCount));
    sphere(30); // Earth
    pushMatrix();
    translate(550, 0);
    rotateY(radians(frameCount));
    sphere(10); // moon
    popMatrix();
  popMatrix();
}




// week04_09_earth_texture_image
// google: earth map texture 下載1張地球的地圖
// 把圖檔拉到程式裡
PImage img = loadImage("earth.jpg");
size(600, 300);
image(img, 0, 0, 600, 300);


// week04_10_earth_createShape_setTexture_shape
// google: processing sphere texture 可找到程式
size(400, 400, P3D);
PShape earth = createShape(SPHERE, 100);
PImage img = loadImage("earth.jpg");
earth.setTexture(img);
shape(earth);


// week04_11_earth_setTexture_rotate
PShape earth ;
void setup(){
  size(400, 400, P3D);
  earth = createShape(SPHERE, 100);
  PImage img = loadImage("earth.jpg");
  earth.setTexture(img);
}
void draw(){
  background(0);
  translate(width/2, height/2);
  rotateY(radians(frameCount));
  shape(earth);
}


// week04_12_moon_setTexture_translate_rotate
PShape moon ;
void setup(){
  size(400, 400, P3D);
  moon = createShape(SPHERE, 100);
  PImage img = loadImage("moon.jpg");
  moon.setTexture(img);
}
void draw(){
  background(0);
  translate(width/2, height/2);
  rotateY(radians(frameCount));
  shape(moon);
}




// week04_13_sun_setTexture_translate_rotate
PShape sun ;
void setup(){
  size(400, 400, P3D);
  sun = createShape(SPHERE, 100);
  PImage img = loadImage("sun.jpg");
  sun.setTexture(img);
}
void draw(){
  background(0);
  translate(width/2, height/2);
  rotateY(radians(frameCount));
  shape(sun);
}


// week04_14_sun_earth_moon_setTexture
PShape sun, earth, moon;
// 樓下是剪貼自 week04_08 樓上是 week04_11,12,13
void setup(){
  size(400, 400, P3D);
  sun = createShape(SPHERE, 50);
  PImage img = loadImage("sun.jpg");
  sun.setTexture(img);
  
  earth = createShape(SPHERE, 30);
  img = loadImage("earth.jpg");
  earth.setTexture(img);
  
  moon = createShape(SPHERE, 10);
  img = loadImage("moon.jpg");
  moon.setTexture(img);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  shape(sun); // sphere(50); // sun
  rotateY(radians(frameCount));
  pushMatrix();
    translate(150, 0);
    rotateY(radians(frameCount));
    shape(earth); // sphere(30); // Earth
    pushMatrix();
    translate(50, 0);
    rotateY(radians(frameCount));
    shape(moon); // sphere(10); // moon
    popMatrix();
  popMatrix();
}

沒有留言:

張貼留言