主題: T-R-T旋轉(改變旋轉軸)
開啟範例:Transformation
2.下載data,win32,glut32.dll (3個檔案)
3.把window解壓縮
4.data的資料夾移至window
5.glut32.dll也移至window
6.把Transformation.exe打開 (右上滑鼠右鍵切換圖形/ 鍵盤R回預設值/鍵盤S切換順序)
註: glRotatef(角度,X軸,Y軸,Z軸)(軸為正負方向:右手~)
註: glTranslatef() glRotatef()
glRotatef() V.S. glTranslatef()
在某個位置旋轉 (自轉) 先旋轉方向在移動(畫大圈圈/公轉)
GLUT專案 : T-R-T
7.開啟glut專案(檔案位置記得存!!!!!!!!)
8.搜尋freeglut window下載Download freeglut 3.0.0 for MinGW
9.複製檔案位置
10.複製libfreeglut.a--->改成libglut32.a
11.把GLUT的main.cpp裡的程式全部刪掉,改成
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///沒有clear()清除畫面會留殘影
glPushMatrix();///備份矩陣
glTranslatef(0 ,0.5 ,0);///往上移動的茶壺
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glPushMatrix();
//glutSolidSphere(0.3,30,30);
glPopMatrix();
glPushMatrix();
glTranslatef(0.50, 0.625, 0);///(4)掛在茶壺上
glRotatef(angle, 0, 0, 1);///(2)先轉動
glTranslatef(0.6, 0, 0);///(3)移動旋轉中心
glRotatef(-90,0,1,0);///(1)轉動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("06160531_Week10!!_TRT");
glutDisplayFunc(display);
glutMotionFunc(motion);///滑鼠控制
glutMainLoop();
}
12.執行
沒有留言:
張貼留言