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;
}
'Language > C++ & openGL' 카테고리의 다른 글
오픈지엘 gluLookAt 시점 변환 모델 잘림 해결, 뷰포트 (0) | 2020.06.05 |
---|---|
오픈지엘 이동 회전 크기 복합 변환 (0) | 2020.05.23 |
그래픽스 시작 (0) | 2020.05.13 |
openGL Retained mode(보류모드) / 디스플레이 리스트 (1) | 2020.05.06 |
openGL keyboad, timer / 키보드 콜백과 타이머 (0) | 2020.05.03 |
댓글