2.解壓縮檔案,並把glut32.dll檔丟進windows裡
3.點選"Shapes.exe"
用滑鼠上下拉動,就可以調整數值大小
在圖形(左)和程式碼(右)點擊右鍵分別可以切換成不同模式
𝄞mouse()滑鼠事件𝄞
2.加入可偵測滑鼠移動的程式
#include <stdio.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(teapotX, teapotY, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void mouse(int buttom, 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 Mouse");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
𝄞motion()滑鼠移動𝄞
1.加入滑鼠點擊茶壺時,茶壺可隨著滑鼠移動的程式
BUT!!移動茶壺後,再次點擊茶壺的任何位置時,圖會立刻跳到茶壺的正中心!
glutSwapBuffers();
}
void mouse(int buttom, 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 Mouse");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
𝄞motion()滑鼠移動𝄞
1.加入滑鼠點擊茶壺時,茶壺可隨著滑鼠移動的程式
BUT!!移動茶壺後,再次點擊茶壺的任何位置時,圖會立刻跳到茶壺的正中心!
#include <GL/glut.h>
#include <stdio.h>
float teapotX=0,teapotY=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(teapotX, teapotY, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void motion(int x, int y)
{
teapotX=(x-150)/150.0;
teapotY=(150-y)/150.0;
glutPostRedisplay();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03 Mouse");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutMainLoop();
}
#include <stdio.h>
float teapotX=0,teapotY=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(teapotX, teapotY, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void mouse(int button,int state, int x, int y)
{
printf("%d %d %d %d\n", button, state, x, y);
}
{
teapotX=(x-150)/150.0;
teapotY=(150-y)/150.0;
glutPostRedisplay();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03 Mouse");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutMainLoop();
}








沒有留言:
張貼留言