2019年3月15日 星期五

week4筆記

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);=>上下轉動

沒有留言:

張貼留言