2025年4月10日 星期四

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;
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);
   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
//慢慢把「切割開」的模型,組合起來
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); //3.掛回原來的地方
    rotate(radians(x)); //2.轉動
    //translate(x/10,y/10); 要放在x,y的座標
    //println(x/10,y/10); 印出座標
    translate(0,-22); //1.頭的中心,放在旋轉中心
    shape(head,0,0);
  popMatrix();
  shape(body,0,0);
}
float x=0,y=0;
void mouseDragged(){
   x+=mouseX-pmouseX;
   y-=mouseY-pmouseY;
}


沒有留言:

張貼留言