单击鼠标左键画点。
#include <iostream>
#include <GL/glut.h>
GLsizei winWidth = 400;
GLsizei winHeight = 300;
void init()
{
glClearColor(0.0, 0.0, 1.0, 1.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 200.0, 0.0, 150.0);
}
void displayFun()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glPointSize(3.0);
}
void winReshapeFun(GLint newWidth , GLint newHeight)
{
glViewport(0, 0, newWidth, newHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, (double)newWidth, 0.0, (double)newHeight);
winWidth = newWidth;
winHeight = newHeight;
}
void plotPoint(GLint x, GLint y)
{
glBegin(GL_POINTS);
glVertex2i(x, y);
glEnd();
}
void mousePtPlot(GLint button, GLint action, GLint xMouse, GLint yMouse)
{
if (button == GLUT_LEFT_BUTTON && action == GLUT_DOWN)
{
plotPoint(xMouse, winHeight - yMouse);
}
glFlush();
}
void main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100, 100);
glutInitWindowSize(winWidth, winHeight);
glutCreateWindow("Mouse Plot Points");
init();
glutDisplayFunc(displayFun);
glutReshapeFunc(winReshapeFun);
glutMouseFunc(mousePtPlot);
glutMainLoop();
}