2025年4月10日 星期四

week08

作業1:loadShape_shape_

今天想要讀入一個模型,把下載的模型拉到程式裡面,用loadShape()讀入剛剛的3D模型,

讀入後太小了且上下顛倒,所以用scale()把模型放大和倒過來,translate()往下移比較好看,一定要有P3D才可以執行。



作業2:PShape_gundam_steup_draw_push_scale_shape_pop

想要讓他可以互動,畫兩個鋼彈,先寫一個對Y軸旋轉的鋼彈,一個不動



作業3:another_obj_large_bad_mtl

準備一個還沒貼圖的模型,複製剛剛鋼彈的程式碼,出現一個在旋轉的人,因為貼圖面比較多,所以人會是黑色的



作業4:

想要把它拆解後可以,先加入身體,要記得把.mtl檔加進去,接下來加入頭,我們想要認頭可以移動,所以讓他有一個中心,將頭的脖子部分加到中心上,再放回去,就可以擺頭

//week08-4_

//慢慢把切割開的模型逐一組合起來

PShape body;

PShape hand;

void setup(){

size(400,400,P3D);

//四個檔案body.obj body.mtl Diffuse.jpg AO.jpg

body=loadShape("body.obj");

hand=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);//要放在x,y座標上

  //println(x/10,y/10);//印出座標,取上面的值

  translate(0.0,-22.5); //頭的中心,有效在旋轉中心

  shape(hand,0,0);

  popMatrix();

  shape(body,0,0);

}

float x=0,y=0;

void mouseDragged(){

  x+=mouseX-pmouseX;

  y-=mouseY-pmouseY;

}





沒有留言:

張貼留言