Scarabaeus Curve

Author

Eric W. Weisstein
February 1, 2018

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

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

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

Equation

TrigExpand[Cos[2θ]]

{eqn}=Factor/@GroebnerBasis[{r==b(Cos[θ]^2-Sin[θ]^2)-a Cos[θ],x==r Cos[θ],y==r Sin[θ],Sin[θ]^2+Cos[θ]^2==1},{x,y},{r,Cos[θ],Sin[θ]}]

Expand[(x^2+y^2)(x^2+y^2+a x)^2-b^2(x^2-y^2)^2]

Plot

r[a_,b_][θ_]:=b Cos[2θ]-a Cos[θ]

V5

<<Graphics`Graphics`

Show[GraphicsArray[
PolarPlot[#,{θ,-Pi,Pi},
Ticks->None,
PlotStyle->Red,
PlotLabel->TraditionalForm[#],
DisplayFunction->Identity
]&/@{
2Cos[2θ]-3Cos[θ],
3Cos[2θ]-2Cos[θ],
Cos[2θ]-Cos[θ]
}
]]

V6

PolarPlot[r[##][θ],{θ,0,2π}]&@@@{{2,3},{3,2},{1,1},{0,1},{1,0},{1,.1}}

SingularPoints[(x^2+y^2)(x^2+y^2+a x)^2-b^2(x^2-y^2)^2,{x,y}]

Function[{a,b},RegionPlot[(x^2+y^2)(x^2+y^2+a x)^2<b^2 (x^2-y^2)^2,{x,-5,1.2},{y,-3.5,3.5},PlotPoints->50,Epilog->{Red,PointSize[.02],Point[{{0,0},{-(a/2),-(a/2)},{-(a/2),(a/2)}}]}]]@@@{{2,3},{3,2},{1,1},{0,1},{1,0},{1,.1}}

Function[{a,b},RegionPlot[(x^2+y^2)(x^2+y^2+a x)^2<b^2(x^2-y^2)^2||(-a/2<x<0&&Abs[y]<a/2),{x,-5,1.2},{y,-3.5,3.5},PlotPoints->50]]@@@{{2,3},{3,2},{1,1}}

Properties

curve=(b Cos[2 t]-a Cos[t]){Cos[t],Sin[t]};

ArcLengthFunction

ArcLength[r[a,b][t],t,Assumptions->(a|b)∈Reals]//Timing

ArcLength

ArcLength[r[a,b][t],{t,0,2π},Assumptions->(a|b)∈Reals]//Timing

Area

Assuming[(a|b)∈Reals,Integrate[Boole[(x^2+y^2)(x^2+y^2+a x)^2<b^2(x^2-y^2)^2||(-a/2<x<0&&Abs[y]<a/2)],{x,-∞,∞},{y,-∞,∞}]]//Timing

(area=Integrate[Boole[(x^2+y^2)(x^2+y^2+a x)^2<b^2(x^2-y^2)^2||(-a/2<x<0&&Abs[y]<a/2)],{x,-∞,∞},{y,-∞,∞}])//Timing

AreaInertiaTensor (signed)

Assuming[a>0&&b>0,AreaInertiaTensor[curve,{t,0,2π}]]//Timing

Centroid (signed)

Assuming[a>0&&b>0,Centroid[curve,{t,0,2π}]]//Timing

Curvature

Parametric

FullSimplify[Curvature[r[a,b][t],t],(a|b)∈Reals]

Polar

FullSimplify[Curvature[b Cos[2 q]-a Cos[q],q],(a|b)∈Reals]

Implicit

FullSimplify[ImplicitCurvature[eqn,{x,y}],(a|b)∈Reals]

SignedArea

Assuming[a>0&&b>0,Area[curve,{t,0,2π}]]//Timing

Assuming[(a|b)∈Reals,Integrate[Boole[(x^2+y^2)(x^2+y^2+a x)^2<b^2(x^2-y^2)^2],{x,-∞,∞},{y,-∞,∞}]]//Timing

Slope

Slope[(b Cos[2 t]-a Cos[t]){Cos[t],Sin[t]},t]//FullSimplify

Slope[b Cos[2 q]-a Cos[q],q]//FullSimplify

Slope[(x^2+y^2) (x^2+y^2+a x)^2==b^2 (x^2-y^2)^2,{x,y}]//FullSimplify

SpecialAffineCurvature

FullSimplify[SpecialAffineCurvature[curve,t],a>0&&b>0&&0<t<2π]

Tangential Angle

FullSimplify[TangentialAngle[r[a,b][t],t],a>0&&b>0]

Vector Properties

parm=(b Cos[2 t]-a Cos[t]){Cos[t],Sin[t]};
assum=a>0&&b>0&&0<t<2π;
xform={Abs[x_]^(n_/;Mod[n,2]==0):>x^n,Sqrt[x_^(n_/;Mod[n,2]==0)]:>Abs[x]^(n/2)};

VectorLength

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

NormalVector

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

TangentVector

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