
打出茶壺的程式碼 顯示按下滑鼠哪個鍵 按下還是放開 點擊的座標
#include <GL/glut.h>
#include <stdio.h>
void display()
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
void mouse(int button,int state,int x,int y)
{
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);
glutMouseFunc(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 );
glTranslatef(teatopX,teatopY,0);
glutSolidTeapot(0.3);
glPopMatrix();
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();
}

用小畫家找座標 一個一個把頂點連起來 形成一顆愛心 由於點還不夠多 愛心還不夠圓滑
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f((149-150)/150.0,-(108-150)/150.0);
glVertex2f((137-150)/150.0,-(87-150)/150.0);
glVertex2f((115-150)/150.0,-(80-150)/150.0);
glVertex2f((86-150)/150.0,-(92-150)/150.0);
glVertex2f((86-150)/150.0,-(126-150)/150.0);
glVertex2f((100-150)/150.0,-(160-150)/150.0);
glVertex2f((148-150)/150.0,-(192-150)/150.0);
glVertex2f((200-150)/150.0,-(160-150)/150.0);
glVertex2f((217-150)/150.0,-(126-150)/150.0);
glVertex2f((220-150)/150.0,-(92-150)/150.0);
glVertex2f((178-150)/150.0,-(80-150)/150.0);
glVertex2f((164-150)/150.0,-(87-150)/150.0);
glutSwapBuffers();
}
void mouse(int button,int state,int x,int y)
{
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week03");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}

沒有留言:
張貼留言