Epicycloid and Hypocycloid

Double generation

Visual Verification

Hypotrochoid[a_,b_,h_]:=Function[{t},{(a-b) Cos[t]+h Cos[-(a-b)/b t],(a-b) Sin[t]+h Sin[-(a-b)/b t]}];
{p,q}={-5,4};
ParametricPlot[Evaluate@{Hypotrochoid[1,p/q,p/q][p*t],Hypotrochoid[1,1-p/q,1-p/q][(-p+q)*-t]+{1,1}*0.1},{t,0,5},AspectRatio->Automatic,Axes->False,Prolog->{Text[DisplayForm@FractionBox[p,q],Scaled[{1,1}],{1,1}]},PlotStyle->{Hue[.7],Hue[0],Hue[.35,.8,.6]}]

Algebraic proof

I want to prove that every epicycloid with radius b is a hypocycloid with radius b+1. The following proof is not satisfactory because the sign does not match. Is there a rotation or substitution for t that makes the equation match?

Simplify@Epitrochoid[1,b,b][t]==Simplify@Hypotrochoid[1,(b+1),(b+1)][-t*(b+1)/b]

In the following, I want to show that every hypocycloid p/q with p/q<0 is also a hypocycloid 1-p/q. If p/q>0, then the following proves the double generation of epi/hypocycloids. The proof is not complete.

{Hypotrochoid[1,n,n][t*n],Simplify@Hypotrochoid[1,1-n,n][-t*(n-1)]/n}

The following are a method of proof from Robert C. Yates showing that every hypocycloid p/q with p/q<0 is also a hypocycloid 1-p/q. By such and such substitution, we have a result that the sign of the contstant c does not change the equation, so hypocycloids with radius (1+-c)/2 are equal, showing that the radius whoes sum equal to 1 is the same hypocycloid.

Hypotrochoid[1,(1+c)/2,(1+c)/2][(1+c)/c*t]==(Hypotrochoid[1,(1+c)/2,(1+c)/2][(1+c)/c*t]/.c->-c)//Simplify

Evolute is equal to itself

The evolute of an epi/hypocycloid is equal to itself. The evolute is scaled and rotated such that cusps of one curve coincides with the vertexes of the other.

Visual verification

Here is a plot of an arbitrary epicycloid and its evolute. If b is negative, then hypocycloid is plotted.

b=-5/7;
curves={Epitrochoid[1,b,Abs@b][t],Evolute[Epitrochoid[1,b,Abs@b][t],t]};
ParaPlot[curves,{t, 0, 2*Pi*Numerator@b,Pi/4},PlotDot->True,PlotParameterValue->True,PlotRange->All,Axes->True,AspectRatio->Automatic,PlotStyle->{Hue[.7], Hue[0],Hue[.35,1,.7]}];

Proof by algebra

The following proof are not satisfactory because the sign mismatch.

