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`"]

Illustration of the evolute of a 5-fold hypocycloid curve

curve1 = 
        Rotate[Hypotrochoid[1, (2/5),  .13][
            t], -(π/2)];
curve2 = Simplify@Evolute[curve1, t];
tMin = 0.00001;
tMax = 4*Pi/5;
tStep = (tMax - tMin)/15;

curveGP = (Cases[#, _Line, {1, -1}] &)@
          ParametricPlot[Evaluate@curve1, {t, tMin, tMax}, 
            AspectRatio -> Automatic];

curveGP2 = (Cases[#, _Line, {1, -1}] &)@
          ParametricPlot[Evaluate@curve1, {t, tMax, tMax*5}, 
            AspectRatio -> Automatic];

tangentCircleRadiusGP = (Cases[#, _Line, {1, -1}] &)@
          ParaPlot[curve1, {t, tMin, tMax, tStep}, PlotDot -> False, 
            PlotEvolute -> True, AspectRatio -> Automatic, 
            PlotCurve -> False];

tangentCircleRadiusGP2 = (Cases[#, _Line, {1, -1}] &)@
          ParaPlot[curve1, {t, tMax, tMax*5, tStep}, PlotDot -> False, 
            PlotEvolute -> True, AspectRatio -> Automatic, 
            PlotCurve -> False];

\(\(\(
\)\(evoluteGP = 
        First@ParametricPlot[Evaluate@curve2, {t, tMin, tMax}, 
            AspectRatio -> Automatic];\)\)\)

\(\(\(
\)\(
\)\(evoluteGP2 = 
        First@ParametricPlot[Evaluate@curve2, {t, tMin + tMax, tMax*5}, 
            AspectRatio -> Automatic];\)\)\)

randomColor := RGBColor[Random[], Random[], Random[]];

Show[
        Graphics[{{randomColor, tangentCircleRadiusGP}, {randomColor, 
              tangentCircleRadiusGP2}, 
            Thickness[ .004], {randomColor, curveGP}, {randomColor, 
              curveGP2}, {randomColor, evoluteGP}, {randomColor, 
              evoluteGP2}}], AspectRatio -> Automatic, 
        DisplayFunction -> $DisplayFunction];