http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/

這次則是要開啟Transformation.exe這個檔案
把3D模型換成人偶 : 右上視窗>右鍵>All Capone

第1個是移動,第2個是旋轉,第3個是放大縮小
只有X、Y、Z這三個軸,為什麼有四個數值?
因為它就是用來挑整軸方向的數值,原本的Y軸是往上,使用它的時候就可以變成向下。

實作練習:
開完專案後,保留開始的程式碼,先理解程式碼
display函式是我們顯示圖樣的作業,所以先從他下手
我們會看到上面我們學的程式碼上都有用的 ""a"" 變數作旋轉。
這次用motion程式並設置function,還記得我們用函式都要在main()引用

用一個變數套用在變數"a"
照茶壺做法>添加剛剛學的程式碼在下方

最後程式碼:
#include <GL/glut.h>
float angle=0,oldX=0;
void motion(int x,int y)
{
angle+=(x-oldX);///angle=x;
oldX=x;
glutPostRedisplay();
}
void mouse(int button, int state, int x, int y)
{
oldX=x;
}
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef (angle,0,0,1);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week04");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMouseFunc(mouse);
glutMainLoop();
}
沒有留言:
張貼留言