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

(* Minimum packages you need available on MathSource *)

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

Needs["PlaneCurveFormulas`"]


Needs["PlaneCurveGenerator`"]

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

Involute

Description

Involute is a method to derive a new curve based on a directioned curve and a point on the curve. It is the roulette of a selected point on a line that rolls (as a tangent) upon the curve. 

Step by step description: 

    1.Given a curve (a unit circle for example) and a point O on the curve. 
    2.Imagine a point P on the curve starting from O and moving through the curve. 
    3.At each moment in time, let there be a tangent at P. 
    4.Mark a point Q on this tangent such that the arc length from O to P is equal the line
       length P to Q. (there are two such points, take the one that lies "behind" P) 
    5.The locus of Q is the involute of the given directioned curve with respect to the point O
       on the curve.

Involute of a circle

ParaPlot[{Sin[t], -Cos[t]}, {t, 0, 2 π, ((2 π)/30)}, 
      PlotInvolute -> True, AspectRatio -> Automatic, 
      PlotRange -> All, Axes -> True];

involute of a circle animation

The following code genertes an animation showing the process of generating involute of a circle.
Change the increment for smoothness.

Clear[increment, involuteGP]
increment = ((2 π)/10); 
Do[involuteGP = 
        First[ParaPlot[{Sin[t], -Cos[t]}, {t, 0, 2 π}, 
            Range[0, i, increment], PlotInvolute -> True, 
            PlotCurve -> False, PlotDot -> False, 
            AspectRatio -> Automatic, PlotRange -> All, 
            Axes -> False, Ticks -> None, 
            DisplayFunction -> Identity]]; 
      involuteGP = 
        DeleteCases[
          involuteGP, _RGBColor | _Hue | _PointSize | _Thickness, ∞]; 

Show[
        Graphics[{{Hue[0], 
              Line[Last[
                    involuteGP] /. {Point[p_] -> 
                      p}]}, {Hue[ .7], Thickness[ .008], 
              Circle[{0, 0}, 1]}, {Hue[ .7], Thickness[ .004], 
              First[involuteGP]}, {Hue[0], PointSize[ .02], 
              involuteGP[[-1, -1]]}}], AspectRatio -> Automatic, 
        PlotRange -> {{-6.5, 3.2}, {-1.9, 5}}, 
        Axes -> True, 
        Ticks -> {{-6, -4, -2, 2}, {-2, 2, 4}}], {i, 0, 
        2 π, increment}]

ParaPlot[
	{	Involute[{ Cos[t], Sin[t]}, t, 0],
		Rotate[ Involute2[{ Cos[t], Sin[t]}, t, 0], -1/2 Pi]},
	{t, 0, 2 Pi},
	PlotDot->False,
	PlotStyle->{Hue[.75], Hue[0],Hue[.35,1,.7]},
	AspectRatio->Automatic,
	PlotRange->All
];

Involute of a Sinusoid

Clear[involuteSin, involuteSinGP]
involuteSin = Involute[{t, Sin[t]}, t, 0]; 
involuteSin = 
      involuteSin /. Integrate -> 
          NIntegrate; 
involuteSinGP = 
        First[ParaPlot[involuteSin, {t, 0, 3 π}, PlotDot -> False, 
            CurveStyle -> {Thickness[0.01]}, 
            CurveColorFunction -> {Hue[0, #1, 0.9] &}, 
            PlotRange -> All]];

ParaPlot[{t, Sin[t]}, {t, 0, 3 π, ((3 π)/(3 20))}, 
        PlotInvolute -> True, PlotDot -> False, 
        DotStyle -> {{Hue[0, 0, 0], PointSize[0.007]}}, 
        LineStyle -> {Hue[0.18, 0.7, 1]}, 
        CurveStyle -> {Thickness[0.009]}, 
        Ticks -> {Range[-5 π, 5 π, π], 
            Range[-20, 20, 2]}, AspectRatio -> Automatic, 
        PlotRange -> {{-2.6, 3 π + 0.3}, {-6, 8.5}}, 
        Prolog -> involuteSinGP];

Properties

Involutes of a given curve are Parallel to each other.

two involutes of an ellipse

Clear[involute1GP, involute2GP]
involute1GP = 
        First[ParaPlot[Ellipse[ .7][t], {t, 0, 2 π}, 
            Range[0, 5, (5/35)], PlotInvolute -> True, 
            PlotDot -> False, PlotCurve -> True, 
            LineStyle -> {Hue[0.1]}, DotStyle -> {PointSize[ .01]}, 
            DisplayFunction -> 
              Identity]];

involute2GP = 
        First[ParaPlot[Ellipse[ .7][t], {t, 0, 2 π}, 
            Range[1, 5, (5/35)], PlotInvolute -> True, 
            PlotDot -> False, PlotCurve -> False, 
            DisplayFunction -> Identity]];
involute2GP = Cases[involute2GP, Point[__], -1];
Show[Graphics[{involute1GP, PointSize[ .01], involute2GP}], 
        AspectRatio -> Automatic, Axes -> False, 
        PlotRange -> All, 
        DisplayFunction -> $DisplayFunction];
Clear[involute1GP, involute2GP]

Graphics Gallery

A plot of several Involutes of the same circle.

Clear[ myList ];
myList = Table[ Involute[{ Cos[t], Sin[t]}, t, i],
	{i,-1/2 Pi, 3/2 Pi, 2 Pi/8}];

ParaPlot[ myList, {t, -1/2 Pi, 3/2 Pi},
	PlotStyle->Table[ Hue[i], {i,0, 1, 1/Length@ myList}],
	AspectRatio->Automatic,
	PlotRange->All,
	Axes->False,
	Prolog->{Hue[0,0,0],Circle[{0,0},1]}
];
Clear[myList];

The Parallels of an Involute of the circle.

ParaPlot[ Involute[{ Cos[t], Sin[t]}, t, 0], {t, 0, 2 Pi, .1},
	ParallelCurveOffset->Range[0, 2 Pi, 2 Pi/8],
	PlotDot->False, AspectRatio->Automatic,
	PlotRange->All
];

An interesting case of involute.

ParaPlot[
	{Cos[t], Sin[t]^2},
	{t, 0, 6,.1},
	PlotInvolute->True,
	AspectRatio->Automatic,
	PlotRange->All
];

Animations

(* Involute of Sinusoid animation *)
Clear[myList]
myList = Range[0, 2 Pi, 2 Pi/(2 100)];

Do[
	ParaPlot[{t,Sin[2 t]},
		{t, 0, 2 Pi}, Take[ myList, i],
		PlotInvolute->True,
		PlotDot->False, AspectRatio->Automatic,
		PlotRange->{{-3.98, 6.53}, {-9.84, 7.48}}
	];,
	{i,1, Length[myList], 10}
];

Clear[myList]