Week12
step01-1
看課本 Transformation.exe 裡面有: 移動、旋轉 step01-1_下載課本範例, 解壓縮, 執行 Transformation.exe 經由 Swap T R 來看它們的差別
- jsyeh.org/3dcg10 下載 windows.zip data.zip
- 解壓縮 下載\windows\Transformation.exe
- 解壓縮 下載\windows\data\模型
- 跑 Transformation.exe (要頻繁切換 Swap T R)
看起來像是放在右邊有個在轉動的車子
glTranslatef( 0.8, 0.0, 0.0);//在右邊
glRotatef( angle, 0, 1, 0);//轉動
//有一台藍色的車子好像車子在繞著中心點轉彎
glRotatef( angle, 0, 1, 0);
glTranslatef( 0.8, 0.0, ,0.0);
//有一台藍色的車子step01-2
講解差別, 如何理解(用框框來解釋程式碼。越畫越大) step01-2_老師用框框,從小到大,慢慢增加程式碼,方便大家理解程式碼怎麼看、怎麼理解
- 老師將 Transformation.exe 範例執行後, 開始框程式碼
- 最裡面的小框框
step01-3
用老師的程式來理解 step01-3_利用老師的網頁小範例,讓大家看到,程式碼會影響到它下面的整個程式碼
- https://120.125.80.50/GL (有期中考題、有小考考題)
- OpenGL T-R-T函式: 對特定軸轉動練習
- 滑鼠點擊 To Draw 後, 可以在左邊圈出一個形狀
- 滑鼠點擊 angle 後, 再按空白鍵,可以讓 angle 值一直變動
- 滑鼠點擊程式碼的方框後, 可以 drag 改變程式碼的位置
- 滑鼠點擊 glTranslatef()程式的方框後,可在左邊drag改變東西的位置
step02-1
step02-1_利用網頁中的圖,配合第一節課教的畫框框,從小到大,一步步了解T-R-T的操作
step02-2
寫程式來理解
- freeglut要裝好
- File-New-Project, GLUT專案 week12_TRT
- 用簡單的10行程式,配合 T-R-T函式
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor3f(1,1,1);///白色的
glutSolidTeapot( 0.3 );///大茶壼
glPushMatrix();
glTranslatef(0.3, 0, 0);///把下面旋轉中的東西 "掛在" 某處
glRotatef( angle, 0,0,1 );///旋轉
glTranslatef(0.2, 0, 0);///往右下移動(把把手移到中心)
glColor3f(1,0,0);///紅色的
glutSolidTeapot( 0.2 );///茶壼
glPopMatrix();
glutSwapBuffers();
angle+=0.1;
}step03-1
step03-1_與作業T-R-T相關的程式, 改寫成 TRT TRT 專案,看到很關節的轉動
- File-New-Project, GLUT專案 week12_TRT_TRT
- 把剛剛的程式拿來, 再變複雜
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor3f(1,1,1);///白色的
glutSolidTeapot( 0.3 );///大茶壼
glPushMatrix();
glTranslatef(0.3, 0, 0);///把下面旋轉中的東西 "掛在" 某處
glRotatef( angle, 0,0,1 );///旋轉
glTranslatef(0.2, 0, 0);///往右下移動(把把手移到中心)
glColor3f(1,0,0);///紅色的
glutSolidTeapot( 0.2 );///茶壼
glPushMatrix();
glTranslatef(0.2, 0, 0);///把下面旋轉中的東西 "掛在" 某處
glRotatef( angle, 0,0,1 );///旋轉
glTranslatef(0.2, 0, 0);///往右下移動(把把手移到中心)
glColor3f(1,0,0);///紅色的
glutSolidTeapot( 0.2 );///茶壼
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle+=0.03;
}
沒有留言:
張貼留言