4.4 旋转曲面的动画(2)

参数曲线绕坐标轴旋转形成的旋转曲面的动画

例 4.4.5 作出以下直线绕 z 轴旋转一周得到的旋转曲面的动画。4.4 旋转曲面的动画(2)
旋转曲面的参数方程为:4.4 旋转曲面的动画(2)
输入以下命令:

with(plots): x:=t->0: y:=t->1: z:=t->t: u:=sqrt(x(t)^ 2+y(t)^2):
a:=-1: b:=1: K:=20: for i from 1 to K do ti:=i2Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta), u(t)*sin(theta), z(t)],t=a…b, theta=0…ti) od:
L:=display(seq(qumian[i],i=1…K),insequence=true):
display(L,L, style=patch, lightmodel=light2, orientation=[45,70],
axes=frame,tickmarks=[2,2,2]);

输出动画(圆柱面 x^ 2+y^2=1):4.4 旋转曲面的动画(2)
4.4 旋转曲面的动画(2)
输入以下命令:

with(plots):with(plottools):
x:=t->1: y:=t->0: z:=t->t: u:=t->sqrt(x(t)2+y(t)2):
Muxian:=spacecurve([x(t),y(t),z(t)],t=-1.8…1.8, thickness=3,color=red):
K:=30:
for i from 1 to K do ti:=i4Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta),u(t)*sin(theta),z(t)],t=-1.3…1.3,theta=0…ti,
scaling=constrained,style=patch):
muxian[i]:=rotate(Muxian,ti,[[0,0,0],[0,0,1]]) od:
L:=display(seq(qumian[i],i=1…K), insequence=true):
M:=display(seq(muxian[i],i=1…K), insequence=true):
display(L,M,orientation=[40,70],tickmarks=[1,1,1],axes=frame,
lightmodel=light1,scaling=unconstrained);

输出动画(含旋转直线):4.4 旋转曲面的动画(2)

例 4.4.6 作出以下直线绕 z 轴旋转一周得到的旋转曲面的动画。4.4 旋转曲面的动画(2)
旋转曲面的参数方程为:4.4 旋转曲面的动画(2)
输入以下命令:

with(plots): x:=t->1: y:=t->t: z:=t->t: u:=sqrt(x(t)^ 2+y(t)^2):
a:=-1: b:=1: K:=20: for i from 1 to K do ti:=i* 2*Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta), u(t)*sin(theta), z(t)],t=a…b, theta=0…ti) od:
L:=display(seq(qumian[i],i=1…K),insequence=true):
display(L,L, style=patch, lightmodel=light2, orientation=[45,70],
axes=frame,tickmarks=[2,2,2]);

输出动画(单叶双曲面):4.4 旋转曲面的动画(2)
4.4 旋转曲面的动画(2)
但是以上曲面的一组母线不是旋转直线。
例 4.4.7 作出以下直线绕 z 轴旋转一周得到的旋转曲面的动画。4.4 旋转曲面的动画(2)
要求母线是旋转直线!

输入以下命令:

with(plots):with(plottools): x:=t->1: y:=t->t: z:=t->t:
r:=t->sqrt(x(t)^ 2+y(t)^2):
phi:=t->arctan(y(t)/x(t))+(1-signum(x(t)))* Pi/2:
a:=-1: b:=1:
K:=6: for i from 1 to K do ti:=i3Pi/K:
qumian[i]:=plot3d([r(t)*cos(theta+phi(t)), r(t)*sin(theta+phi(t)), z(t)],t=a…b,theta=0…ti):
quxian[i]:=rotate(spacecurve([x(t),y(t),z(t)],t=a-0.1…b+0.1,
thickness=3,color=red),ti,[[0,0,0],[0,0,1]]) od:
M:=display(seq(qumian[i],i=1…K),insequence=true):
L:=display(seq(quxian[i],i=1…K),insequence=true):
display(L,M,orientation=[40,70],axes=normal,tickmarks=[0,0,1], lightmodel=light1, scaling=constrained);

输出动画(母线是旋转直线):4.4 旋转曲面的动画(2)
4.4 旋转曲面的动画(2)
4.4 旋转曲面的动画(2)
输入以下命令:

