#include <gl/glut.h>
GLsizei winWidth=300;
GLsizei winHeight=300;
GLint pnum=0;
class Point
{
public:
GLint x,y;
};
void Init()
{
glClearColor(1,1,1,1);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0,200.0,0,150.0);
}
void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
}
void drawline(Point p1,Point p2)
{
glColor3f(1,0,0);
glBegin(GL_LINES);
glVertex2i(p1.x,p1.y);
glVertex2i(p2.x,p2.y);
glEnd();
}
void plotlines(GLint button,GLint action,GLint xMouse,GLint yMouse)
{
static Point p1,p2;
if(pnum==0)
{
if(button==GLUT_LEFT_BUTTON&&action==GLUT_DOWN)
{
p1.x=xMouse;
p1.y=winHeight-yMouse;
pnum=1;
}
}
else
{
if(button==GLUT_LEFT_BUTTON&&action==GLUT_DOWN)
{
p2.x=xMouse;
p2.y=winHeight-yMouse;
pnum=0;
drawline(p1,p2);
}
}
glFlush();
}
void MyReshape(int newWidth,int newHeight)
{
glViewport(0,0,newWidth,newHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,(GLdouble)newWidth,0,(GLdouble)newHeight);
winWidth=newWidth;
winHeight=newHeight;
}
void main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(winWidth,winHeight);
int win1=glutCreateWindow("window1");
//int win2=glutCreateWindow("window2");
Init();
glutReshapeFunc(MyReshape);
glutDisplayFunc(MyDisplay);
glutMouseFunc(plotlines);
glutMainLoop();
}