week08
week08_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(); //還原矩陣
week08_2
//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(); }
week08_3
//week08_3_another_obj_large_bad_mtl
PShape gundam;
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();
}
week08_4//week08_4_gundam_body_head //慢慢把切開的模型,逐一組合起來 //body.obj body.mtl Diffuse.jpg A0.jpg //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, +22.5);//掛回原本的地方 rotate(radians(x));//轉動 //translate(x/10, y/10);//要放在小x,y的座標 //println(x/10, y/10);//印出座標,等一下要取上面的數 translate(0, -22.5);//我們頭的中心,有放在旋轉中心 shape(head, 0, 0); popMatrix(); shape(body, 0, 0); } float x = 0, y = 0; void mouseDragged(){ x += mouseX - pmouseX; y -= mouseY - pmouseY; }




沒有留言:
張貼留言