我怎么画半个圆环呢?

时间:2009-06-26 21:59:08

标签: opengl

我正在从网上教程自学OpenGL游戏编程。我想绘制一个半圆环,这样它看起来就像一个网关。我怎么能这样做,有人知道所涉及的数学吗?大多数在线教程都展示了如何绘制完整的圆环。

2 个答案:

答案 0 :(得分:3)

这是一个适应OpenGL Redbook torus.c tutorial

的答案

以下是绘制圆环的代码:

static void torus(int numc, int numt)
{
   int i, j, k;
   double s, t, x, y, z, twopi;

   twopi = 2 * PI_;
   for (i = 0; i < numc; i++) {
      glBegin(GL_QUAD_STRIP);
      for (j = 0; j <= numt; j++) {
         for (k = 1; k >= 0; k--) {
            s = (i + k) % numc + 0.5;
            t = j % numt;

            x = (1+.1*cos(s*twopi/numc))*cos(t*twopi/numt);
            y = (1+.1*cos(s*twopi/numc))*sin(t*twopi/numt);
            z = .1 * sin(s * twopi / numc);
            glVertex3f(x, y, z);
         }
      }
      glEnd();
   }
}

这样做是为了画出一定量的旋转。你可以使用同样的想法,除了中途停止这个循环(即,  for(i = 0; i < numc/2; i++)

答案 1 :(得分:2)

适当地设置clip plane([0,0,1,0]应该起作用,假设+ Z是'up')并绘制一个完整的圆环。