我写这个画一个实心圆锥,但它看起来有点奇怪(见截图),因为它只是从基圆开始绘制圆形,直到当前圆半径小到足以最终形成一个圆锥。
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++);
}
}
那么绘制透明立体锥的另一种技术/算法是什么?