OpenGL中的点
点
点的大小默认为 1 个像素,但也可以改变之。改变的命令为glPointSize
,其函数原型如下:
void glPointSize(GLfloat size);
//size 必须大于 0.0f,默认值为 1.0f,单位为“像素”。
使用点绘制图形
我们使用glBegin
,和glEnd
两个函数进行所要绘制图形的描述。绘制的内容要放在这两个函数之间。
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin( /* 在这里填上你所希望的模式 */ );
/* 在这里使用 glVertex*系列函数 */
/* 指定你所希望的顶点位置 */
glEnd();
glFlush();
}
几种模式
模式 | 功能 |
---|---|
GL_POINTS | 画离散的点 |
GL_LINES | 画线(每两个点连成一条线) |
GL_LINE_STRIP | 画线(所有点相互相连,首尾不相连) |
GL_LINE_LOOP | 画线(所有点相互相连,首尾相连) |
GL_POLYGON | 填充面(将所有点围成的面进行填充) |
GL_QUADS | 填充面(将每四个点围成的面进行填充,相邻点之间不填充) |
GL_QUAD_STRIP | 填充面(每两个点构成一条线,每两个线构成一个四边形) |
GL_TRIANGLES | 填充三角形(将每三个点围成的三角形进行填充,相邻的点之间不填充) |
GL_TRIANGLE_STRIP | 填充三角形(将每三个点围成的三角形进行填充,相邻的点之间填充) |
GL_TRIANGLE_FAN | 填充三角形(以第一个点为顶点,之后每两个点合起来围成的三角形进行填充,相邻的点之间填充) |
实例
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5.0f);
glBegin(GL_POINTS);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, 0.5f);
glEnd();
glFlush();
}
OpenGL中的线
指定直线宽度
void glLineWidth(GLfloat width);
虚线
glEnable(GL_LINE_STIPPLE);
来启动虚线模式(使用glDisable(GL_LINE_STIPPLE)
可以关闭之)。然后,使用glLineStipple
来设置虚线的样式。
void glLineStipple(GLint factor, GLushort pattern);
实例
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_LINE_STIPPLE);
glLineStipple(2, 0x0F0F);
glLineWidth(10.0f);
glBegin(GL_LINES);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, 0.5f);
glEnd();
glFlush();
}