Note

This Mathematica notebook is from the WWW project A Visual Dictionary of Special Plane Curves. Copyright © 1995-2000 by Xah Lee. (http://xahlee.org/)

Packages and Initializations

Needs["ParaPlot`"]
(*MathSource Item:0207-986*)

Needs["PlaneCurveFormulas`"]


Needs["PlaneCurveGenerator`"]

Needs["Graphics`ImplicitPlot`"]
(*MathSource Item:0200-529*)

Ellipse

Title Graphics

A Family of ellipses sharing the same vertexes with eccentricities
Table[ e, {e,.25,.99, (.99-.25)/7}]

ParametricPlot[
	Evaluate@ Table[ Ellipse[e][t], {e,.25,.99, (.99-.25)/7}],
	{t, 0.01,Pi/2, 3/2 Pi, 6.28},
	AspectRatio->Automatic,
	PlotRange->{{-1,1},{-1,1}}1.1,
	PlotStyle->
		Map[ {Thickness[.01],#1}&, Table[Hue[.75,i,1],{i,.3,1,(1-.3)/7}]],
	Background->Hue[.18],
	Axes->False
];

A Family of co-focal ellipses with eccentricities
Table[ e, {e,.25,.99, (.99-.25)/7}]

Clear[c];
c = 1;

ParametricPlot[
	Evaluate[
		Table[{c/e Cos[t], Sqrt[(c/e)^2-c^2] Sin[t]},{e,.25,.99, (.99-.25)/7}]
	],
	{t, 0.01,Pi/2, 3/2 Pi, 6.28},
	PlotStyle->
		Map[ {Thickness[.01],#1}&, Table[Hue[0,i,1],{i,.3,1,(1-.3)/7}]],
	PlotRange->{{-1,1} , {-1,1} } 4.4,
	Background->Hue[0.18],
	AspectRatio->Automatic,
	Axes->False
];
Clear[c]

Definition

Ellipse describe a family of curves. It is a conic section (see Conic Sections) and it is a special case of Hypotrochoids. (See Hypotrochoid).

Ellipse is commonly defined as the locus of points P such that the sum of the distances from P to two fixed points F1, F2 (called foci) is a constant. Let this constant be denoted 2 a. Let 2 c be the distance between foci. The essentricity e of the ellipse is defined as e = c/a. Essentricity is a number that describe the degree of roundness of the ellipse, and for any ellipse, 0 < e < 1. The smaller the essentricy, the rounder the ellipse. If e == 0, it is a circle and F1, F2 are coincident

Vertexes of the ellipse are defined as the intersections of the ellipse and a line passing through foci. The distance between the vertexes are called major axis or focal axis. A line passing the center and normal to the major axis is the minor axis.

Parametric Formula: {Cos[t], Sqrt[1-e^2] Sin[t]}.
Cartesian equation: x^2 + y^2/(1 - e^2) == 1.

Vertexes: {1,0}, {-1,0}. Foci: {e, 0}, {-e, 0}.

Clear[ e]; e = .7;
ParaPlot[ Ellipse[ e ][t], {t, 0, 2 Pi}];
ImplicitPlot[ x^2 + y^2/(1-e^2) == 1, {x, -2, 2} ];
Clear[e];

EllipseGenerator3[.7, {0, 5.5, .1},
	LastFrameOnly->True,
	Ticks->{Range[-1,1,.5], Range[-1,1,.2]}
];

Ellipses as hypotrochoids

Ellipse is a special case of Hypotrochoids. They can be traced out as a point on a rolling circle. (See Hypotrochoid)
Let the parameters of the hypotrochoid be {A,B,H}, where A is the radius of the fixed circle, B is the radius of the rolling circle, and H is the distance from the tracing point to the center of the rolling circle. If
A/2 == B AND H != B, then its an ellipse with semimajor axis a=B+H and semiminor axis b=Abs[B-H]. eccentricity is then
e:=c/a == Sqrt[a^2-b^2]/a = Sqrt[(B+H)^2-(B-H)^2]/(B+H)

Given A, B:=1/2 A, and e, we may want to find H such that the hypotrochoid {A,B,H} generate an ellipse with eccentricity e. This is easily solved with the above information. The solution is

Solve[(B+H)^2 - (B-H)^2 - e^2 (B+H)^2==0, H]

If we substitute B by 1/2 and e by 8/10, we get a nice simple fraction.

H/. %  /. {B->1/2, e->8/10}

Two ellipses with e:= 8/10, by hypotrochoid with parameters
{1,1/2,1/8} and {1,1/2, 2}

EllipseGenerator2[1/8, {0,2 Pi,2 Pi/40}, LastFrameOnly->True];

EllipseGenerator2[ 2, {0, 5.5,.1}, LastFrameOnly->True];

Point-wise construction of ellipses

This method is obvious from the paramteric formula for ellipses {a Cos[t], b Sin[t]}, where a and b are the radii of the circles.

EllipseGenerator4[{5,3}, {0, 5.2, .1}, LastFrameOnly->True];

Ellipse by Archimedes' Trammel

Ellipse as a Glissette of a line of constant length with endpoints on other two mutually orthogonal lines.
This mechanism is called Trammel of Archimedes. (see Astroid.)

(* an ellipse with a:= 5/8, b:=3/8. e== 8/10*)
EllipseGenerator[5/8, {0, 5.3, .1}, LastFrameOnly->True];

Optical Property

Light rays from one focus will be reflected to the other focus.

Clear[e]; e = .4;
ParaPlot[ Ellipse[e][t], { t, 0, 2 Pi, 2 Pi/16},
	CausticLineLength->100.93, CausticOrigin->{e,0},
	PlotDot->False,
	CurveColorFunction->{Hue[.3]&},
	CurveStyle->{Thickness[.008]},
	Background->GrayLevel[0],
	AspectRatio->Automatic, Axes->False,
	PlotRange->{{-1,1},{-1,1}} 1.1
];
Clear[e]

Clear[e]; e = .4;
ParaPlot[ Ellipse[e][t], { t, 0, 2 Pi, 2 Pi/30},
	CausticLineLength->20, CausticOrigin->{0.2,.2},
	PlotDot->False,
	CurveColorFunction->{Hue[.3]&},
	CurveStyle->{Thickness[.008]},
	Background->GrayLevel[0],
	AspectRatio->Automatic, Axes->False,
	PlotRange->{{-1,1},{-1,1}} 1.1
];
Clear[e]

Pedal of Ellipse

The pedal of an ellipse with respect to a focus is a circle, conversely, the negative pedal of a circle with respect to a point inside the circle is an ellipse. This fact can be used to draw ellipses by envelope of lines.  
1.Start with a circle and a point O inside the circle. 
2.Draw a line L from a point P on the circle to O. 
3.Draw a line M perpendicular to L and passing P. 
5.The envelope of lines M is an ellipse with a focus O.

Clear[NegativePedalPlot, unitV]

unitV[v_]:= v/Sqrt[v.v]

NegativePedalPlot::usage = "NegativePedalPlot[{xf,yf},{min,max,step},
	{x0,y0}] draws the negative pedal lines of the parametric curve
	{xf,yf} at points {xf,yf}& /@ Range[min,max,step].
	xf and yf must be pure functions with head Function.
	This is a quick hack function written for experienced
	Mathematica users.
	Example:
	NegativePedalPlot[{Cos@#&, Sin@#&}, {0,2 Pi, 2 Pi/30},{.8,0}]";

NegativePedalPlot[{xf_Function,yf_Function},
	{tmin_,tmax_, dt_}, {a_,b_}, opts___Rule]:=
	Module[{curvePoints, curvePointsGP,pedalPointGP,
		linesToCurveGP, negativePedalLinesGP},
		curvePoints = N@ {xf@ #,yf@ #}& /@ Range[tmin,tmax,dt];
		curvePointsGP = {Hue[0],PointSize[.02], Point[#]}& /@ curvePoints;
		pedalPointGP = {Hue[.7], PointSize[.02], Point[{a,b}]};
		linesToCurveGP = N@ Line[{{a,b},#}]& /@ curvePoints;
		negativePedalLinesGP = Line[{
				50 Reverse[unitV[N[#-{a,b}]]{1,-1}] +#,
				-50 Reverse[unitV[N[#-{a,b}]]{1,-1}] +#
			}]& /@ curvePoints;
		Show[
			Graphics[{linesToCurveGP,negativePedalLinesGP,
				curvePointsGP, pedalPointGP}],
				opts
		]
	]

NegativePedalPlot[{Cos@#&, Sin@#&}, {0, 2 Pi, 2 Pi/40}, {.4,.5},
AspectRatio->Automatic,PlotRange->{{-1,1},{-1,1}}1.2];

Clear[e]; e = .8;
ParaPlot[ Ellipse[e][t], { t, 0, 2 Pi, 2 Pi/25},
	PedalPoint->{e,0}, LineStyle->{GrayLevel[0]},
	PlotCurve->False, Axes->False, AspectRatio->Automatic,
	Prolog->{Hue[.65],PointSize[.02],Point[{-e,0}],Circle[{0,0},1]}
];Clear[e]

Inverse of Ellipse

Its Inversion with respect to a focus is a dimpled Limacon of Pascal.
(see Limacon of Pascal)

Clear[e]; e = .7;
ParaPlot[ Ellipse[e][t], { t, 0, 2 Pi, 2 Pi/80},
	InversionCircle->{{e, 0},.5},
	PlotCurve->False, DotStyle->{{Hue[0], PointSize[.008]}},
	AspectRatio->Automatic,
	Prolog->{Hue[0.65],PointSize[.02],Point[{e,0}]}
];
Clear[e];

Fun Graphics

Clear[c];
c = 1;

ParametricPlot[
	Evaluate[
		Table[{a Cos[t], Sqrt[c^2-a^2] Sin[t]},{a,.25,.99, (.99-.25)/7}]
	],
	{t, 0.01,Pi/2, 3/2 Pi, 6.28},
	PlotStyle->
		Map[ {Thickness[.01],#1}&, Table[Hue[0,i,1],{i,.3,1,(1-.3)/7}]],
	PlotRange->{{-1,1} , {-1,1} } 1.1,
	Background->Hue[0.18],
	AspectRatio->Automatic,
	Axes->False,
	Prolog->{{Hue[.75], PointSize[.03], Point[{-1,0}],Point[{1,0}]}}
];
Clear[c]

Fun Animations

An interesting animation showing normals of a changing ellipse. Note that the envelope of the normals is the evolute of the curve.

(* Normal of varing ellipses *)
Do[
	ParaPlot[ {i Cos[t], (3-i) Sin[t] }, { t, 0, 2 Pi, 2 Pi/40},
		NormalLineLength->30,
		NormalLineStyle->{GrayLevel[.2]},
		CurveStyle->{Thickness[.009]}, CurveColorFunction->{Hue[.18]&},
		PlotRange->{{-5,5},{-5,5}}, AspectRatio->1
	],
	{i,0, 3, 3/6}
];