2025年3月13日 星期四

12753062 week04

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



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



// week04_03_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_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_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(frameCount));
      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_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_06_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_07_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_08_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_09_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_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_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
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); //shape(50);//太陽
  rotateY(radians(frameCount));
  pushMatrix();
    translate(150,0);
    rotateY(radians(frameCount));
    shape(earth); //shape(30);//地球
    pushMatrix();
      translate(50,0);
      rotateY(radians(frameCount));
      shape(moon); //shape(10);//月球
    popMatrix();
  popMatrix();
}









沒有留言:

張貼留言