登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

徐小湛的博客

高等数学课件、函数图形动画、数学软件应用

 
 
 

日志

 
 

圆环面  

2009-07-23 11:55:52|  分类: 高等数学图形动画 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

所有图形见数学图形目录

 

圆环面(Torus)是平面上一个圆绕平面上与圆不相交的直线旋转一周而形成的旋转曲面。

圆环面看上去像一个手镯的表面或汽车轮胎的内胎。

 

yOz面上的圆(y-b)^2+z^2=a^2 (b>a) 绕 z 轴旋转一周得到圆环面。

圆的参数方程是:x=0, y=b+a*cos(t), z=a*sin(t)

圆环面的参数方程是:

圆环面 - Calculus - 高等数学

圆环面 - Calculus - 高等数学

with(plots):
a:=1:b:=3:
x:=t->0: y:=t->b+a*cos(t): z:=t->a*sin(t):
u:=t->sqrt(x(t)^2+y(t)^2):
t0:=0:t1:=2*Pi:
qumian:=plot3d([u(t)*cos(theta),u(t)*sin(theta),z(t)],t=t0..t1,theta=0..2*Pi,scaling=constrained):
quxian:=spacecurve([x(t),y(t),z(t)],t=t0-0.3..t1+0.3,thickness=4,color=red):
display(qumian,quxian,axes=none,grid=[54,76],lightmodel=light2);

 

圆环面 - Calculus - 高等数学

 

with(plots):with(plottools):
b:=3:a:=1:
x:=t->b+a*sin(t):y:=t->0:z:=t->a*cos(t):
u:=t->sqrt(x(t)^2+y(t)^2):
t0:=0:t1:=2*Pi:
Muxian:=spacecurve([x(t),y(t),z(t)],t=t0..t1,thickness=3,color=red):
K:=60:for i from 1 to K do ti:=i*4*Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta+Pi/2),u(t)*sin(theta+Pi/2),z(t)],t=t0..t1,theta=0..ti,style=patch):
muxian[i]:=rotate(Muxian,ti+Pi/2,[[0,0,0],[0,0,1]]) od:
qumian:=display(seq(qumian[i],i=1..K),insequence=true):
muxian:=display(seq(muxian[i],i=1..K),insequence=true):
display(qumian,muxian,axes=normal,lightmodel=light1,scaling=constrained);

 

也可以通过正交变换实现圆绕 z 轴的旋转,相应的圆环面的参数方程为:

圆环面 - Calculus - 高等数学

圆环面 - Calculus - 高等数学

 

with(plots):
R:=3:r:=0.8:
x:=(t,s)->(R+r*sin(t))*cos(s):
y:=(t,s)->(R+r*sin(t))*sin(s):
z:=(t,s)->r*cos(t):
K:=20: for i from 1 to K do ti:=i*2*Pi/K:
qumian[i]:=plot3d([x(t,s),y(t,s),z(t,s)],t=0..2*Pi,s=0..ti,color=green,axes=normal,lightmodel=light1) od:
display(seq(qumian[i],i=1..K),insequence=true,scaling=constrained);

 

 

yOz面上的圆 y^2+(z-b)^2=a^2 (b>a) 绕 y 轴旋转一周得到圆环面:

圆环面 - Calculus - 高等数学

 

with(plots):
R:=3:r:=0.8:
x:=(t,s)->(R+r*cos(t))*sin(s):
y:=(t,s)->r*sin(t):
z:=(t,s)->(R+r*cos(t))*cos(s):
K:=40: for i from 1 to K do ti:=i*2*Pi/K:
qumian[i]:=plot3d([x(t,s),y(t,s),z(t,s)],t=0..2*Pi,s=0..ti):
dongyuan[i]:=spacecurve([(R+r*sin(t))*sin(ti),r*cos(t),(R+r*sin(t))*cos(ti)],t=0..2*Pi,color=red,thickness=3) od:
qumian:=display(seq(qumian[i],i=1..K),insequence=true):
dongyuan:=display(seq(dongyuan[i],i=1..K),insequence=true):
display(qumian,dongyuan,axes=normal,lightmodel=light1,scaling=constrained);

 

圆环面 - Calculus - 高等数学

 

with(plots):
R:=3:r:=0.8:
x:=(t,s)->(R+r*cos(t))*sin(s):
y:=(t,s)->r*sin(t):
z:=(t,s)->(R+r*cos(t))*cos(s):
qumian:=plot3d([x(t,s),y(t,s),z(t,s)],t=0..2*Pi,s=0..2*Pi,grid=[20,30],color=green,lightmodel=light4):
yuan:=spacecurve([0,r*cos(t),R+r*sin(t)],t=0..2*Pi,color=red,thickness=3):
display(qumian,yuan,axes=normal,scaling=constrained);

 

以下是用Mathematica绘制的圆环面:

圆环面 - Calculus - 高等数学

 

圆环面 - Calculus - 高等数学

Mathematica程序: 
R=3;r=1;
Qumian=ParametricPlot3D[{(R+r Cos[t])Sin[u],(R+r Cos[t])Cos[u],r Sin[t]},{t,0,2Pi},{u,0,2Pi},Mesh->{10,3},MeshShading->{{Cyan,Green},{Yellow,Red}}];
Show[Qumian,PlotRange->{{-4,4},{-4,4},{-1,1}},Boxed->False,Axes->False,ViewPoint->{7,5,4}]

 

圆环面 - Calculus - 高等数学

 

 

返回数学图形目录

 

 

 

Updated:14 JULY 2010

  评论这张
 
阅读(4475)| 评论(2)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018