Oval

Author

Eric W. Weisstein
May 27, 2009

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

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

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

Derivation

Solve[a^2+y^2==(r3-r2)^2&&y+r1==r3,{y,r3}]//Simplify

Graphics[{PointSize[.02],
Red,Circle[{0,0},r1],Point[{0,0}],
Blue,Circle[{a,0},r2],Point[{a,0}],
Black,Circle[{0,(Sqrt[-(a^2)+(((r2-r3))^2)])},r3],Point[{0,y}]
},Axes->True]/.{y->(((a^2)-(((r1-r2))^2))/(2 (r1-r2))),r3->(((a^2)+(r1^2)-(r2^2))/(2 r1-2 r2))}/.{r1->1.1,r2->.9,a->.5}

FullSimplify[Solve[Circle[{0,(Sqrt[-(a^2)+(((r2-r3))^2)])},r3]&&Circle[{a,0},r2]/.Circle[{x0_,y0_},r0_]:>(x-x0)^2+(y-y0)^2==r0^2/.{r3->(((a^2)+(r1^2)-(r2^2))/(2 r1-2 r2))},{x,y}],a>0&&0<r2<r1<a]

Figure

OvalRegion[{r1_,r2_},a_,{x_,y_}]:=Module[{x0=((a ((a^2)+(r1^2)-(r2^2)))/((a^2)+(((r1-r2))^2))),y0=(((a^2)-(((r1-r2))^2))/(2 (r1-r2))),r3=(((a^2)+(r1^2)-(r2^2))/(2 r1-2 r2))},
x^2+y^2<r1^2||
(x-a)^2+y^2<r2^2||
(x^2+(y+y0)^2<(r3^2)&&0<x<x0&&y>0)||
(x^2+(y-y0)^2<(r3^2)&&0<x<x0&&y<0)
]

OvalDiagram[{r1_,r2_},a_,lab_:True,lines_:True,circ_:True]:=Module[{
r3=(((a^2)+(r1^2)-(r2^2))/(2 r1-2 r2)),
y0=(((a^2)-(((r1-r2))^2))/(2 (r1-r2))),
color=LightYellow
},
RegionPlot[OvalRegion[{r1,r2},a,{x,y}],{x,-1.5,1.5},{y,-1.2,1.3},PlotStyle->color,
AspectRatio->Automatic,Frame->False,
Epilog->{If[circ,{

Circle[{0,0},r1],
Circle[{a,0},r2],
{Gray,Circle[{0,-(Sqrt[-(a^2)+(((r2-r3))^2)])},r3]}},{}],
If[lines,{
Dashing[{.01}],
Line[{{{-r1,0},{0,0}},{{a,0},{a+r2,0}}}],
Line[{{0,r1},{0,-y0},{((a ((a^2)+(r1^2)-(r2^2)))/((a^2)+(((r1-r2))^2))),((2 (a^2) r2)/((a^2)+(((r1-r2))^2)))-r2}}],
PointSize[.025],Point[{{0,0},{a,0}}],Point[{0,-y0}],Point[{((a ((a^2)+(r1^2)-(r2^2)))/((a^2)+(((r1-r2))^2))),((2 (a^2) r2)/((a^2)+(((r1-r2))^2)))-r2}]},{}],
If[lab,{
Text[R,{-r1/2,-.1},Background->color],
Text[r,{a+r2/2,-.1},Background->color],
Text[Symbol["a"],{a/2,0},Background->color],
Text[Symbol["y"],{-.1,-y0/2},Background->color],
Text[Symbol["ρ"],{.1,(r1-y0)/2},Background->color]
},{}]}
]]

OvalDiagram[{1.1,.8},.7]

Manipulate[OvalDiagram[{1,r},a,labels,lines,circles],{{r,.8},0,1},{{a,.7},0,2},{{labels,True},{True,False}},{{lines,True},{True,False}},{{circles,True},{True,False}},SaveDefinitions->True]

Area

Direct integration

{x0,y0}={((a ((a^2)+(r1^2)-(r2^2)))/((a^2)+(((r1-r2))^2))),((2 (a^2) r2)/((a^2)+(((r1-r2))^2)))-r2}/.{r1->R,r2->r}

{ρ,yy}={(((a^2)+(r1^2)-(r2^2))/(2 r1-2 r2)),(((a^2)-(((r1-r2))^2))/(2 (r1-r2)))}/.{r1->R,r2->r};

θ=ArcTan[(a/yy)];
ϕ=ArcTan[(y0/(x0-a))];

FullSimplify[(1/2)π (R^2)-a yy+(ρ^2)θ+(r^2)ϕ,0<r<R<a]

With[{R=1.1,r=.8,a=.7},NIntegrate[Boole[OvalRegion[{R,r},a,{x,y}]],{x,-R,a+r},{y,-R,R}]
]

((π (R^2))/2)+((a (a+r-R) (a-r+R))/(2 (r-R)))+(r^2) ArcCot[((2 a (r-R))/(-(a^2)+(((r-R))^2)))]+((((((a^2)-(r^2)+(R^2)))^2) ArcTan[((2 a (-r+R))/((a^2)-(((r-R))^2)))])/(((2 r-2 R))^2))/.{R->1.1,r->.8,a->.7}

