2020年6月22日 星期一

Week03之茶壺按鍵魔法

打出茶壺的程式碼 顯示按下滑鼠哪個鍵 按下還是放開 點來點去 好不開心
#include <GL/glut.h>
#include <stdio.h>
void display()
{
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}
void mouse(int button,int state,int x,int y)
{///鍵:0左、1中、2右,0下、1上,X:0~300,Y:0~300
    printf("%d %d %d %d\n",button,state,x,y);
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week03");
    glutDisplayFunc(display);///display的函式
    glutMouseFunc(mouse);///TODO:mouse的函式
    glutMainLoop();

滑鼠點點點 茶壺就會顯示在你要的地方
太快樂的出現方式!#include <GL/glut.h>
#include <stdio.h>
float teatopX=0,teatopY=0;
void display()
{///TODO2:glClear()會清畫面
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    ///glTranslatef( x , y , z ); ///會移動 x,y,z
    glTranslatef(teatopX,teatopY,0);
    glutSolidTeapot(0.3);
    glPopMatrix();///TODO2:備份矩陣
    glutSwapBuffers();
}
void mouse(int button,int state,int x,int y)
{
    teatopX=(x-150)/150.0;
    teatopY=-(y-150)/150.0;
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week03");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();
}

沒有留言:

張貼留言