所有图形见:数学图形目录
或
绕 z 轴旋转一周的旋转椭球面的参数方程为
with(plots):
a:=2:b:=1: t1:=0:t2:=2*Pi:
x:=t->0: y:=t->a*cos(t): z:=t->b*sin(t): r:=t->sqrt(x(t)^2+y(t)^2):
qumian:=plot3d([r(t)*cos(theta),r(t)*sin(theta),z(t)] ,t=t1..t2,theta=0..2*Pi):
quxian:=spacecurve([x(t),y(t),z(t)],t=t1..t2,thickness=4,color=red):
x_axis:=plot3d([u,0,0],u=-2.5..2.5,v=0..0.01):
y_axis:=plot3d([0,u,0],u=-2.5..2.5,v=0..0.01):
z_axis:=plot3d([0,0,u],u=-1.5..2,v=0..0.01):
xyz:=display(x_axis,y_axis,z_axis,thickness=3):
display(qumian,quxian,xyz,axes=none,grid=[54,76],lightmodel=light2,scaling=constrained);
利用正交变换实现曲线绕z轴的旋转:
with(plots):a:=1:b:=2.6:
x:=t->0: y:=t->a*cos(t): z:=t->b*sin(t):
t1:=0:t2:=2*Pi:
qumian:=plot3d([x(t)*cos(s)-y(t)*sin(s),x(t)*sin(s)+y(t)*cos(s),z(t)],t=t1..t2,s=0..2*Pi):
quxian:=spacecurve([x(t),y(t),z(t)],t=t1..t2,thickness=4,color=red):
x_axis:=plot3d([u,0,0],u=-2..2,v=0..0.01):
y_axis:=plot3d([0,u,0],u=-2..2,v=0..0.01):
z_axis:=plot3d([0,0,u],u=-3.2..3.5,v=0..0.01):
xyz:=display(x_axis,y_axis,z_axis,thickness=3):
display(qumian,quxian,xyz,axes=none,grid=[54,76],lightmodel=light2,scaling=constrained);
with(plots):
y:=t->2*cos(t):z:=t->sin(t):x:=t->0:
K:=60:for i from 1 to K do ti:=i*4*Pi/K:
qumian[i]:=plot3d([x(t)*cos(theta)-y(t)*sin(theta),x(t)*sin(theta)+y(t)*cos(theta),z(t)],t=0..2*Pi,theta=0..ti, scaling=constrained):
muxian[i]:=spacecurve([x(t)*cos(ti)-y(t)*sin(ti),x(t)*sin(ti)+y(t)*cos(ti),z(t)],t=0..2*Pi,thickness=3,color=red) od:
qumian:=display(seq(qumian[i],i=1..K),insequence=true):
muxian:=display(seq(muxian[i],i=1..K),insequence=true):
x_axis:=plot3d([u,0,0],u=-2.5..2.5,v=0..0.01):
y_axis:=plot3d([0,u,0],u=-2.5..2.5,v=0..0.01):
z_axis:=plot3d([0,0,u],u=-1.5..1.5,v=0..0.01):
xyz:=display(x_axis,y_axis,z_axis,thickness=3):
display(qumian,muxian,xyz,axes=none,lightmodel=light3);
yOz 面上的椭圆绕 x 轴旋转:
with(plots):
y:=t->2*cos(t):z:=t->sin(t):x:=t->0:
K:=60:for i from 1 to K do ti:=i*4*Pi/K:
qumian[i]:=plot3d([x(t)*cos(theta)-z(t)*sin(theta),y(t),x(t)*sin(theta)+z(t)*cos(theta)],t=0..Pi,theta=0..ti, scaling=constrained):
muxian[i]:=spacecurve([x(t)*cos(ti)-z(t)*sin(ti),y(t),x(t)*sin(ti)+z(t)*cos(ti)],t=0..2*Pi,thickness=3,color=red) od:
qumian:=display(seq(qumian[i],i=1..K),insequence=true):
muxian:=display(seq(muxian[i],i=1..K),insequence=true):
x_axis:=plot3d([u,0,0],u=-1.5..1.5,v=0..0.01):
y_axis:=plot3d([0,u,0],u=-2.5..2.5,v=0..0.01):
z_axis:=plot3d([0,0,u],u=-1.5..1.5,v=0..0.01):
xyz:=display(x_axis,y_axis,z_axis,thickness=3):
display(qumian,muxian,xyz,axes=none,lightmodel=light3);
xOy 面上的椭圆绕 x 轴旋转:
with(plots):
x:=t->2*cos(t):y:=t->sin(t):z:=t->0:
K:=60:for i from 1 to K do ti:=i*4*Pi/K:
qumian[i]:=plot3d([x(t),y(t)*cos(theta)-z(t)*sin(theta),y(t)*sin(theta)+z(t)*cos(theta)],t=0..Pi,theta=0..ti, scaling=constrained):
muxian[i]:=spacecurve([x(t),y(t)*cos(ti)-z(t)*sin(ti),y(t)*sin(ti)+z(t)*cos(ti)],t=0..2*Pi,thickness=3,color=red) od:
qumian:=display(seq(qumian[i],i=1..K),insequence=true):
muxian:=display(seq(muxian[i],i=1..K),insequence=true):
x_axis:=plot3d([u,0,0],u=-2.5..2.5,v=0..0.01):
y_axis:=plot3d([0,u,0],u=-1.5..1.5,v=0..0.01):
z_axis:=plot3d([0,0,u],u=-1.5..1.5,v=0..0.01):
xyz:=display(x_axis,y_axis,z_axis,thickness=3):
display(qumian,muxian,xyz,axes=none,lightmodel=light3);
评论