【发布时间】:2017-02-10 09:05:31
【问题描述】:
我正在努力在 Matlab 中创建一个螺旋。
通过以下代码:
t = 0:pi/50:20*pi;
(你能解释一下这个语法吗,或者我们每次创建螺旋时都必须遵循这个?)
st = sin(t);
ct = cos(t);
plot3(st,ct,t)
由于螺旋角的最大效率在 40 到 45 度之间,如果我想将角度输入为 42,在代码中怎么可能?
如果有人能就此发表意见,那将非常有帮助
TIA
【问题讨论】:
我正在努力在 Matlab 中创建一个螺旋。
通过以下代码:
t = 0:pi/50:20*pi;
(你能解释一下这个语法吗,或者我们每次创建螺旋时都必须遵循这个?)
st = sin(t);
ct = cos(t);
plot3(st,ct,t)
由于螺旋角的最大效率在 40 到 45 度之间,如果我想将角度输入为 42,在代码中怎么可能?
如果有人能就此发表意见,那将非常有帮助
TIA
【问题讨论】:
代码中发生的只是对螺旋的参数数学描述的执行,您可以在wikipedia 上阅读
x(t) = cos(t)
y(t) = sin(t)
z(t) = t
您的代码的第一行以pi/50 的步长(即1000 步)为从0 到20pi 的值t 生成一个向量。因为每2pi 意味着一整圈(cos 和 sin 是 2pi 周期),它与螺旋线的 10 圈重合(如果你想改变这个,让t 运行到2*pi*NumberOfRotations)。另外两行为x 和y 生成对应的向量。 plot3 在 3-D 中绘制一条线,其中传递了 x 和 y,作为 z 的参数,我们传递 t,因为 z=t。
要改变螺旋线的斜率,请使用以下给出的更一般的描述
x(t) = a*cos(t)
y(t) = a*sin(t)
z(t) = b*t
其中 a 是半径,b/a 是斜率。要获得 42°,请使用 b = a*atand(42)。为确保显示中的纵横比正确,请在绘图后使用axis equal;,如果您想翻转它,可以使用axis vis3d;。
【讨论】: