2022年5月9日 星期一

week12黃昱瑋的筆記🚘🎡

 1-1.https://jsyeh.org/3dcg10/ 下載window.zip data.zip

1-2.解壓縮下載的zip檔

1-3.跑transformation.exe 要頻繁切換(swap T R) 

如果沒有切換的話會發現車子在中心不會跟著移動


切換後會發現車子好像在繞著軸心跑?


為什麼會這樣呢?

1-4解析程式碼
可以發現此程式是有前後順序關係的,
上面那張圖是將轉動的車子做移動,下面是對移動的後的車子做轉動


2-1.去https://120.125.80.50/GL/
2-2點選對特定軸轉動
先在黑色的地方畫一個圖形
點選右上角的 angel按空白鍵會自動增加
然後按住myDrawObject(0);拖曳到glRoatef(angel,0,0,1);下方會讓此圖對(0,0)轉動


2-3如何移動圖片
先畫一個圖案
將myDrawObject(0);移動到glTraslatef(0,0,0);下方
點選glTraslate(0,0,0);
移動創造的圖片

2-4轉動手臂
先畫身體和手臂
將myDrawObject(1);移動到第二個glTraslatef(0,0,0);下面
按下glTraslatef(0,0,0);將手臂移到肚臍正中心
按下第一個glTraslatef(0,0,0);將手臂移回去肩膀
按下右上角angle按空白鍵
angle會自己增加
手臂會轉動


解析程式碼

3.程式碼練習
3-1開新的專案
freeglut要裝好
開一個新的專案
week12_TRT
3-2
創造茶壺將茶壺把手放到正中心
重要程式碼:
glTranslatef(0.4,-0.07,0);



3-3轉動茶壺
加上兩行程式碼
加上變數angle
glRotatef(angle,0,0,1);
angle+=0.1;
glutIdleFunc(display);

3-4.與作業相關的程式
New新專案
week12_TRT_TRT
複製剛的程式碼過去
改裡面的display

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(1,1,1);
    glutSolidTeapot(0.3);//大茶壺
    glPushMatrix();
        glTranslatef(0,0,0);//把下面旋轉的東西掛到某處
        glRotatef(angle,0,0,1);//旋轉
        glTranslatef(0,0,0);//把把手移到某處
        glColor3f(1,0,0);
        glutSolidTeapot(0.2);//小茶壺
    glPopMatrix();
    glutSwapBuffers();
    angle+=1;
}


改兩行程式碼
glTranslatef(0.3,0,0);
glTranslatef(0.2,0,0);



3-5.再加一個茶壺

複製小茶壺到PopMastrix();前面





沒有留言:

張貼留言