绘制一个矩形,鼠标点击哪它就移动到哪。
#include<GL/glut.h>
GLint w = 600, h = 500;
GLint dx = 0, dy = 0;
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT); //清除当前被激活为写操作的颜色缓存
glColor3f(0.87, 0.56, 0.4);
glPointSize(2);
glBegin(GL_POLYGON);//绘制多边形
glVertex2i(10 + dx, 10 + dy);
glVertex2i(10 + dx, 100 + dy);
glVertex2i(100 + dx, 100 + dy);
glVertex2i(100 + dx, 10 + dy);
glEnd();
glFlush();//将缓存推送到屏幕上
}
//鼠标点击
void mouseMotion(GLint button, GLint state, GLint x, GLint y)
{
//鼠标按下左键
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
dx = x;
dy = h - y;
glutPostRedisplay();//重新绘制
}
}
void init()
{
glClearColor(1.0, 1.0, 1.0, 0.0);//设置窗口背景色
glMatrixMode(GL_PROJECTION);//设置为正投影模式
glLoadIdentity();//类似复位操作
gluOrtho2D(0, w