二次曲面的绘制函数(二)

三.绘制二次曲面步骤

1.绘制二次曲面首先要创建二次曲面对象。其函数名为gluNewQuadric,原型GLUquadricObj* gluNewQuadric(void)

GLUquadricObj是二次曲面声明类型,它所在的头文件是GLU.h中。一般使用是先声明二次曲面,然后再建立

二次曲面对象,例如:GLUquadricObj *quadObj1;quadObj1 = gluNewQuadric();

2.然后是设置二次曲面绘制风格。其函数名为gluQuadricDrawStyle,其原型为:void gluQuadricDrawstyle(

GLUquadricObj *qobj,GLenum drawStyle);qobj表示1中的二次曲面对象,drawStyle表示二次曲面绘制风格,

设置风格只要有:

GLU_FILL,表示用多边形图元来绘制二次曲面,绘制方式为逆时针,例如绘制圆柱体。

GLU_LINE表示用一系列线来绘制二次曲面,一般用来绘制圆盘。

GLU_SILHOUETTE表示除边界外用一系列的线来绘制二次对象,一般用来绘制球体。

GLU_POINT表示用一系列的点来绘制二次曲面,一般用来绘制部分圆盘。

3.设置法线风格,其函数为:gluQuadricNormals。其函数原型为:void gluQuadricNormals(GLUquadricobj* 

obj,GLenum normals);其中obj表示二次曲面对象,normals表示法线类型,主要有:

GLU_NONE表示没有生成法线。

GLU_FLAT表示一个二次曲面的每一个面都产生一个法线

GLU_SMOOTH表示对每个顶点都计算法线向量,这是默认的

4.设置二次曲面绘制方向。其函数为gluQuadricOrientation。其函数原型为:void gluQuandricOrientation(

GLUquadricObj* obj,GLenum orientation);其中obj表示二次曲面对象,orientation表示方向的类型,主要有:

GLU_OUTSIDE 表示二次曲面所有的法线都向外绘制,这是默认的方式。

GLU_INSIDE 表示二次曲面所有的法线都向内指出。

5.设置纹理。其函数为gluQuadricTexture。函数原型为void gluQuadricTexture(GLUquadricObj* obj,

GLboolean textureCoords);其中obj表示二次曲面对象,textureCoords表示指定一个标志,指定是否应该生成

纹理坐标。其标志主要有:

GL_TRUE表示生成纹理坐标

GL_FALSE表示不生成纹理坐标,这是默认值。

6.最后就是用二次曲面函数去绘制。

你可能感兴趣的:(opengl)