2

我正在使用Sumanta Guha 的 Computer Graphics Through OpenGL 自学计算机图形学。当谈到其中一个练习时,我似乎遇到了一个小障碍。

它要求读者“丰满”一个带有 n 个线圈的环形螺旋。这意味着将 3D 管道渲染为环绕 n 次的环形螺旋形状。我能够为环形螺旋曲线设计参数方程,但在求解 3D 管道的参数方程时遇到了数学问题。

环形螺旋曲线的参数方程如下:

被缠绕的圆环具有内半径(“甜甜圈”中心的孔)R 和外半径 r。

给定一个参数 t,在 [-PI, PI] 范围内

x = (R + r*cos(n*t)) * cos(t)
y = (R + r*cos(n*t)) * sin(t)
z = r*sin(n*t)

显然,我们将需要另一个参数和实际管道的另一个半径。

关于如何开始解决这个问题的任何想法?我用头撞了一下它,但没能做到。

谢谢!

4

1 回答 1

1

对于螺旋上的每个点p(t),您需要创建一个顶点圆。通过找到 ,计算曲线的切线p(t+d),对于 的一些小值d。标准化矢量p(t)->p(t+d)- 这是管道顶点所在平面的法线。

将向量从p(t)到原点投影到这个平面上。圆中的第一个顶点应位于此投影上,其余顶点围绕平面法线旋转。这将为每个圆提供一致的方向,以便您可以将顶点拼接成三角形。

于 2012-12-14T09:05:48.017 回答