1、期中考:OpenGL必背10行函式
2、複習:移動、旋轉、縮放
3、主題:T-R-T旋轉(改變旋轉軸)
4、主題:glut
下載"win32"、"data"、"glut32.dll" 三個檔案並解壓縮放入對應資料夾中
右鍵 - Swap translate/rotate ↓
02 解壓縮完成且檔案放置完後,開啟windows/Transformation.exe,
觀察在右邊轉動的車子 v.s. 繞很大圈圈的車子
自轉 v.s. 公轉
glTranslatef(); glRotatef();
glRotatef(); glTranslatef();
下載MinGW的 "Download freeglut 3.0.0 for MinGW"
04 做出一個茶壺,並給他一個甜筒,改變旋轉軸,讓他可以看起來像手手(?)
甜筒T-R-T程式碼:
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0,0.5,0); ///這是往上移動的茶壺
glutSolidTeapot( 0.3 ); ///This is a Teapot
glPopMatrix();
glPushMatrix();
//glutSolidSphere(0.3,30,30);
glPopMatrix();
glPushMatrix();
glTranslatef(0.5,0.625,0); ///(3)把它掛在你要的地方
glRotatef(angle,0,0,1); ///(1)先有個轉動,但怪怪的
glTranslatef(0.6,0,0); ///(2)要更早去移動旋轉中心
glRotatef(-90,0,1,0); ///(0)轉動90度的Cone
glutSolidCone(0.2,0.6,30,30); ///直直的Cone
glPopMatrix();
glutSwapBuffers();
}
void motion(int x,int y)
{
angle = x;
display();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
}
沒有留言:
張貼留言