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
2
(x-c)
2
y
Which represents the equation of a Descartes oval in XY plane.
The curves in space are:
In[]:=
Solve[{==+,==(+)},{x,y}]//FullSimplify
2
z
2
x
2
y
2
(z-a)
2
m
2
(x-c)
2
y
x,y-,x,y;
-++2az+(-1+)
2
a
2
c
2
m
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
-++2az+(-1+)
2
a
2
c
2
m
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
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
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[]:=
ManipulateP={0,0,0};Q={c,0,0};ShowParametricPlot3D[{vCos[θ],vSin[θ],v},{θ,0,2π},{v,-w,w},PerformanceGoal->"Quality",PlotPoints60,Mesh->None,PlotStyleDirective[Orange,Opacity[0.4],Specularity[White,30]]],ParametricPlot3D[{vCos[θ]+c,vSin[θ],mv+a},{θ,0,2π},{v,-w,w},PerformanceGoal->"Quality",PlotPoints60,Mesh->None,PlotStyleDirective[Blue,Opacity[0.4],Specularity[White,30]]],Ifc≠0&&m≠0,ParametricPlot3D,-,z,{z,-w,w},PlotStyle{Black,Thick},Nothing,Ifc≠0&&m≠0,ParametricPlot3D,,z,{z,-w,w},PlotStyle{Black,Thick},Nothing,Ifc≠0&&m≠0,ParametricPlot3D,-,0,{z,-w,w},PlotStyle{Green,Thick},Nothing,Ifc≠0&&m≠0,ParametricPlot3D,,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},MeshFalse],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,PlotRangew,AxesLabel->{x,y,z},BoxedFalse,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},ControlPlacementTop
-++2az+(-1+)
2
a
2
c
2
m
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
-++2az+(-1+)
2
a
2
c
2
m
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
-++2az+(-1+)
2
a
2
c
2
m
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
-++2az+(-1+)
2
a
2
c
2
m
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
Out[]=

