Graphics 绘制环形螺旋线

Graphics 绘制环形螺旋线,graphics,curve,geometry-surface,helix,Graphics,Curve,Geometry Surface,Helix,我在自学计算机图形学。在一次练习中,我似乎碰到了一个小障碍 它要求读者用n个线圈“充实”一个环形螺旋线。通过这种方式,它意味着渲染一个环形螺旋形状的3D管道,该螺旋绕n圈。我能够设计出环形螺旋曲线的参数方程,但我在数学上遇到了麻烦,无法解决三维管道的参数方程 环形螺旋曲线的参数方程如下所示: 被环绕的圆环体具有内半径(“圆环”中心的孔)R和外半径R 给定一个参数t,范围[-PI,PI] x = (R + r*cos(n*t)) * cos(t) y = (R + r*cos(n*t)) * si

我在自学计算机图形学。在一次练习中,我似乎碰到了一个小障碍

它要求读者用n个线圈“充实”一个环形螺旋线。通过这种方式,它意味着渲染一个环形螺旋形状的3D管道,该螺旋绕n圈。我能够设计出环形螺旋曲线的参数方程,但我在数学上遇到了麻烦,无法解决三维管道的参数方程

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

被环绕的圆环体具有内半径(“圆环”中心的孔)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)
显然,对于实际管道,我们需要另一个参数和另一个半径

关于如何开始解决这个问题有什么想法吗?我的头撞了它一下,但没能

谢谢

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

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