// 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(); }
2024電腦圖學 Computer Graphics 人智二甲 授課教師: 葉正聖 銘傳大學人工智慧應用學系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2025年3月13日 星期四
12753062 week04
訂閱:
張貼留言 (Atom)

















沒有留言:
張貼留言