2012-03-06 3 views
3

내 교과서에서 연습 문제를 연습하고 있지만 결과가 좋지 않습니다. 여기 OpenGL Line Drawing

내가 무엇을 가지고 :
#include <math.h> 
#include <GLUT/glut.h> 
#include <OpenGL/OpenGL.h> 

//Initialize OpenGL 
void init(void) { 
    glClearColor(0.0,0.0,0.0,0.0); 
    glMatrixMode(GL_PROJECTION); 
    gluOrtho2D(0.0,300.0,0.0,300.0);  
} 

void drawLines(void) { 
    glClear(GL_COLOR_BUFFER_BIT); 
    glColor3f(0.0,0.4,0.2); 
    glPointSize(3.0); 

    glBegin(GL_LINES); 
    glVertex2d(180, 15); 
    glVertex2d(10, 145); 
    glEnd(); 
} 

int main(int argc, char**argv) { 
    glutInit(&argc, argv); 
    glutInitWindowPosition(10,10); 
    glutInitWindowSize(500,500); 
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); 

    glutCreateWindow("Example"); 
    init(); 
    glutDisplayFunc(drawLines); 
    glutMainLoop(); 
} 

나는이 코드 조각을 실행

, 나는 완전히 빈 화면을 얻을.

+0

glut은 opengl의 일부가 아니며 여분의 라이브러리이므로 태그로 추가했습니다. –

+0

미안합니다. 고맙습니다. –

답변

8

저는 OpenGL에 대한 전문 지식이 없지만 장면을 투사해야하는 곳으로 뷰포트를 설정하지 않은 것이 문제입니다. 초기화는 다음과 같아야합니다.

glClearColor(0, 0, 0, 0); 

glViewport(0, 0, 500, 500); 

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 

glOrtho(0, 500, 0, 500, 1, -1); 

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 

또한 glFlush(); 너의 그림 후에.

void drawLines(void) { 
    ... 
    glFlush(); 
} 
+0

대답은 thx지만 내 문제를 해결하지 못했습니다. –

+2

방금 ​​렌더링을 glFlush하는 걸 잊었습니다. – Julian

+2

thx, glFlush가 내 문제를 해결했습니다. 내 답변을 수락 할 수 있도록 게시물을 수정하십시오. (다른 사람들을 위해) –