// 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();
}
沒有留言:
張貼留言