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`"]
Needs["PlaneCurveFormulas`"]
Needs["PlaneCurveGenerator`"]

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

Evolute

Evolute[{xf[t],yf[t]},t]

Evolute
Evolute is a way of deriving a new curve based on a given curve.
It is the locus of the center of Osculating circles of the given curve.

The animation below shows the osculating circle and its center at different point P of an Ellipse tracing out its evolute.

Clear[curveGP, oscCircleGP, dotsGP]

curveGP = ParaPlot[ Ellipse[.8][t], {t,0, 2 Pi},
		CurveColorFunction->{{Hue[.73,1,.8],Thickness[.009]}&}
];

Do[
	oscCircleGP = ParaPlot[ Ellipse[.8][t], {t,0,0}, {i},
		PlotOsculatingCircle->True,
		PlotEvolute->True,
		PlotCurve->False, 
		LineStyle->{{RGBColor[0.999, 0.332, 0.059],Thickness[.001]}},
		DisplayFunction->Identity

	];
	dotsGP = ParaPlot[ Ellipse[.8][t], {t,0, 0},
		Range[0,i, Pi/30],
		PlotDot->False,
		PlotEvolute->True,
		PlotCurve->False,
		LineStyle->{{GrayLevel[1]}},
		DotStyle->{{PointSize[.02], Hue[0]}},
		DisplayFunction->Identity
	];
	Show[ dotsGP, curveGP, oscCircleGP,
		Axes->False,
		Ticks->{Range[-5,5],Range[-5,5]},
		AspectRatio->1,
		PlotRange->  {{-1.6,1.6},{-2.3,.9}},
		DisplayFunction->$DisplayFunction
	] , {i, 0, Pi, Pi/5}
]

The Evolute of a curve is also the Envelope of its Normals.

ParaPlot[ Ellipse[.8][t], {t,0, 2 Pi, 2 Pi/60},
	PlotDot->False, PlotEvolute->True,
	DotStyle->{Hue[0]},
	CurveColorFunction->{Hue[.65]&},
	PlotRange-> 1.1 {{-1,1},{-1,1}},
	AspectRatio->1,
	Axes->False
];

ParaPlot[ Ellipse[.8][t], {t,0, 2 Pi, 2 Pi/36},
	NormalLineLength-> 10,
	LineStyle->{{Thickness[.007], Hue[0.5,1,.7]}},
	CurveColorFunction->{Hue[.65]&},
	PlotRange-> 1.1 {{-1,1},{-1,1}},
	AspectRatio->1,
	Axes->False
];

ParaPlot[
	{ Ellipse[.8][t], Evolute[ Ellipse[.8][t], t] },
	{t, 0, 2 Pi},
	PlotRange-> 1.1 {{-1,1},{-1,1}},
	AspectRatio->1,
	PlotStyle->{Hue[.65], Hue[0]},
	Axes->False
];