绘制实心透明圆锥的技术

时间:2015-07-28 08:20:59

标签: c++ opengl glut

我写这个画一个实心圆锥,但它看起来有点奇怪(见截图),因为它只是从基圆开始绘制圆形,直到当前圆半径小到足以最终形成一个圆锥。

void drawCircle(const GLfloat& r, const GLfloat& x0, const GLfloat& y0, GLfloat z0)
{   
    glBegin(GL_LINE_LOOP);      
        for (GLfloat ang = 0; ang <= 360; ang++)
        {
            glVertex3f(x0 + r*cos((ang*PI)/180), y0 + r*sin((ang*PI)/180), z0);
        }

    glEnd();
}

void drawCone(GLfloat r, GLfloat h, const GLfloat& x0, const GLfloat& y0, GLfloat z0)
{
    glColor4f(0.0, 1.0, 1.0, ALPHA);
    GLfloat i = r/h;
    while (h--)
    {
        drawCircle(r-= i, x0, y0, z0++);
    }
}

那么绘制透明立体锥的另一种技术/算法是什么?

enter image description here

enter image description here

0 个答案:

没有答案