ConfocalEllipsoidsHyperboloidsFamily::usage="If a > b > c, the equation -u + -u + -u = 1, for u < one obtains a family of ellipsoids, for < u < one obtains a family of one leaf hyperboloids. For < u < it's a family of two leaf hyperboloids. The elements of the family are orthogonal to each other.That a family of confocal ellipsoids and hyperboloids are orthogonal to each other means that, at each point of the three-dimensional space where three quadrics of different surfaces of the same family are intercepted, their tangent planes are perpendicular, that is, their normal vectors are orthogonal.Reference: https://mathcurve.com; Personal ";
2
x
2
a
2
y
2
b
2
z
2
c
2
c
2
c
2
b
2
b
2
a
Animation:
In[]:=
Manipulatea0=4;b0=3;c0=2;Surface[a_?NumericQ,b_?NumericQ,c_?NumericQ,u_?NumericQ][x_,y_,z_]:=-u+-u+-u-1;surfaceType[a_?NumericQ,b_?NumericQ,c_?NumericQ,u_?NumericQ]:=Which[u<,"Ellipsoids",<u<,"One leaf hyperboloids",<u<,"Two leaf hyperboloids"];ShowContourPlot3D[Surface[a0,b0,c0,u0][x,y,z]==0,{x,-Scale,Scale},{y,-Scale,Scale},{z,-Scale,Scale},Mesh->None,PlotRange->Scale,MaxRecursion->3,PlotPoints->60,ContourStyle->Directive[Opacity[0.8],ColorData["Rainbow"][Rescale[u0,{-3,15.9}]]],BoundaryStyle->None],Axes->True,AxesLabel->{x,y,z},BoxedFalse,AxesOrigin{0,0,0},BoxRatiosAutomatic,PlotLabel->Row"Confocal family: ",TraditionalForm-u0+-u0+-u0==1," (",surfaceType[a0,b0,c0,u0],")",ImageSize->500,{{u0,-2.0},-3,15.9},Delimiter,{{Scale,10},6,30}
2
x
2
a
2
y
2
b
2
z
2
c
2
c
2
c
2
b
2
b
2
a
2
x
2
a0
2
y
2
b0
2
z
2
c0
Out[]=
Verification with three elements :
In[]:=
F[x_,y_,z_]:=0.150602-2.77778-0.186567-1;G[x_,y_,z_]:=0.070028+0.137363+0.438596-1;Solve[{F[x,y,z]==0,G[x,y,z]==0},{x,y}]
2
x
2
y
2
z
2
x
2
y
2
z
x-0.000018915360501940522`
3.7859`*^10-1.5489555767`*^10
,y-4.311210773486017`*^-62
z
2.01435`*^10-1.9779587167`*^10
,x-0.000018915360501940522`2
z
3.7859`*^10-1.5489555767`*^10
,y4.311210773486017`*^-62
z
2.01435`*^10-1.9779587167`*^10
,x0.000018915360501940522`2
z
3.7859`*^10-1.5489555767`*^10
,y-4.311210773486017`*^-62
z
2.01435`*^10-1.9779587167`*^10
,x0.000018915360501940522`2
z
3.7859`*^10-1.5489555767`*^10
,y4.311210773486017`*^-62
z
2.01435`*^10-1.9779587167`*^10
;2
z
Let z = 1 and let’s take the first values:
In[]:=
x1=-0.000018915360501940522`
3.7859`*^10-1.5489555767`*^10
y1=-4.311210773486017`*^-62.01435`*^10-1.9779587167`*^10
-2.8290604014636136`;
-0.08224281014519544`;
In[]:=
P={-2.8290604014636136`,-0.08224281014519544`,1};F[x_,y_,z_]:=0.150602-2.77778-0.186567-1;G[x_,y_,z_]:=0.070028+0.137363+0.438596-1;H[x_,y_,z_]:=++-1;σ=/.{x-2.8290604014636136`,y-0.08224281014519544`,z1};ρ=/.{x-2.8290604014636136`,y-0.08224281014519544`,z1};χ=/.{x-2.8290604014636136`,y-0.08224281014519544`,z1};ShowContourPlot3D[{F[x,y,z]==0,G[x,y,z]==0,H[x,y,z]},{x,-7,7},{y,-7,7},{z,-6,7},ContourStyleOpacity[0.2],MeshFalse],ParametricPlot3D-0.000018915360501940522`
2
x
2
y
2
z
2
x
2
y
2
z
2
x
16-8.909667515096947`
2
y
9-8.909667515096947`
2
z
4-8.909667515096947`
Grad[F[x,y,z],{x,y,z}]
Norm[Grad[F[x,y,z],{x,y,z}]]
Grad[G[x,y,z],{x,y,z}]
Norm[Grad[G[x,y,z],{x,y,z}]]
Grad[H[x,y,z],{x,y,z}]
Norm[Grad[H[x,y,z],{x,y,z}]]
3.7859`*^10-1.5489555767`*^10
,-4.311210773486017`*^-62
z
2.01435`*^10-1.9779587167`*^10
,z,-0.000018915360501940522`2
z
3.7859`*^10-1.5489555767`*^10
,4.311210773486017`*^-62
z
2.01435`*^10-1.9779587167`*^10
,z,0.000018915360501940522`2
z
3.7859`*^10-1.5489555767`*^10
,-4.311210773486017`*^-62
z
2.01435`*^10-1.9779587167`*^10
,z,0.000018915360501940522`2
z
3.7859`*^10-1.5489555767`*^10
,4.311210773486017`*^-62
z
2.01435`*^10-1.9779587167`*^10
,z,{z,-5,5},PlotStyleThick,Graphics3D[{Black,Ball[P,0.2]}],Graphics3D[{Brown,Point[P],Arrowheads[.05],Arrow[Tube[{P,P+5σ}]]}],Graphics3D[{Blue,Point[P],Arrowheads[.05],Arrow[Tube[{P,P+5ρ}]]}],Graphics3D[{Green,Point[P],Arrowheads[.05],Arrow[Tube[{P,P+5χ}]]}],BoxRatiosAutomaticσ.ρσ.χρ.χ2
z
Out[]=
Considering that we do not use all decimals in the equations of the elements of the family, the result can be considered as zero in each case, the surfaces are orthogonal.

