GLU提供了三种类型的二次曲面:球体、圆柱体以及圆盘。
创建以及删除二次曲面:
创建一个新的二次曲面对象,并返回其指针。
GLUquadricObj*gluNewQuadric();
删除二次曲面对象obj
voidgluDeleteQuadric(GLUquadricObj* obj);
风格设定:
void gluQuadricDrawStyle(GLUquadricObj* obj,GLenumstyle);
style可以取GLU_POINT,GLU_LINE,GLU_FILL,GLU_SILHOUETTE
法线及纹理坐标
void gluQuadricNormals(GLUquadricObj* obj,GLenummode);
void gluQuadricTexture(GLUquadricObj*obj,GLboolen mode);
线框模型:
void gluSphere(GLUquadricObj* obj,GLdouble radius,GLint slice,GLintstacks);
slice及stack为经纬线的条数。可通过变换手段对球体进行各种变形。
void gluCylinder(GLUquadricObj* obj,GLdouble baseRadius,GLdouble topRadius,GLdouble height,GLdoubleslices,GLdouble stacks);
其中,base为z=0的半径,top为z=height的半径,stacks为层数,slices为每层的分割条数。
voidgluDisk(GLUquadricObj* obj,GLdouble inner,GLdouble outer,Glint slices,Glintrings);
rings为同心圆中的圆的的个数,slices为对一个圆的等分。
voidgluPartialDisk(GLUquadricObj* obj,GLdouble inner,GLdouble outer,Glint slices,Glint rings,GLdouble start,GLdouble angle);