Week14
Timer
新增一個GLUT專案,名稱更為week14-1_Timer
打上程式碼
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle, 0, 0, 1);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void timer(int t)
{
glutTimerFunc(500, timer, t+1);
angle += 90;
glutPostRedisplay();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week14");
glutDisplayFunc(display);
glutTimerFunc(200, timer, 0);
glutMainLoop();
}
執行後發現茶壺會一直照著時間旋轉且每次增加90度
新增一個GLUT專案,名稱更為week14-2_Timer_play
用week14-1的程式碼 加上鍵盤的函式
執行後按下鍵盤空白鍵 茶壺就會開始旋轉
內插
打開Excel打上表格 ( 等等程式會用到 )
新增一個GLUT專案,名稱更為week14-3_alpha_interpolation
用week14-2的程式碼 加上滑鼠和motion函式
執行後按下滑鼠可移動茶壺角度 放開則停止 按下空白鍵可播放動畫
切換關節
打開上週的Final_project 把show陣列0改成1 ( 全部顯示 )
把上週的陣列改成ID 從按數字鍵出現變全部顯示
沒有按的設定成白色
把show陣列改成只有上手臂顯示出來
從小黑裡複製下來貼進程式碼裡面 ( TRT )
用一個矩陣在剛剛上手臂的矩陣當中放下手臂
記得在移動尋找關節點的時候要把上手臂的旋轉註解掉 不然會很難移動
執行後後兩個手臂就都可以自由轉動了











沒有留言:
張貼留言