心形线(Cardioid)因其形状像一个心而得名。
心形线的极坐标方程是
with(plots):a:=1:
curve:=polarplot(a*(1-cos(theta)),theta=0..2*Pi,thickness=2):
display(curve,scaling=constrained,tickmarks=[0,0]);
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]);
另一个心形线的极坐标方程是
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)
动画的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)):
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
评论