如何使用openGL绘制点?(c++)



我想用openGL绘制一个坐标系,代码已经绘制了x轴和y轴。但是,不能绘制原点。如何解决这个问题?我认为代码是正确的,并在互联网上搜索资源。没有调试的解决方案。

这是我的代码:

#define FREEGLUT_STATIC
#include <GL/freeglut.h>
void define_to_OpenGL();
void main(int argc, char** argv) {
glutInit(&argc, argv);
//task2
glutInitWindowSize(600, 400);
glutInitWindowPosition(50, 50);
glutCreateWindow("Graphics Perimitives");
glutDisplayFunc(define_to_OpenGL);
glutMainLoop();
}

void define_to_OpenGL() {
glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT);

//TASK 2        
glMatrixMode(GL_PROJECTION); 
glLoadIdentity();
gluOrtho2D( -100, 800, -400, 400); 
//TASK 3
glLineWidth(1.0);
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2f(0, 0);
glVertex2f(450, 0);
glEnd();
glBegin(GL_LINES);
glVertex2f(0, -150);
glVertex2f(0, 150);
glEnd();

//TASK 4
glPointSize(100.0);
glColor3f(0, 1, 0);
glBegin(GL_POINT);
glVertex2f(450, 0);
glEnd();

//TASK 5
//TASK 6,7,8
glFlush();

}

我知道这是个简单的问题。请帮帮我,谢谢!

GL_POINT不是有效的基元类型。点的原始类型为GL_POINTS。请参见点基本体
此外,点大小是有限的10.00超过限值。减少点大小:

glPointSize(10.0);
glColor3f(0, 1, 0);
glBegin(GL_POINTS);
glVertex2f(450, 0);
glEnd();

GL_POINT是用于指定多边形模式(glPolygonMode(的枚举器常量。

最大点大小可以通过glGetFloatv、参数GL_POINT_SIZE_MAX得到。

GLfloat max_point_size;
glGetFloatv(GL_POINT_SIZE_MAX, max_point_size);

相关内容

最新更新