圆锥螺旋线(Conical helix)。
空间一个点M在圆锥面 x^2+y^2=z^2 上以角速度 w 绕 z 轴旋转,同时又以线速度 v 沿平行于 z 轴的正方向上升,这点M的轨迹就是一条螺旋线。
设在时刻 t=0 时,M 的坐标为 (0,0,0),则在时刻 t 时,M的坐标为 (x(t),y(t),z(t)),其中
x(t)=vt*cos(wt),y(t)=vt*sin(wt),z(t)=vt
令 wt=theta,则螺旋线的参数方程为:
with(plots):
x:=t->t*cos(t): y:=t->t*sin(t): z:=t->t:
spacecurve([x(t), y(t), z(t)], t=0..8*Pi, thickness=3, color=red,axes=normal, numpoints=1000);
with(plots):
x:=t->(t/3)*cos(t):y:=t->(t/3)*sin(t):z:=t->t/3:
K:=100:for i from 1 to K do ti:=i*6*Pi/K:
curve[i]:=spacecurve([x(t),y(t),z(t)],t=0..ti,color=red,thickness=2):
curve1[i]:=spacecurve([x(t),y(t),0],t=0..ti,color=brown,thickness=2):
radius1[i]:=spacecurve([t*x(ti),t*y(ti),z(ti)],t=0..1,color=black,thickness=2):
radius2[i]:=spacecurve([t*x(ti),t*y(ti),0],t=0..1,color=black,thickness=2):
Z[i]:=spacecurve([0,0,z(t)],t=0..ti,color=blue,thickness=2):
XYZ[i]:=spacecurve([x(ti),y(ti),t*z(ti)],t=0..1,color=blue) od:
curve:=display(seq(curve[i],i=1..K),insequence=true):
curve1:=display(seq(curve1[i],i=1..K),insequence=true):
radius1:=display(seq(radius1[i],i=1..K),insequence=true):
radius2:=display(seq(radius2[i],i=1..K),insequence=true):
Z:=display(seq(Z[i],i=1..K),insequence=true):
XYZ:=display(seq(XYZ[i],i=1..K),insequence=true):
display(curve,curve1,Z,XYZ,radius1,radius2,axes=normal,tickmarks=[0,0,0]);
评论