Cruciform

Author

Eric W. Weisstein
February 17, 2012

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

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

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

Definition

eqn[a_,b_][x_,y_]:=x^2 y^2-a^2 x^2-b^2y^2

eqn=x^2 y^2-a^2 x^2-b^2y^2;

Equation

AlgebraicDegree[eqn[a,b][x,y],{x,y}]

Plot

V5

<<Graphics`ImplicitPlot`;

With[{a=1,b=1,s=5},
ImplicitPlot[x^2 y^2-a^2 x^2-b^2y^2==0,{x,-s,s},{y,-s,s},PlotStyle->Red,
AxesOrigin->{0,0},Ticks->None,
AspectRatio->Automatic,
ImageSize->200]
]

Partition[Range[-2,2],2,1]Pi/2

With[{a=1,b=1,s=5},
Show[
ParametricPlot[{a Sec[t],b Csc[t]},Evaluate[{t,Sequence@@#}],PlotStyle->Red,
DisplayFunction->Identity]&/@
(Partition[Range[-2,2],2,1]Pi/2),DisplayFunction->$DisplayFunction,
AxesOrigin->{0,0},Ticks->None,
AspectRatio->Automatic,
PlotRange->{{-s,s},{-s,s}},
ImageSize->200
]
]

<<Graphics`ImplicitPlot`

With[{a=1,b=1},
ImplicitPlot[a^2/x^2+b^2/y^2==1,{x,-5,5},PlotStyle->Red,PlotRange->{{-5,5},{-5,5}},
PlotPoints->100,Ticks->None]
]

Show[
Block[{$DisplayFunction=Identity},
Table[ImplicitPlot[x^2 y^2-a^2 x^2-b^2y^2==0/.b->1,{x,-5,5},AspectRatio->Automatic,Ticks->None,
PlotRange->{{-5,5},{-5,5}},
PlotPoints->100,PlotStyle->Hue[a]],
{a,.05,1.1,.05}]]]

V6

With[{a=1,b=1},ParametricPlot[{a Sec[t],b Csc[t]},{t,0,π/2,π,3π/2,2π},ImageSize->Small]]

ContourPlot[eqn[##][x,y]==0,{x,-10,10},{y,-10,10},AspectRatio->Automatic,ContourStyle->Red]&@@@{{1,1},{1,3},{3,1}}

.

Equations

Implicit

Together[-(a^2/x^2+b^2/y^2-1)]

Solve[-(b^2) (x^2)-(a^2) (y^2)+(x^2) (y^2)==0,y]

Parametric

FullSimplify[-(b^2) (x^2)-(a^2) (y^2)+(x^2) (y^2)/.{x->a Sec[t],y->b Csc[t]}]

Limit[{a Sec[t],b Csc[t]},t->0]

{a Sec[t],b Csc[t]}/.t->ArcTan[b/a]

Curve Properties

cruciform={a Sec[t],b Csc[t]};

Arc Length

Diverges as t→0

v4.2

(s=ArcLength[cruciform[t],t])//Timing

v5.0

(s=ArcLength[cruciform[t],t])//Timing

Integrate[(Sqrt[(b^2) ((Cot[t])^2) ((Csc[t])^2)+(a^2) ((Sec[t])^2) ((Tan[t])^2)]),{t,ArcTan[b/a],t}]

ArcLength[cruciform[t],{t,-∞,t}]

Curvature

kappa=FullSimplify[Curvature[cruciform[t],t]]

kappa2=((3a b Sin[t]^4Cos[t]^4)/(((b^2 Cos[t]^6+a^2 Sin[t]^6))^(3/2)))

LeafCount/@{kappa,kappa2}

With[{a=1,b=1},Plot[((3 a b ((Csc[t])^2) ((Sec[t])^2))/((((b^2) ((Cot[t])^2) ((Csc[t])^2)+(a^2) ((Sec[t])^2) ((Tan[t])^2)))^(3/2)))-((3a b Sin[t]^4Cos[t]^4)/(((b^2 Cos[t]^6+a^2 Sin[t]^6))^(3/2))),{t,0,1}]
]

With[{a=1,b=1},
Plot[((3 a b ((Cos[t])^4) ((Sin[t])^4))/((((b^2) ((Cos[t])^6)+(a^2) ((Sin[t])^6)))^(3/2))),{t,0,Pi/2},PlotStyle->Red]
]

a=b

FullSimplify[Curvature[cruciform[t]/.b->a,t]]

PowerExpand[%]

Implicit Curvature

FullSimplify[ImplicitCurvature[eqn[a,b][x,y],{x,y}],a>0&&b>0]

SortBy[FullSimplify[Curvature[eqn,{x,y}],a>0&&b>0&&(x|y)∈Reals],ByteCount]

ByteCount/@%

Slope

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

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

Tangential Angle

Diverges as t→0

v4.2

(ϕ=TangentialAngle[cruciform[t],t])//Timing

v5.0

(ϕ=TangentialAngle[cruciform[t],t])//Timing