点是最基本的图元。在画点时,glBegin的参数应该设置为:GL_POINTS,每个顶点指定一个点,点尺寸属性通过函数glPointSize进行设置:
void glPointSize(GLfloat size);
该函数对点尺寸状态变量进行设定,尺寸的度量单位是屏幕中的像素,默认的值为1.0。
示例代码:
#include <GL/glut.h>
void init();
void display();
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
/**画点*/
glPointSize(2.0);
glBegin(GL_POINTS);
glColor3f(1.0, 1.0, 1.0);
glVertex2f(-0.5, -0.5);
glColor3f(1.0, 0.0, 0.0);
glVertex2f(-0.5, 0.5);
glColor3f(0.0, 0.0, 1.0);
glVertex2f(0.5, 0.5);
glColor3f(0.0, 1.0, 0.0);
glVertex2f(0.5, -0.5);
glEnd();
glFlush();
}
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glColor3f(1.0, 1.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(0, 0);
glutInitWindowSize(500, 500);
glutCreateWindow("draw points");
glutDisplayFunc(display);
init();
glutMainLoop();
return 0;
}
执行结果:
通过函数glPointSize设置像素点的尺寸,设置为20.0:glPointSize(20.0);
则:
为什么绘制出来的点是矩形或者说是正方形,而不是圆形的呢?