((π (R^2))/2)+((a (a+r-R) (a-r+R))/(2 (r-R)))+(r^2) ArcCot[((2 a (R-r))/((a^2)-(((R-r))^2)))]+((((((a^2)-(r^2)+(R^2)))^2) ArcTan[((2 a (R-r))/((a^2)-(((R-r))^2)))])/(((2 r-2 R))^2))/.{R->1.1,r->.8,a->.7}

((2 a (R-r))/((a^2)-(((R-r))^2)))/.{R->1.1,r->.8,a->.7}

((π (R^2))/2)+((a (a+r-R) (a-r+R))/(2 (r-R)))+(r^2) ((π/2)-ArcTan[((2 a (R-r))/((a^2)-(((R-r))^2)))])+((((((a^2)-(r^2)+(R^2)))^2) ArcTan[((2 a (R-r))/((a^2)-(((R-r))^2)))])/(((2 r-2 R))^2))/.{R->1.1,r->.8,a->.7}

FullSimplify[((π (R^2))/2)+((a (a+r-R) (a-r+R))/(2 (r-R)))+(r^2) ((π/2)-ArcTan[((2 a (R-r))/((a^2)-(((R-r))^2)))])+((((((a^2)-(r^2)+(R^2)))^2) ArcTan[((2 a (R-r))/((a^2)-(((R-r))^2)))])/(((2 r-2 R))^2)),0<r<R<a]

Check

With[{R=1.1,r=.8,a=.7},{
NIntegrate[Boole[OvalRegion[{R,r},a,{x,y}]],{x,-R,a+r},{y,-R,R}],
(1/2) (((a^3)/(r-R))+a (-r+R)+π ((r^2)+(R^2))+((((a^2)+(((r-R))^2)) ((a^2)-3 (r^2)+2 r R+(R^2)) ArcTan[((2 a (-r+R))/((a^2)-(((r-R))^2)))])/(2 (((r-R))^2))))
}
]

With[{R=1.2,r=.6,a=.5999},{
NIntegrate[Boole[OvalRegion[{R,r},a,{x,y}]],{x,-R,a+r},{y,-R,R}],
(1/2) (((a^3)/(r-R))+a (-r+R)+π ((r^2)+(R^2))+((((a^2)+(((r-R))^2)) ((a^2)-3 (r^2)+2 r R+(R^2)) ArcTan[((2 a (-r+R))/((a^2)-(((r-R))^2)))])/(2 (((r-R))^2))))
}
]

((π (R^2))/2)+((a (a+r-R) (a-r+R))/(2 (r-R)))+(r^2) ArcCot[((2 a (r-R))/(-(a^2)+(((r-R))^2)))]+((((((a^2)-(r^2)+(R^2)))^2) ArcTan[((2 a (-r+R))/((a^2)-(((r-R))^2)))])/(((2 r-2 R))^2))/.{R->1.2,r->.8,a->.4001}

OvalDiagram[{1.2,.2},.02]

Special Cases

Limit[((π (R^2))/2)+((a (a+r-R) (a-r+R))/(2 (r-R)))+(r^2) ArcCot[((2 a (r-R))/(-(a^2)+(((r-R))^2)))]+((((((a^2)-(r^2)+(R^2)))^2) ArcTan[((2 a (-r+R))/((a^2)-(((r-R))^2)))])/(((2 r-2 R))^2)),a->R-r,Assumptions->R>r]

Limit[((π (R^2))/2)+((a (a+r-R) (a-r+R))/(2 (r-R)))+(r^2) ArcCot[((2 a (r-R))/(-(a^2)+(((r-R))^2)))]+((((((a^2)-(r^2)+(R^2)))^2) ArcTan[((2 a (-r+R))/((a^2)-(((r-R))^2)))])/(((2 r-2 R))^2)),R->r,Assumptions->R>r&&a>0]//Timing

Limit[((π (R^2))/2)+((a (a+r-R) (a-r+R))/(2 (r-R)))+(r^2) ArcCot[((2 a (r-R))/(-(a^2)+(((r-R))^2)))]+((((((a^2)-(r^2)+(R^2)))^2) ArcTan[((2 a (-r+R))/((a^2)-(((r-R))^2)))])/(((2 r-2 R))^2)),r->0,Assumptions->a>0]//FullSimplify

CAD

Integrate[Boole[OvalRegion[{r1,r2},a,{x,y}]],{x,-∞,∞},{y,-∞,∞},Assumptions->0<r2<r1<a]//Timing

Integrate[Boole[OvalRegion[{r1,r2},a,{x,y}]],{y,-∞,∞},{x,-∞,∞},Assumptions->0<r2<r1<a]//Timing

Integrate[Boole[OvalRegion[{R,r},1,{x,y}]],{x,-∞,∞},{y,-∞,∞},Assumptions->0<R<r<1]//Timing

Integrate[Boole[OvalRegion[{R,r},1,{x,y}]],{y,-∞,∞},{x,-∞,∞},Assumptions->0<R<r<1]//Timing