2025年4月10日 星期四

12750211-week8

 1.//week08-1_loadShape_shape

size(400,400,P3D);//P3D OpenGL功能
PShape gundam=loadShape("Gundam.obj"); //1.讀入3D模型
translate(width/2,height/2);//畫面中心
pushMatrix();
  translate(0,100);
  scale(10,-10,10);//4.把模型放大shape(10) 上下要倒過來(-10)
  shape(gundam,0,0);//2.畫出3D模型
popMatrix();

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

3.//week08-3_another_obj
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();

}

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.5);//放回原本的地方
    rotate(radians(x));//轉動
    //translate(x/10,y/10);
    //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;
}

沒有留言:

張貼留言