2025年4月10日 星期四

12750094_李尚鴻_week08

 //week08_1_loadShape_shape

size(400,400,P3D);//(3)要有P3D的OpenGL 3D功能
PShape gundam=loadShape("Gundam.obj");//(1)讀入3D模型  loadshape("檔名")
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_pushscacle_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_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();
}
//week08_4_gundam_body_head
//慢慢把切割開的逐一組合起來
PShape body,head;
void setup()
{
  size(400,400,P3D);
  body = loadShape("body.obj");//拉入body.obj body,mtl Diffuse.jpg AO.jpg
  head = loadShape("head.obj");//頭 head.obj head.mtl
}

void draw()
{
  background(255);
  translate(width/2,height/2+100);
  sphere(10);//基準點
  scale(10,-10,10);
  pushMatrix();
    translate(0,22.5);//3掛回原來的地方
    rotate(radians(x));//2轉動
    //translate(x/10,y/10);//放在x,y的座標
    //println(x/10,y/10);//印出座標,等等要取上面的數
    translate(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;
}

                                        頭可以轉動

沒有留言:

張貼留言