2025年3月13日 星期四

12750263_week04

 week04-1_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_rorateX_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_rorateZ

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); // 移到畫面中心點

  

  // 以下兩行,分別註解,排列組合觀察

  rotateZ(radians(frameCount)); // 對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

// 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

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;
void setup(){
  size(400,400,P3D);
  sun = createShape(SPHERE, 70);
  PImage img = loadImage("sun.jpg");
  sun.setTexture(img);
  
  earth = createShape(SPHERE, 40);
  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();
}



沒有留言:

張貼留言