现在,我正试图在OpenGL中创建一个螺旋线,并且我已经成功地创建了一个带直线的螺旋线。但这不是很详细..。因此,我做了一些谷歌搜索,并认为我可以用三角形代替我的线。
所以我在想,如果我们以我的螺旋线为例,这个建议是否意味着计算我的螺旋的所有三角形的位置,还是意味着我应该使用一些3D程序,比如.搅拌器,玛雅等,以创建模型并将它们导入OpenGL?
发布于 2014-09-12 16:38:35
我想你使用的是螺旋的参数方程
x(t) = r*cos(t)
y(t) = r*sin(t)
z(t) = c*t
然后对t
进行采样,并将连续的点与线连接起来。
下一步是为每个示例创建一个网格(带状或管道)。导数(x'(t),y'(t),z'(t))
(速度分量V
)给你一个轴,第二个导数(x''(t),y''(t),z''(t))
给你另一个轴(加速度分量A
)。执行交叉乘积得到第三轴,并对您的轴向量进行正交化,使坐标系统附加到一个点上。如果您正在用“管”对形状进行建模,则在此坐标系中定义管道的横截面,并将相应的横截面点连接起来形成网格:
如果你只是用丝带,那就更容易了--只要用A轴作为你的横截面,把点连接起来,形成网格:
导数向量V
是
x'(t) = r*sin(t)
y'(t) = -r*cos(t)
z'(t) = c
二阶导数向量A
是
x''(t) = -r*cos(t)
y''(t) = -r*sin(t)
z''(t) = 0
你想要对你的坐标系进行正交化的数学:
normalize(A)
AxV = cross(A,V)
normalize(AxV)
V = cross(AxV,A)
https://stackoverflow.com/questions/25795311
复制相似问题