Note

This Mathematica notebook is from the WWW project A Visual Dictionary of Special Plane Curves. Copyright © 1995-2000 by Xah Lee. (http://xahlee.org/)

Packages and Initializations

Needs["ParaPlot`"]
(*MathSource Item:0207-986*)

Needs["PlaneCurveFormulas`"]


Needs["PlaneCurveGenerator`"]

Needs["Graphics`ImplicitPlot`"]
(*MathSource Item:0200-529*)

Limacon of Pascal

description

Limacon of Pascal describe a family of curves. It is a special case of Epitrochoid (see Epitrochoid) and it can be defined as the Conchoid of a Circle. (see Conchoid).

Cardioid and Trisectrix are special cases of Limacon of Pascal. (See Cardioid and Trisectrix)

Limacon of Pascal as a Conchoid of a circle:

(1) Let there be a circle of radius r and a point O on the circle.
(2) Draw a line passing O and any point P on the Circle.
(3) On this line, mark points Q1 and Q2 such that distance[P,Q1] == distance[P,Q2] == k, where k is a constant.
(4) Repeat this for other P. The locus of Q is the Limacon of Pascal.

Parametric formula: (k + 2 r Cos[t]) {Cos[t], Sin[t]}.
Polar Equation: r == (k + 2 r Cos[t]).
Cartesian Equation: (x^2 + y^2 -2 r x)^2 == k^2 (x^2 + y^2)

If 2 r > k, there is an inner loop.
If 2 r == k, there is a cusp. (it is a Cardioid)
If 2 r <= k, it is a dimpled limacon.
If r == k, it is the Trisectrix. (see Trisectrix)

Clear[myList, myStyle]; 
myList = 
      Table[LimaconOfPascal[1, k][t], {k,  .5, 4, (3.5/4)}]; 
myStyle = 
      Table[{Thickness[ .007], Hue[i,  .9,  .9]}, {i, 0, 1, 
          (1/Length)[myList]}]; 
ParaPlot[myList, {t, 0, 2 π}, PlotStyle -> myStyle, 
      AspectRatio -> Automatic, Axes -> None]; 
Clear[myList, myStyle];

Clear[k]; k = 1; (* r is 1 here *)
LimaconOfPascalGenerator2[ k, {0, 5.5, .1},LastFrameOnly->True];
Clear[k]; 0;

Clear[r, k]; r = 1; k = 1; 
ParaPlot[r {Sin[t], Cos[t]}, {t, 0, 2 π, ((2 π)/30)}, 
      ConchoidSetting -> {{-r, 0}, {-1, 1} k}, 
      PlotDot -> False, AspectRatio -> Automatic]; 
Clear[r, k];

Clear[r,k]; r = 1; k = 1;

Off[Power::infy, Infinity::indet,ParametricPlot::pptr];
ParametricPlot[
	Evaluate@ Conchoid[ r {Sin[t],Cos[t]}, {-r,0},{-k,k}],
	{t, 0, 2 Pi},
	PlotStyle->{Hue[0], Hue[.65]},
	AspectRatio->Automatic
];
On[Power::infy, Infinity::indet,ParametricPlot::pptr];
Clear[r,k];

Clear[r,k]; r = 1; k = 1;

ImplicitPlot[(x^2 + y^2 -2 r x)^2 == k^2 (x^2 + y^2), {x,-3,5}];

Clear[r,k];

Limacon of Pascal as an Epitrochoid

Limacon of Pascal as an Epitrochoid:
(1) Let there be a point Q fixed to a circle B. (it may be inside or outside of this circle)
(2) Let circle B roll around a fixed circle A without slipping.
(3) Circle B and A are the same size.
(4) The trace of Q is Limacon of Pascal.

Let radius of circle B and A be r, and Let the distance from the tracing point Q to the center of circle B be h.

Parametric formula:
{2 r Cos[t] + h Cos[2 t], 2 r Sin[t] + h Sin[2 t]}.
Period: 2 Pi.

If r < h, there is an inner loop.
If r == h, there is a cusp. (it is a Cardioid)
If r > h, it's a dimpled Limacon.

LimaconOfPascalGenerator[3, LastFrameOnly -> True, 
      Ticks -> {Range[-5, 5], Range[-5, 5]}];

Limacon defined as an Epitrochoid with radius k and distance r is equivalent to Limacon as a Conchoid of a circle of radius r and offset 2 k.

Clear[r, k]; r = 3; k = 1; 
ParaPlot[{Epitrochoid[k, k, r][t], LimaconOfPascal[r, 2 k][
          t]}, {t, 0, 2 π}, PlotStyle -> {Hue[0], Hue[ .65]}, 
      AspectRatio -> Automatic]; 
Clear[r, k];

Limacon of Pascal is the Pedal of a circle with respect to any point in the plane.

envelope of circles

It is the Envelope of Circles with centers on a given circle C and each circle passing through a fixed point P in the plane.

Clear[circles, p, center]; 
p = {-2, 0}; 
circles = 
      Table[Circle[
          center = {Cos[i], 
              Sin[i]}, (Sqrt[(center - p) . (center - p)])], {i, -π, π, ((2 π)/30)}]; 
Show[Graphics[{Hue[Random[], 1,  .7], circles}], 
      AspectRatio -> Automatic, Axes -> True]; 
Clear[circles, p, center];

Do[p = {j, 0}; 
      circles = 
        Table[Circle[
            center = {Cos[i], 
                Sin[i]}, (Sqrt[(center - p) . (center - p)])], {i, -π, π, ((2 π)/30)}]; 
      Show[Graphics[{Hue[ .3,  .7,  .6], circles}], 
        AspectRatio -> Automatic], {j, -2, 0,  .05}]

Inverse of Conics

Limacon of Pascal is the Inverse of Conic sections with respect to a focus.

Do[
	ParaPlot[ Conics[i][t], {t,0, 2 Pi, 2 Pi/40},
		InversionCircle->{{0,0},1},
		DotStyle->{{Hue[0],PointSize[.012]}},
		CurveColorFunction->{Hue[.65,.8,.8]&},
		CurveStyle->{Thickness[.007]},
		PlotDot->False,
		AspectRatio->Automatic,
		PlotRange->{{-1,1}5,{-1,1}4}.7
	],
	{i,.5,1.8,.05}
]

ParaPlot[ Conics[.7][t], {t,0, 2 Pi, 2 Pi/40},
	InversionCircle->{{0,0},1},
	DotStyle->{{Hue[0],PointSize[.012]}},
	AspectRatio->Automatic
];

ParaPlot[ Conics[1][t], {t,-3,3, 2 Pi/(40)},
	InversionCircle->{{0,0},1},
	DotStyle->{{Hue[0], PointSize[.012]}},
	PlotRange->{{-5,2.5},{-3.5,3.5}},
	AspectRatio->Automatic
];

ParaPlot[ Conics[2][t],
	{t,-3.14,3.14, 2 Pi/(40)},
	InversionCircle->{{0,0},1},
	DotStyle->{{Hue[0], PointSize[.012]}},
	PlotRange->{{-1.5,3.5},{-3,3}},
	AspectRatio->Automatic
];

Interchnaging of parameters

Limacon of Pascal as
Conchoid: radius r and offset k is equivalent to

* epitrochoid with parameters {1,1,2 r/k}

* pedal of a circle with radius k and pedal point 2 r distant from the center of circle.

* Envelope of circles with centers on a base circle B of radius k and each passing a point 2 r distant from the center of base circle B.

Clear[r,d,k];

r = 3; k = 2;

(* as a conchoid of a circle*)
ParaPlot[ r {Sin[t], Cos[t]}, {t, 0, 2 Pi, 2 Pi/40},
	ConchoidSetting->{ { -r, 0} , {-k,k}},
	CurveColorFunction->{Hue[.7]&},
	PlotDot->False,	AspectRatio->Automatic,
	Ticks->{Range[-5,5], Range[-5,5]}
];

(* as pedal of a circle *)
ParaPlot[ k {Sin[t], Cos[t]}+{r,0}, {t, 0, 2 Pi, 2 Pi/60},
	PedalPoint->{-2 r,0}+{r,0}, PlotCurve->False,
	PlotDot->False, AspectRatio->Automatic,
	Ticks->{Range[-5,5], Range[-5,5]}
];

EpitrochoidGenerator[{1,1, 2 r/k},
	LastFrameOnly->True, NumberOfFrames->80,
	PlotRange->All,
	Ticks->{Range[-5,5], Range[-5,5]}
];

Clear[ circles, p, center];
p = {-2 r,0};
circles =
	Table[
		Circle[
			center = k {Cos@i, Sin@i},
			Sqrt[(center -p).(center-p)]
		], 
		{i, -Pi, Pi, 2 Pi/30}
	];
Show[ Graphics[ {Hue[0], circles, Hue[.7],Circle[{0,0},r]}],
	AspectRatio->Automatic, Axes->True,
	Ticks->{Range[-5,5], Range[-5,5]}
];
Clear[ circles, p, center];

Limacon Graphics Gallery

a artistic rendering of limacons wth alternating black and white filling.

Clear[gp]
gp = (
	(First@ ParametricPlot[ #, {t,0, 2 Pi},DisplayFunction->Identity]& /@
		(Reverse@ Table[ LimaconOfPascal[1,k][t] , {k, .5, 4, 3.5/4}] )
	) /. Line->Polygon
);

Take[ Flatten@ Table[ {GrayLevel[0], GrayLevel[1]}, {Length@ gp}],
	Length@ gp
];

Show[
	Graphics@ Transpose[{%, gp}],
	Background->GrayLevel[1],
	AspectRatio->Automatic
];