1.滑鼠motion
(1)移動:執行出來茶壺會隨著滑鼠移動
#include <GL/glut.h>
float x=0, y=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);///清畫面
glPushMatrix();///備份矩陣,保護好
glTranslatef((x-150)/150.0,-(y-150)/150.0,0);///移動x,y,z =>在week3有教,小畫家的座標換算:座標減掉一半除掉最大值,就變成-1~+1之間glVertex2f( (x-100)/100.0, -(y-100-100.0) )
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣保護好
glutSwapBuffers();
}
void motion(int nowx, int nowy)
{
x=nowx; y=nowy;
display();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("translate");
glutDisplayFunc(display);
glutMotionFunc(motion););///負責motion的函式,乎叫motion()
glutMainLoop();
}
(2)轉動:
將 glTranslatef((x-150)/150.0,-(y-150)/150.0,0);改成
glRotatef(x,0,1,0);=>左右轉動
or
glRotatef(y,1,0,0);=>上下轉動
沒有留言:
張貼留言