Language/C++ & openGL
오픈지엘 마우스 클릭으로 다수의 선 그리기
javapp 자바앱
2020. 5. 21. 00:00
728x90
마우스 클릭으로 다수의 선 그리기
GLint TopLeftX, TopLeftY, BottomRightX, BottomRightY;
void MyDisplay()
{
glColor3f(255, 0, 0);
glLineWidth(2.0);
glBegin(GL_LINES);
glVertex3f(TopLeftX / 300.0, (300 - TopLeftY) / 300.0, 0.0);
glVertex3f(BottomRightX / 300.0, (300 - BottomRightY) / 300.0, 0.0);
glEnd();
glFlush();
}
void MyMouseClick(GLint Button, GLint State, GLint X, GLint Y)
{
if (Button == GLUT_LEFT_BUTTON && State == GLUT_DOWN)
{
TopLeftX = X;
TopLeftY = Y;
}
}
void MyMouseMove(GLint X, GLint Y)
{
BottomRightX = X;
BottomRightY = Y;
// glutPostRedisplay();
}
int main(int argc, char* argv[])
{
glutInit_ATEXIT_HACK(&argc, argv);
glutInitWindowSize(300, 300); // 윈도우 크기
glutInitWindowPosition(500, 100); // (500,100) 위치에 윈도우
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow_ATEXIT_HACK("OpenGL Example");
glClear(GL_COLOR_BUFFER_BIT);
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); // 정사투영: 차후 설명
glutDisplayFunc(MyDisplay);
glutMouseFunc(MyMouseClick);
glutMotionFunc(MyMouseMove);
glutMainLoop();
return 0;
}