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);
}
















沒有留言:
張貼留言