Clear[b];
Simplify@(#*(1+2*b)&)@Evolute[Epitrochoid[1,b,b][t],t]
Simplify@(Epitrochoid[1,b,b][t])

The following proves a special case when the rolling radius has the form 1/n.

Clear[b];
Simplify@(#/.t->t+(2*Pi/(b*2))&)@(Rotate[#,-2*Pi/(b*2)]&)@
        Evolute[Epitrochoid[1,1/b,1/b][t],t]==Simplify@(Epitrochoid[1,1/b,1/b][t]*1/(1+2/b))

some illustration

The following plots 4 epi/hypocycloids and their evolute.

Show@GraphicsArray@(Partition[#,2]&)@((With[{b=#,p=Numerator@Abs@#,q=Denominator@#},ParametricPlot[Evaluate@{Epitrochoid[1,b,b][t],Evolute[Epitrochoid[1,b,b][t],t]},{t,0,2*Pi*p},AspectRatio->Automatic,PlotRange->All,Axes->False,PlotStyle->{Hue[.7],Hue[0],Hue[.35,.8,.6]},Prolog->{If[b<0,{Text[DisplayForm@FractionBox[-p,q],Scaled[{0,1}],{-1,1}],Text[DisplayForm@FractionBox[-(q-p),q],Scaled[{1,1}],{1,1}]},{Text[DisplayForm@FractionBox[p,q],Scaled[{1,1}],{1,1}],Text[DisplayForm@FractionBox[-(p+q),q],Scaled[{0,1}],{-1,1}]}]},DisplayFunction->Identity]]&)/@(Sort@{3/5,1,2,-2/5}));

Pedal and Radial

The pedal curve of an epi/hypocycloid (with signed parameter b) with respect to its center is equal to its radial curve scaled by s:=-(1+2*b)^2/(4*b*(1+b)).

Visual verification

b=-4/5;
curves={Pedal[#,t,{0,0}],Radial[#,t]*-(1+2*b)^2/(4*b*(1+b))}&@Epitrochoid[1,b,Abs@b][t];
ParametricPlot[Evaluate@curves,{t,0,2*Pi*Numerator@Abs@b},AspectRatio->Automatic,PlotStyle->{Hue[.7],Hue[0],Hue[.35,.8,.6]}];

Algebraic proof

Clear[n,b,p,q];
Pedal[Epitrochoid[1,b,b][t],t,{0,0}]==Radial[Epitrochoid[1,b,b][t],t]*-(1+2*b)^2/(4*b*(1+b))

more illustration

The following shows the radial and evolute.

n=5;
pedalPoint={0,0};
parameterList=Table[t,{t,0,2*Pi/(2*Abs@n),2*Pi/(2*Abs@n)/20}];
ParaPlot[Hypocycloid[n][t],{t,0,2*Pi},parameterList,AspectRatio->Automatic,PlotEvolute->True,PlotRadial->True,LineStyle->Table[Hue[i],{i,0,1,1/(Length@parameterList-1)}],CurveColorFunction->{GrayLevel[0]&},Axes->False,PlotRange->{{-.8,1.4},{-.7,1.1}},Epilog->First@ParametricPlot[Evaluate@Radial[Hypocycloid[n][t],t],{t,0,2*Pi},DisplayFunction->Identity,PlotStyle->Hue[.35,1,.6]]];

n=4;
pedalPoint={0,0};
parameterList=Table[t,{t,0,2*Pi/(2*Abs@n),2*Pi/(2*Abs@n)/20}];
ParaPlot[Epicycloid[n][t],{t,0,2*Pi},parameterList,AspectRatio->Automatic,PlotEvolute->True,PlotRadial->True,LineStyle->Table[Hue[i],{i,0,1,1/(Length@parameterList-1)}],CurveColorFunction->{GrayLevel[0]&},Axes->False,PlotRange->{{-1,1.55},{-.9,1.55}},Epilog->First@ParametricPlot[Evaluate@Radial[Epicycloid[n][t],t],{t,0,2*Pi},DisplayFunction->Identity,PlotStyle->Hue[.35,1,.6]]];

Pedal of epi/hypocycloid

The pedal of an epi/hypocycloid (with sigend parameter b) with respect to its center is equal to the rose r==Cos[1/(-1-2*b)*theta].

plot

b=5/3;
curves={#,Pedal[#,t,{0,0}]}&@Epitrochoid[1,b,Abs@b][t];
ParaPlot[Evaluate@curves,{t,0,2*Pi*Numerator@Abs@b},AspectRatio->Automatic,PlotStyle->{Hue[.7], Hue[0],Hue[.35,1,.7]}];

Algebraic proof

Clear[b];
(Pedal[#,t,{0,0}]&)@Epitrochoid[1,b,b][t*(2*b)/(2*b+1)]

Clear[b];
(Pedal[#,t,{0,0}]&)@Hypotrochoid[1,b,b][-t*(2*b)/(2*b-1)]

General pedal of epi/hypocycloid

n=8;
pedalPoint={0,0};
ParaPlot[Hypocycloid[n][t],{t,0,2*Pi},Table[t,{t,0,2*Pi/(2*Abs@n),2*Pi/(2*Abs@n)/20}],AspectRatio->Automatic,PedalPoint->pedalPoint,LineStyle->{Hue[.7]},CurveColorFunction->{GrayLevel[0]&},Axes->False,Epilog->First@ParametricPlot[Evaluate@Pedal[Hypocycloid[n][t],t,pedalPoint],{t,0,2*Pi},DisplayFunction->Identity]];