【问题标题】:Rendering a toroidal helix渲染环形螺旋
【发布时间】:2014-06-24 08:01:14
【问题描述】:

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

它要求读者“丰满”一个带有 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)

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

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

谢谢!

【问题讨论】:

    标签: graphics curve geometry-surface helix


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-03
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多