2016-09-17 5 views
1

openGLで7つの頂点を描画するためにC++コードを作成しました。私のサンプルコードは次のとおりです:OpenGLでポイントを描画中にいくつかのポイントを失う

#include <GL/glut.h> 

void init2D(float r, float g, float b) 
{ 
    glClearColor(r, g, b, 0.0); 
    glMatrixMode(GL_PROJECTION); 
    gluOrtho2D(0.0, 200.0, 0.0, 150.0); 
    glPointSize(4.0); 
} 

void display(void) 
{ 
    glClear(GL_COLOR_BUFFER_BIT); 
    glColor3f(1.0, 0.0, 0.0); 

    //draw two points 
    glBegin(GL_POINTS); 
    glVertex2i(30, 30); 
    glVertex2i(47, 76); 
    glVertex2i(76, 150); 
    glVertex2i(130, 240); 
    glVertex2i(300, 200); 
    glVertex2i(250, 50); 
    glVertex2i(60, 20); 
    glEnd(); 

    glFlush(); 
} 

void main(int argc, char *argv[]) 
{ 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); 
    glutInitWindowSize(500, 500); 
    glutInitWindowPosition(100, 100); 
    glutCreateWindow("points and lines"); 
    init2D(0.0, 0.0, 0.0); 
    glutDisplayFunc(display); 
    glutMainLoop(); 
} 

しかし、私はコードを実行すると、私はそれらの4つだけを取得しています。コードに間違いはありますか?すべてのポイントを表示する方法はありますか?

答えて

1
gluOrtho2D(0.0, 200.0, 0.0, 150.0); 

あなたはそれ故に

glVertex2i(130, 240); 
glVertex2i(300, 200); 
glVertex2i(250, 50); 
、右上隅に(0,0)は左下隅にマップ、および(200、150)というように、あなたの投影を設定しています

はすべてビューボリューム外です。

+0

どのようにすべての点を見えるようにしますか? @derhass – user6843794

+0

@ user6843794:ビューfrustumがすべてのポイントを包含するように 'gluOrtho2D()'コールを調整します。 – genpfault

関連する問題