2025年4月10日 星期四

12750343_黃立翔_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_bad_mtl

PShape gundam;

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, +22.5);

    rotate(radians(x));

    //translate(x/10,y/10);

    //println(x/10,y/10);

    translate(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;

}




沒有留言:

張貼留言