2025年4月10日 星期四

12750840_week08

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;
}



沒有留言:

張貼留言