三.绘制二次曲面步骤
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.最后就是用二次曲面函数去绘制。