with(plots):with(plottools): x:=t->1: y:=t->t: z:=t->2* t:
r:=t->sqrt(x(t)^ 2+y(t)^2):
phi:=t->arctan(y(t)/x(t))+(1-signum(x(t)))* Pi/2:
a:=-1: b:=1:
quxian:=spacecurve([x(t),y(t),z(t)],t=a-0.1…b+0.1,color=blue,thickness=2):
qumian:=plot3d([r(t)* cos(theta+phi(t)), r(t)* sin(theta+phi(t)), z(t)],
t=a…b,theta=0…2* Pi,color=yellow):
K:=24: for i from 1 to K do ti:=i* 2*Pi/K:
L[i]:=rotate(quxian,ti,[[0,0,0],[0,0,1]]) od:
L:=display(display(seq(L[i],i=1…K),insequence=false)):
display(L,qumian,orientation=[40,70],axes=normal,tickmarks=[0,0,0],
lightmodel=light1, scaling=constrained);

输出图形(母线是旋转直线):4.4 旋转曲面的动画(2)

例 4.4.7 作出以下圆绕 z 轴旋转一周得到的旋转曲面的动画。4.4 旋转曲面的动画(2)
旋转曲面的参数方程为:4.4 旋转曲面的动画(2)
输入以下命令:

with(plots):with(plottools): R:=3:r:=0.8:
x:=t->R+rsin(t): y:=t->0: z:=t->rcos(t): u:=t->sqrt(x(t)^ 2+y(t)^2):
a:=0: b:=2* Pi:
K:=30: for i from 1 to K do ti:=i* 3* Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta+Pi/2),u(t)*sin(theta+Pi/2),z(t)],
t=0…b,theta=0…ti,style=patch) od:
L:=display(seq(qumian[i],i=1…K),insequence=true):
display(L,L,orientation=[40,70],axes=normal,tickmarks=[1,1,1],
lightmodel=light1, scaling=constrained);

输出动画(圆环面):4.4 旋转曲面的动画(2)
4.4 旋转曲面的动画(2)
输入以下命令:

with(plots):with(plottools):
R:=3:r:=0.8:
x:=t->R+rsin(t):y:=t->0:z:=t->r cos(t):
u:=t->sqrt(x(t)^ 2+y(t)^2):
a:=0: b:=2* Pi:
Muxian:=spacecurve([x(t),y(t),z(t)],t=a…b,thickness=3,color=red):
K:=60:for i from 1 to K do ti:=i* 4* Pi/K:
qumian1[i]:=plot3d([u(t)*cos(theta+Pi/2),u(t)*sin(theta+Pi/2),z(t)],t=0…b,theta=0…ti,style=patch):
muxian[i]:=rotate(Muxian,ti+Pi/2,[[0,0,0],[0,0,1]]) od:
qumian1:=display(seq(qumian1[i],i=1…K),insequence=true):
muxian:=display(seq(muxian[i],i=1…K),insequence=true):
x_axis:=plot3d([u,0,0],u=-5…5,v=0…0.01,thickness=3):
y_axis:=plot3d([0,u,0],u=-5…5,v=0…0.01,thickness=3):
z_axis:=plot3d([0,0,u],u=-2…2.5,v=0…0.01,thickness=3):
xyz:=display(x_axis,y_axis,z_axis,thickness=3):
text:=textplot3d([-3,-3,-0.2,“SCUMATH 2008”],color=grey):
display(qumian1,muxian,text,xyz,orientation=[40,70],tickmarks=[4,4,4],title=“torus”,axes=none,lightmodel=light1,scaling=constrained);

输出动画(母线为旋转小圆):4.4 旋转曲面的动画(2)
输入以下命令:

with(plots):with(plottools): rr:=1:R:=3:
x:=t->0: y:=t->R+rr* cos(t): z:=t->R+rr* sin(t):
r:=t->sqrt(x(t)^ 2+y(t)^2):
a:=0: b:=2* Pi:
quxian:=spacecurve([x(t),y(t),z(t)],t=a…b,color=blue,thickness=2):
qumian:=plot3d([r(t)* cos(theta), r(t)* sin(theta), z(t)],
t=a…b,theta=0…2* Pi,color=yellow):
K:=24: for i from 1 to K do ti:=i2Pi/K:
L[i]:=rotate(quxian,ti,[[0,0,0],[0,0,1]]) od:
L:=display(display(seq(L[i],i=1…K),insequence=false)):
display(L,qumian,orientation=[40,70],axes=normal,tickmarks=[0,0,0],
lightmodel=light1, scaling=constrained);

输出图形(母线为旋转小圆):
4.4 旋转曲面的动画(2)
返回《Maple图形与动画》目录