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

徐小湛的博客

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

 
 
 

日志

 
 

心形线  

2009-08-03 17:02:20|  分类: 高等数学图形动画 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

心形线(Cardioid)因其形状像一个心而得名。

 

心形线的极坐标方程是

心形线 - Calculus - 高等数学

 

心形线 - Calculus - 高等数学

 

 

with(plots):a:=1:
curve:=polarplot(a*(1-cos(theta)),theta=0..2*Pi,thickness=2):
display(curve,scaling=constrained,tickmarks=[0,0]);

 

 

心形线 - Calculus - 高等数学

 

with(plots):
r:=t->1-cos(t):
K:=60:for i from 1 to K do ti:=i*2*Pi/K:
curve[i]:=polarplot(r(t),t=0..ti,thickness=3):
xian[i]:=plot([[0,0],[r(ti)*cos(ti),r(ti)*sin(ti)]],color=blue,thickness=3) od:
curve:=display(seq(curve[i],i=1..K),insequence=true):
xian:=display(seq(xian[i],i=1..K),insequence=true):
display(curve,xian,scaling=constrained,tickmarks=[2,2]);

 

 

另一个心形线的极坐标方程是

心形线 - Calculus - 高等数学

 

心形线 - Calculus - 高等数学

with(plots):a:=1:
curve:=polarplot(a*(1+sin(theta)),theta=0..2*Pi,thickness=2):
display(curve,scaling=constrained,tickmarks=[0,0]);


四个心形线

(图片来源:http://upload.wikimedia.org/wikipedia/commons/6/63/CardioidsLabeled.PNG

心形线 - Calculus - 高等数学

 

心形线 - Calculus - 高等数学

动画的MAPLE程序:

with(plots):
r:=t->1+cos(t):rr:=t->1+sin(t):
K:=60: for i from 1 to K do ti:=i*2*Pi/K:
curve1[i]:=polarplot(r(t),t=-Pi..ti-Pi):
curve2[i]:=polarplot(-r(t),t=-Pi..ti-Pi,color=blue):
curve3[i]:=polarplot(rr(t),t=-Pi/2..ti-Pi/2,color=green):
curve4[i]:=polarplot(-rr(t),t=-Pi/2..ti-Pi/2,color=brown) od:
curve1:=display(seq(curve1[i],i=1..K),insequence=true):
curve2:=display(seq(curve2[i],i=1..K),insequence=true):
curve3:=display(seq(curve3[i],i=1..K),insequence=true):
curve4:=display(seq(curve4[i],i=1..K),insequence=true):
display(curve1,curve2,curve3,curve4,scaling=constrained,tickmarks=[0,0],thickness=5);

 

心形线可以看成一个圆在另一个半径相同的圆上滚动时,动圆上一个点的轨迹(也就是一种特殊的圆外旋轮线(Epicycloid)):

心形线 - Calculus - 高等数学

with(plots):with(plottools):R:=1:r:=1:
x:=t->(R+r)*cos(t)-r*cos((R+r)*t/r): y:=t->(R+r)*sin(t)-r*sin((R+r)*t/r):
quxian:=plot([x(t),y(t),t=0..2*Pi],color=grey,thickness=1):
K:=100:for i from 1 to K do ti:=i*3*Pi/K: 
curve[i]:=plot([x(t),y(t),t=0..ti]):
dongyuan[i]:=circle([(R+r)*cos(ti),(R+r)*sin(ti)],r,color=blue): 
xian[i]:=plot([[(R+r)*cos(ti),(R+r)*sin(ti)],[x(ti),y(ti)]],color=brown) od: 
curve:=display(seq(curve[i],i=1..K),insequence=true): 
dongyuan:=display(seq(dongyuan[i],i=1..K),insequence=true):
xian:=display(seq(xian[i],i=1..K),insequence=true):
yuan:=circle([0,0],R,color=brown):
display(xian,curve,dongyuan,yuan,quxian,tickmarks=[4,4],scaling=constrained,thickness=3); 

 

在网上画心形线(用WolframAlpha):

http://www.wolframalpha.com/input/?i=polar+plot+1%2Bcost%2C+t%3D0..2pi 

 

返回高等数图形目录
 

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

历史上的今天

评论

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

页脚

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