程式碼由下往上看(大範圍到小範圍)
//week08-1-loadShape-shape size(400,400,P3D);//一定要有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();//還原
//week08-2-PShape-gundam-setup-draw-push-scale-shape-pop //轉動他,要改成互動模式的程式風格 PShape gundam; 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(); }必須要有obj以及mtl檔才能顯現
//week08-3-another-obj-large-bad-mtl PShape gundam; void setup(){ size(400,400,P3D); gundam = loadShape("FinalBaseMesh.obj"); } void draw(){ background(128); translate(width/2,height/2+100); pushMatrix(); scale(10,-10,10); rotateY(radians(frameCount)); shape(gundam,0,0); popMatrix(); }combination the robert
//week08-4-gundam-body-head //慢慢把(切割開)的模式,逐一組合出來 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; }






沒有留言:
張貼留言