課堂作業1
//week08_1_loadShape_shape size(400,400,P3D); //(3)要有 P3D 的 OpenGL 的 3D 功能 PShape gundam = loadShape("Gundam.obj"); //(1) 進入3D模型 translate(width/2, height/2); //放到畫面正中心 pushMatrix(); //備份矩陣 translate(0,100); //(5) 再往下一點,比較好看 scale(10,-10,10); //(4)把模型放大 shape(10) 上下要再倒過來 shape(gundam, 0, 0); //(2) 畫出3D模型 popMatrix(); //還原矩陣
課堂作業2//week08_2_PShape_gundam_setup_draw_push_scale_shape_pop // 轉動它,要改成互動模式的程式碼 PShape gundam; //要再把 Gundam.obj 等檔案,拉進來 void setup(){ size(400,400,P3D); gundam = loadShape("Gundam.obj"); } void draw(){ background(128); translate(width/2, height/2+100); pushMatrix(); scale(10,-10,10); rotateY(radians(frameCount)); shape(gundam, 0, 0); popMatrix(); pushMatrix(); translate(100, 0, 0); scale(10,-10,10); shape(gundam, 0, 0); popMatrix(); }
課堂作業3//week08_3_another_obj_large_bad_mtl // 轉動它,要改成互動模式的程式碼 PShape gundam; //要再把 Gundam.obj 等檔案,拉進來 void setup(){ size(400,400,P3D); gundam = loadShape("FinalBaseMesh.obj"); } void draw(){ background(128); lights(); translate(width/2, height/2+100); pushMatrix(); scale(10,-10,10); rotateY(radians(frameCount)); shape(gundam, 0, 0); popMatrix(); }課堂作業4//week08_4_gundam_body_head //慢慢把「切割開」的模式,逐一組合起來 //四個檔案拉進來 body.obj body.mtl Diffuse.jpg A0.jpg // 頭的2個檔案 head.obj head.mtl PShape body, head; void setup(){ size(400,400,P3D); body = loadShape("body.obj"); head = loadShape("head.obj"); } void draw(){ background(255); translate(width/2, height/2+100); sphere(10); //基準點 scale(10, -10, 10); pushMatrix(); translate(0.0, 22.5); // (3) 再掛回原來的地方 rotate(radians(x)); //(2) 轉動 //translate(x/10, y/10); //要放在小 x,y 的座標 //println(x/10, y/10); //印出座標,等下要取上面的數 translate(0.0, -22.5); //(1) 我們的頭的中心,有放在旋轉中心 shape(head, 0, 0); popMatrix(); shape(body, 0, 0); } float x=0 ,y=0; void mouseDragged(){ x += mouseX - pmouseX; y -= mouseY - pmouseY; }
沒有留言:
張貼留言