본문 바로가기
Language/C++ & openGL

오픈지엘 마우스 클릭으로 다수의 선 그리기

by javapp 자바앱 2020. 5. 21.
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;

}

 


 

댓글