我在openGL中制作了一个c++代码来绘制七个顶点。我的示例代码如下:

#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个。代码有什么问题吗?有什么办法显示所有点?

最佳答案



您正在设置投影,使得(0,0)映射到左下角,而(200,150)映射到右上角,因此



都在 View 体积之外。

10-08 03:06