今天上課一開始,教了3D的旋轉,從x、y增加成了x、y、z。
旋轉X會變成這樣
旋轉Y會變成這樣
旋轉Z會變成這樣
之後我們先開一個GLUT的專案,我們改變了裡面的一些函式讓裡面的圖形嘿跟著滑鼠拖曳移動。
增加了glutMotionFunc(motion);後要記得把const double a = myAngle;他下面的圖形旋轉才會跟著滑鼠一起移動。
現在我們把圖片換成茶杯,而且優化了程式,讓茶杯轉起來比較順暢而且不會因為點到座標改被旋轉的位置。
茶杯旋轉程式碼
茶杯旋轉程式碼
#include<GL/glut.h>
float my = 0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotated(my,0,0,1);
glutSolidTeapot( 0.3 );
glPopMatrix();
glutSwapBuffers();
}
int old=0;
void mou(int but,int st,int x,int y)
{
if(st==GLUT_DOWN) old=x;
}
void mot(int x,int y)
{
my+=(x-old);
old=x;
display();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("Week04");
glutMotionFunc(mot);
glutMouseFunc(mou);
glutDisplayFunc(display);
glutMainLoop();
}





沒有留言:
張貼留言