【OpenGL】二次曲面圖


要畫二次曲面圖形,首先咱們要建立一個GLUquadricObj(二次曲面聲明類型)。函數

具體以下:oop

<span style= "color: #339966;" > //聲明對象</span>
GLUquadricObj   *uquadric;
<span style= "color: #339966;" > //初始化二次曲面並建立一個指向二次曲面的指針</span>
uquadric = gluNewQuadric();
<span style= "color: #339966;" > //在二次曲面的表面建立平滑的法向量</span>
gluQuadricNormals(uquadric,GL_SMOOTH);
<span style= "color: #339966;" > //容許二次曲面使用紋理</span>
gluQuadricTexture(uquadric,TRUE);

建立完二次曲面聲明並初始化以後,咱們就能夠利用這個指針繪製多個曲面圖形了。spa

圓柱形指針

 void gluCylinder( GLUquadric* quad,    --建立的二次曲面指針
    GLdouble base,                                 --底面圓形的半徑
    GLdouble top,                                   --頂面圓形的半徑
    GLdouble height,                               --圓錐的高度
    GLint slices,                                      --緯線 環繞z軸的細分面(數字越大越平滑,相應的速度越慢)
    GLint stacks )                                    --經線 沿着z軸的細分面(數字越大越平滑,相應的速度越慢)code

 

 

圓錐orm

圓錐的實現函數和圓柱體是同樣的,只要將頂面圓形的半徑設爲0就能夠了。對象

 

圓面ci

void gluDisk(
    GLUquadricObj *qobj,      --建立的二次曲面指針
    GLdouble innerRadius,     --內圓的半徑
    GLdouble outerRadius,     --外圓的半徑
    GLint slices,              --沿半徑的細切面(數字越大越平滑,相應的速度越慢)
    GLint loops              --繞圓心的細切面(數字越大越平滑,相應的速度越慢)
);it

 

球體io

void gluSphere(
    GLUquadricObj *qobj,    --建立的二次曲面指針
    GLdouble radius,        --球半徑
    GLint slices,            --緯線細分面(數字越大越平滑,相應的速度越慢)
    GLint stacks            --經線細分面(數字越大越平滑,相應的速度越慢)
);

 

扇形

void gluPartialDisk(
    GLUquadricObj *qobj,        --建立的二次曲面指針
    GLdouble innerRadius,       --內圓的半徑
    GLdouble outerRadius,       --外圓的半徑
    GLint slices,                --沿半徑的細切面(數字越大越平滑,相應的速度越慢)
    GLint loops                --繞圓心的細切面(數字越大越平滑,相應的速度越慢)
    GLdouble startAngle,         --扇形開始的角度
    GLdouble sweepAngle        --扇形轉過的角度
);

相關文章
相關標籤/搜索