2025年4月10日 星期四

week08_12750156_黃映綺

 課堂作業01

//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(); //還原矩陣

課堂作業02

//week08_2_PShape_gundam_setup_draw_push_scale_shape_pop

//轉動它,要改成互動模式的程式風格

PShape gundam; //要再把 Gundam.obj等檔案,拉進來
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();
}

課堂作業03

//week08_3_another_obj_large_bad_mtl

PShape gundam; //要再把 Gundam.obj等檔案,拉進來
void setup(){
  size(400,400,P3D);
  gundam = loadShape("FinalBaseMesh.obj");
}
void draw(){
  background(128);
  translate(width/2, height/2+100);
  lights();
  pushMatrix();
    scale(10,-10,10);
    rotateY(radians(frameCount));
    shape(gundam,0,0);
  popMatrix();
}

課堂作業04

//week08_4_gundam_body_head

//慢慢把「切割開」的模型,逐一組合起來
//四個檔案拉進來 body.obj body.mtl Diffuse.jpg AO.jpg

PShape  body ,head;
//頭的兩個檔案 head.obj head.mtl
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);//(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;
}


沒有留言:

張貼留言