2025年3月19日 星期三

12750892-黃聖諺 week04

 //week04_01_atan_atan2_dy_dx_cos_sin
void setup(){
  size(600, 300);  
}
void draw(){
  background(#C0FFEE); //粉青咖啡色
  ellipse(150, 150, 100, 100); //大眼睛
  //ellipse(150+25, 150, 50, 50);
  float dx = mouseX-150,dy = mouseY-150; // 
  float a = atan2(dy, dx); // 算出角度
  ellipse(150+cos(a)*25, 150+sin(a)*25, 50, 50);
}

//week04_2_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); //大眼睛
    float dx = mouseX-x,dy = mouseY-150; // 
    float a = atan2(dy, dx); // 算出角度
    ellipse(x+cos(a)*25, 150+sin(a)*25, 50, 50);
  }
}


//week04_3_rotateX_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_4_rotateZ
void setup(){
  size(400,400,P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  rotateZ( radians(-mouseX) ); //本週的上下轉
  ellipse(0, 0, 100, 150);
}

//week04_5_robot_arm_pushMatrix_T_R_T_box_popMatrix
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_5a_rotateZ_translate_box
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);

      // 以下2行,分別註解,排列組合觀察
      rotateZ(radians(mouseX)); //對Z軸旋轉
      translate(0, -50); //把下端,移動到中心
      box(10, 100, 10);
}


//week04_5b_translate_mouseX_mouseY_rotateZ_translate_box
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_6_push_translate_rotate_sphere_pop
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  pushMatrix();
  translate(mouseX, mouseY);
    rotateY(radians(frameCount));
    sphere(100);
  popMatrix();
}

//week04_7_sun_earth
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  sphere(50);//太陽
  rotateY(radians(frameCount));
  pushMatrix();
    translate(150, 0);
    rotateY(radians(frameCount));
    sphere(30); //地球
  popMatrix();
}

//week04_8_sun_earth_moon
void setup(){
  size(400, 400, P3D);
}
void draw(){
  background(128);
  translate(width/2, height/2);
  sphere(50);//太陽
  rotateY(radians(frameCount));
  pushMatrix();
    translate(150, 0);
    rotateY(radians(frameCount));
    sphere(30); //地球
    pushMatrix();
      translate(50, 0);
      rotateY(radians(frameCount));
      sphere(10); //月球
    popMatrix();
  popMatrix();
}

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

//week04_10_earth_createShape_setTexture_shape
size(400, 400, P3D);
PShape earth = createShape(SPHERE, 100);
PImage img = loadImage("earth.jpg");
earth.setTexture(img);
shape(earth);

//week04_11__earth_setTexture_translate_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
//樓下是剪貼自 week04_8,樓上是 week04_11、12、13
PShape sun, earth, moon;
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);//太陽
  rotateY(radians(frameCount));
  pushMatrix();
    translate(150, 0);
    rotateY(radians(frameCount));
    shape(earth);//sphere(30);//地球
    pushMatrix();
      translate(50, 0);
      rotateY(radians(frameCount));
      shape(moon);//sphere(10);//月球
    popMatrix();
  popMatrix();
}

//week04_15 github 上傳
































沒有留言:

張貼留言