Cardioid Pedal Curve

Author

Eric W. Weisstein
June 27, 2013

This notebook downloaded from http://mathworld.wolfram.com/notebooks/PlaneCurves/CardioidPedalCurve.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/CardioidPedalCurve.html.

©2013 Wolfram Research, Inc. except for portions noted otherwise

Equation

cardioid=a (1-Cos[t]){Cos[t],Sin[t]};

par=FullSimplify[PedalCurve[cardioid,{x0,y0},t],a>0]

Cartesian

eqns={x,y}-Numerator[Together[TrigExpand[par]/.{Cos[t]->cost,Sin[t]->sint}]]

gb=Factor/@GroebnerBasis[Append[eqns,cost^2+sint^2-1],{x,y},{cost,sint},MonomialOrder->EliminationOrder]

AlgebraicDegree[gb[[1]],{x,y}]

Plot

FullSimplify[PedalCurve[cardioid,{0,0},t]]

PedalCurvePlot[cardioid,{0,0},{t,-Pi,Pi},{0,Pi,.1}]

Show[GraphicsArray[
Block[{$DisplayFunction=Identity},PedalCurvePlot[cardioid,#,{t,-Pi,Pi},{0,Pi,.2}]&/@({#,0}&/@{-1,-.5,0,.5})
]
]]

PedalCurvePlot[(1-Cos[t]){Cos[t],Sin[t]},#,{t,0.001,2 Pi},{0.001,Pi/2,.1}]&/@{{-2,0},{-1,0},{0,0},{0.5,0},{1,1},{0,1}}

Properties

par={(1/4) (-a+2 x0+3 a Cos[t]-3 a Cos[2 t]+(a+2 x0) Cos[3 t]+2 y0 Sin[3 t]),(1/4) (2 y0-2 y0 Cos[3 t]+3 a Sin[t]-3 a Sin[2 t]+(a+2 x0) Sin[3 t])};

ArcLength

(s=FullSimplify[ArcLength[par,{t,0,2π}],a>0&&(x0|y0)∈Reals])//Timing

FullSimplify[((5 (a^2))/2)+4 ((x0^2)+(y0^2))-8 a x0 ((Cos[t])^3)+(3/2) (a^2) Cos[4 t]-8 a y0 ((Sin[t])^3),Assumptions->a>0&&(x0|y0)∈Reals&&0<t<2π]//Timing

Area

Assuming[a>0&&(x0|y0)∈Reals,FullSimplify@Area[par,{t,0,2π}]]

AreaInertiaTensor

Assuming[a>0&&(x0|y0)∈Reals,FullSimplify@AreaInertiaTensor[par,{t,0,2π}]]//Timing

Centroid

Assuming[a>0&&(x0|y0)∈Reals,FullSimplify@Centroid[par,{t,0,2π}]]

Curvature

FullSimplify[Curvature[par,t],a>0&&(x0|y0)∈Reals]

(κ=Curvature[gb[[1]],{x,y}])//Timing

ByteCount/@κ

FullSimplify[κ[[1]],a>0&&(x0|y0)∈Reals]

Slope

Slope[{Cos[t] (x0 Cos[t]+Sin[t] (-y0+a Sin[t])),1/2 Sin[t] (a-2 x0 Cos[t]+a Cos[2 t]+2 y0 Sin[t])},t]//FullSimplify

Slope[8 a^3 x^3-15 a^2 x^4+6 a x^5+x^6-96 a^3 x^2 x0+180 a^2 x^3 x0-72 a x^4 x0-12 x^5 x0+384 a^3 x x0^2-720 a^2 x^2 x0^2+288 a x^3 x0^2+48 x^4 x0^2-512 a^3 x0^3+960 a^2 x x0^3-384 a x^2 x0^3-64 x^3 x0^3-42 a^2 x^2 y^2+12 a x^3 y^2+3 x^4 y^2+228 a^2 x x0 y^2-96 a x^2 x0 y^2-24 x^3 x0 y^2-240 a^2 x0^2 y^2+192 a x x0^2 y^2+48 x^2 x0^2 y^2-27 a^2 y^4+6 a x y^4+3 x^2 y^4-24 a x0 y^4-12 x x0 y^4+y^6+276 a^2 x^2 y y0-48 a x^3 y y0-12 x^4 y y0-1344 a^2 x x0 y y0+384 a x^2 x0 y y0+96 x^3 x0 y y0+960 a^2 x0^2 y y0-768 a x x0^2 y y0-192 x^2 x0^2 y y0+324 a^2 y^3 y0-48 a x y^3 y0-24 x^2 y^3 y0+192 a x0 y^3 y0+96 x x0 y^3 y0-12 y^5 y0-432 a^2 x^2 y0^2+1728 a^2 x x0 y0^2-1296 a^2 y^2 y0^2+96 a x y^2 y0^2+48 x^2 y^2 y0^2-384 a x0 y^2 y0^2-192 x x0 y^2 y0^2+48 y^4 y0^2+1728 a^2 y y0^3-64 y^3 y0^3==0,{x,y}]//FullSimplify

Slope[8 a^3 x^3-15 a^2 x^4+6 a x^5+x^6-96 a^3 x^2 x0+180 a^2 x^3 x0-72 a x^4 x0-12 x^5 x0+384 a^3 x x0^2-720 a^2 x^2 x0^2+288 a x^3 x0^2+48 x^4 x0^2-512 a^3 x0^3+960 a^2 x x0^3-384 a x^2 x0^3-64 x^3 x0^3-42 a^2 x^2 y^2+12 a x^3 y^2+3 x^4 y^2+228 a^2 x x0 y^2-96 a x^2 x0 y^2-24 x^3 x0 y^2-240 a^2 x0^2 y^2+192 a x x0^2 y^2+48 x^2 x0^2 y^2-27 a^2 y^4+6 a x y^4+3 x^2 y^4-24 a x0 y^4-12 x x0 y^4+y^6+276 a^2 x^2 y y0-48 a x^3 y y0-12 x^4 y y0-1344 a^2 x x0 y y0+384 a x^2 x0 y y0+96 x^3 x0 y y0+960 a^2 x0^2 y y0-768 a x x0^2 y y0-192 x^2 x0^2 y y0+324 a^2 y^3 y0-48 a x y^3 y0-24 x^2 y^3 y0+192 a x0 y^3 y0+96 x x0 y^3 y0-12 y^5 y0-432 a^2 x^2 y0^2+1728 a^2 x x0 y0^2-1296 a^2 y^2 y0^2+96 a x y^2 y0^2+48 x^2 y^2 y0^2-384 a x0 y^2 y0^2-192 x x0 y^2 y0^2+48 y^4 y0^2+1728 a^2 y y0^3-64 y^3 y0^3==0,{x,y}]//FullSimplify

SpecialAffineCurvature

FullSimplify[SpecialAffineCurvature[par,t],a>0&&(x0|y0)∈Reals]

TangentialAngle

FullSimplify[TangentialAngle[par,t],a>0&&(x0|y0)∈Reals]

Vector Properties

parm={1/4 (-a+2 x0+3 a Cos[t]-3 a Cos[2 t]+(a+2 x0) Cos[3 t]+2 y0 Sin[3 t]),1/4 (2 y0-2 y0 Cos[3 t]+3 a Sin[t]-3 a Sin[2 t]+(a+2 x0) Sin[3 t])};
assum=(a|x0|y0)∈Reals&&0<t<2π;
xform=Abs[x_]^(n_/;Mod[n,2]==0):>x^n;

VectorLength

Assuming[assum,FullSimplify[Norm[parm]]]/.xform

NormalVector

Assuming[assum,FullSimplify[NormalVector[parm,t]]]/.xform

TangentVector

Assuming[assum,FullSimplify[TangentVector[parm,t]]]/.xform