2025年4月10日 星期四

12750272_陳昱瑄,week08

 //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-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-another-obj-large
PShape gundam;//要再把Gundam.obj等檔案 拉進來
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-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);
    rotate(radians(x));
    //translate(x/10,y/10);
    //println(x/10,y/10);
    translate(0.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;
}














沒有留言:

張貼留言