DescartesOvalsProjections::usage="Observe the development to understand where the equation of the ovals on the XY plane comes from. References: https://mathcurve.com; Personal.";
Development:
The cones:
2
z
==
2
x
+
2
y
;​​
2
(z-a)
==
2
m
(
2
(x-c)
+
2
y
);
Solving for z in both equations and equating them, we get:
2
x
+
2
y
±m
2
(x-c)
+
2
y
==±a
Which represents the equation of a Descartes oval in XY plane.
The curves in space are:
In[]:=
Solve[{
2
z
==
2
x
+
2
y
,
2
(z-a)
==
2
m
(
2
(x-c)
+
2
y
)},{x,y}]//FullSimplify
x
-
2
a
+
2
c
2
m
+2az+(-1+
2
m
)
2
z
2c
2
m
,y-
-((a-cm+(-1+m)z)(a+cm+(-1+m)z)(a+cm-(1+m)z)(a-z-m(c+z)))
2c
2
m
,x
-
2
a
+
2
c
2
m
+2az+(-1+
2
m
)
2
z
2c
2
m
,y
-((a-cm+(-1+m)z)(a+cm+(-1+m)z)(a+cm-(1+m)z)(a-z-m(c+z)))
2c
2
m
;
Animation: It is recommended for each sliding ruler to use the + and - signs to carefully observe each graph and understand the projection in XY plane.
Suggested exercises (apart from the classic with which the notebook starts):
1) m = 1.0, c = 6.0, a = 8.0
2) m = 2.0, c = 2.0, a = 4.0
3) m = -1.0, c = 2.0, a = 1.5
In[]:=
ManipulateP={0,0,0};Q={c,0,0};​​Show​​ParametricPlot3D[{vCos[θ],vSin[θ],v},​​{θ,0,2π},{v,-w,w},PerformanceGoal->"Quality",PlotPoints60,​​Mesh->None,​​PlotStyleDirective[Orange,Opacity[0.4],Specularity[White,30]]​​],​​ParametricPlot3D[{vCos[θ]+c,vSin[θ],mv+a},​​{θ,0,2π},{v,-w,w},PerformanceGoal->"Quality",PlotPoints60,​​Mesh->None,​​PlotStyleDirective[Blue,Opacity[0.4],Specularity[White,30]]​​],​​Ifc≠0&&m≠0,​​ParametricPlot3D
-
2
a
+
2
c
2
m
+2az+(-1+
2
m
)
2
z
2c
2
m
,-
-((a-cm+(-1+m)z)(a+cm+(-1+m)z)(a+cm-(1+m)z)(a-z-m(c+z)))
2c
2
m
,z,{z,-w,w},PlotStyle{Black,Thick},Nothing,​​Ifc≠0&&m≠0,​​ParametricPlot3D
-
2
a
+
2
c
2
m
+2az+(-1+
2
m
)
2
z
2c
2
m
,
-((a-cm+(-1+m)z)(a+cm+(-1+m)z)(a+cm-(1+m)z)(a-z-m(c+z)))
2c
2
m
,z,{z,-w,w},PlotStyle{Black,Thick},Nothing,​​Ifc≠0&&m≠0,​​ParametricPlot3D
-
2
a
+
2
c
2
m
+2az+(-1+
2
m
)
2
z
2c
2
m
,-
-((a-cm+(-1+m)z)(a+cm+(-1+m)z)(a+cm-(1+m)z)(a-z-m(c+z)))
2c
2
m
,0,{z,-w,w},PlotStyle{Green,Thick},Nothing,​​Ifc≠0&&m≠0,​​ParametricPlot3D
-
2
a
+
2
c
2
m
+2az+(-1+
2
m
)
2
z
2c
2
m
,
-((a-cm+(-1+m)z)(a+cm+(-1+m)z)(a+cm-(1+m)z)(a-z-m(c+z)))
2c
2
m
,0,{z,-w,w},PlotStyle{Green,Thick},Nothing,​​ContourPlot3D[z==0,{x,-w,w},{y,-w,w},{z,-w,w},ContourStyle->{Opacity[0.2],Gray},MeshFalse],​​Graphics3D[{Black,PointSize[0.01],​​Point[P],Text[Style["P",14,Bold],P,{0,-1.2}],​​Point[Q],Text[Style["Q",14,Bold],Q,{0,-1.2}]}],​​Axes->True,PlotRangew,​​AxesLabel->{x,y,z},BoxedFalse,AxesOrigin{0,0,0},ViewPoint{1.3,-2.4,1.},​​ImageSize->900,Style["Descartes' Ovals projected on the XY plane (in green)",Bold,Large],​​{{w,15,"Value (w, PlotRange)"},5,20,0.5},Delimiter,{{c,2,"Value (c, focus)"},-10,10,0.5},Delimiter,{{m,0.5,"Value (m)"},-10,10,0.5},Delimiter,{{a,2.5,"Value (a)"},1,10,0.5},ControlPlacementTop​​
Out[]=
​
Descartes' Ovals projected on the XY plane (in green)
Value (w, PlotRange)
Value (c, focus)
Value (m)
Value (a)