在openGL中绘制点时丢失一些点 我在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(); } #包括 void init2D(浮点数r、浮点数g、浮点数b) { glClearColor(r,g,b,0.0); glMatrixMode(GL_投影); gluOrtho2D(0.0,200.0,0.0,150.0); glPointSize(4.0); } 作废显示(作废) { glClear(GLU颜色缓冲位); GL3F(1.0,0.0,0.0); //得出两点 glBegin(总分); glVertex2i(30,30); glVertex2i(47,76); glVertex2i(76150); glVertex2i(130240); glVertex2i(300200); glVertex2i(250,50); glVertex2i(60,20); 格伦德(); glFlush(); } void main(int argc,char*argv[]) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500500); 位置(100100); 创建窗口(“点和线”); init2D(0.0,0.0,0.0); glutDisplayFunc(显示器); glutMainLoop(); }

在openGL中绘制点时丢失一些点 我在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(); } #包括 void init2D(浮点数r、浮点数g、浮点数b) { glClearColor(r,g,b,0.0); glMatrixMode(GL_投影); gluOrtho2D(0.0,200.0,0.0,150.0); glPointSize(4.0); } 作废显示(作废) { glClear(GLU颜色缓冲位); GL3F(1.0,0.0,0.0); //得出两点 glBegin(总分); glVertex2i(30,30); glVertex2i(47,76); glVertex2i(76150); glVertex2i(130240); glVertex2i(300200); glVertex2i(250,50); glVertex2i(60,20); 格伦德(); glFlush(); } void main(int argc,char*argv[]) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500500); 位置(100100); 创建窗口(“点和线”); init2D(0.0,0.0,0.0); glutDisplayFunc(显示器); glutMainLoop(); },c++,opengl,graphics,C++,Opengl,Graphics,但是当我运行代码时,我只得到了4个。代码中有什么错误吗?有没有办法显示所有的点 您正在设置投影,以便(0,0)映射到左下角,(200150)映射到右上角,因此 都在视图体积之外。@user6843994:调整gluOrtho2D()调用,使视图平截头体包含所有点。 gluOrtho2D(0.0, 200.0, 0.0, 150.0); glVertex2i(130, 240); glVertex2i(300, 200); glVertex2i(250, 50);

但是当我运行代码时,我只得到了4个。代码中有什么错误吗?有没有办法显示所有的点

您正在设置投影,以便(0,0)映射到左下角,(200150)映射到右上角,因此


都在视图体积之外。

@user6843994:调整
gluOrtho2D()
调用,使视图平截头体包含所有点。
gluOrtho2D(0.0, 200.0, 0.0, 150.0);
glVertex2i(130, 240);
glVertex2i(300, 200);
glVertex2i(250, 50);