In[]:=
VivianicurvewithFrenettrihedron,osculatingcircleandsphere::usage="In this notebook a points runs through Viviani's curve showing Frenet's trihedron and the osculating circumference, sphere and plane.References: Wolfram MathWorld: Osculating Sphere; Personal";
Development :
In[]:=
r
1
t
2
Norm['[t]''[t]]
r
1
r
1
3
(Norm['[t]])
r
1
Out[]=
2
Abs-Cos[t]Sin+9CosSin[t]
9
2
t
2
t
2
2
Abs-9CosCos[t]-SinSin[t]
t
2
9
2
t
2
2
Abs[9+9]
2
Cos[t]
2
Sin[t]
3/2
9+9+9
2
AbsCos
t
2
2
Abs[Cos[t]]
2
Abs[Sin[t]]
In[]:=
Simplify++
2
-Cos[t]Sin+9CosSin[t]
9
2
t
2
t
2
2
-9CosCos[t]-SinSin[t]
t
2
9
2
t
2
2
(9+9)
2
Cos[t]
2
Sin[t]
3/2
9+9+9
2
Cos
t
2
2
(Cos[t])
2
Sin[t]
Out[]=
13+3Cos[t]
3
3/2
(3+Cos[t])
In[]:=
r
1
t
2
τ
1
Det[{'[t],''[t],'''[t]}]
r
1
r
1
r
1
2
(Norm['[t]''[t]])
r
1
r
1
Out[]=
81
4
t
2
2
Cos[t]
81
4
t
2
2
Sin[t]
2
Abs-Cos[t]Sin+9CosSin[t]
9
2
t
2
t
2
2
Abs-9CosCos[t]-SinSin[t]
t
2
9
2
t
2
2
Abs[9+9]
2
Cos[t]
2
Sin[t]
In[]:=
SimplifyCos+Cos++
81
4
t
2
2
Cos[t]
81
4
t
2
2
Sin[t]
2
-Cos[t]Sin+9CosSin[t]
9
2
t
2
t
2
2
-9CosCos[t]-SinSin[t]
t
2
9
2
t
2
2
(9+9)
2
Cos[t]
2
Sin[t]
Out[]=
2Cos
t
2
13+3Cos[t]
In[]:=
n1[t_]:=ResourceFunction["NormalVector"]3(1+Cos[t]),3Sin[t],6Sin,t;n1[t]
t
2
Out[]=
----,---,--
4Cos[t]
2
Cos
t
2
3+Cos[t]
13+3Cos[t]
4
3
Cos[t]
3+Cos[t]
13+3Cos[t]
2CosSinSin[t]
t
2
t
2
3+Cos[t]
13+3Cos[t]
4Cos[t]
2
Sin[t]
3+Cos[t]
13+3Cos[t]
2CosCos[t]Sin
t
2
t
2
3+Cos[t]
13+3Cos[t]
4Sin[t]
2
Cos
t
2
3+Cos[t]
13+3Cos[t]
4Sin[t]
2
Cos[t]
3+Cos[t]
13+3Cos[t]
4
3
Sin[t]
3+Cos[t]
13+3Cos[t]
2Sin
2
Cos[t]
t
2
3+Cos[t]
13+3Cos[t]
2Sin
t
2
2
Sin[t]
3+Cos[t]
13+3Cos[t]
In[]:=
Simplify----,---,--
4Cos[t]
2
Cos
t
2
3+Cos[t]
13+3Cos[t]
4
3
Cos[t]
3+Cos[t]
13+3Cos[t]
2CosSinSin[t]
t
2
t
2
3+Cos[t]
13+3Cos[t]
4Cos[t]
2
Sin[t]
3+Cos[t]
13+3Cos[t]
2CosCos[t]Sin
t
2
t
2
3+Cos[t]
13+3Cos[t]
4Sin[t]
2
Cos
t
2
3+Cos[t]
13+3Cos[t]
4Sin[t]
2
Cos[t]
3+Cos[t]
13+3Cos[t]
4
3
Sin[t]
3+Cos[t]
13+3Cos[t]
2Sin
2
Cos[t]
t
2
3+Cos[t]
13+3Cos[t]
2Sin
t
2
2
Sin[t]
3+Cos[t]
13+3Cos[t]
Out[]=
-,-,-
3+12Cos[t]+Cos[2t]
2
3+Cos[t]
13+3Cos[t]
(6+Cos[t])Sin[t]
3+Cos[t]
13+3Cos[t]
2Sin
t
2
3+Cos[t]
13+3Cos[t]
In[]:=
b1[t_]:=ResourceFunction["BinormalVector"]3(1+Cos[t]),3Sin[t],6Sin,t;b1[t]
t
2
Out[]=
,,
2Cos[t]Sin+9CosSin[t]
2
-9
2
t
2
t
2
9
13+3Cos[t]
2Cos[t]-SinSin[t]
2
-9Cost
2
9
2
t
2
9
13+3Cos[t]
2+9)
2
(92
Cos[t]
2
Sin[t]
9
13+3Cos[t]
In[]:=
Simplify,,
2Cos[t]Sin+9CosSin[t]
2
-9
2
t
2
t
2
9
13+3Cos[t]
2Cos[t]-SinSin[t]
2
-9Cost
2
9
2
t
2
9
13+3Cos[t]
2+9)
2
(92
Cos[t]
2
Sin[t]
9
13+3Cos[t]
Out[]=
,-,
3Sin+Sin
t
2
3t
2
26+6Cos[t]
2
2
3
Cos
t
2
13+3Cos[t]
2
2
13+3Cos[t]
In[]:=
tt1[_]:=ResourceFunction["TangentVector"]3(1+Cos[t]),3Sin[t],6Sin,t;tt1[t]
t
2
Out[]=
-,,
2
Sin[t]3+Cos[t]
2
Cos[t]3+Cos[t]
2
Cost
2
3+Cos[t]
In[]:=
ManipulateClearAll;[t_]:=3(1+Cos[t]),3Sin[t],6Sin;ρ=ResourceFunction["OsculatingPlane"][[t],t];[t_]:=;[t_]:=[t];[t_]:=;n1[t_]:=-,-,-;tt1[t_]:=-,,;b1[t_]:=,-,;nr[t_]:=[t_]:=[t]+'[t][t]nr[t];[t_]:=[t]+[t]n1[t]+'[t][t]nr[t]b1[t];ζ[λ_]:=[t1]+[t1]n1[t1]+[t1](Cos[λ]tt1[t1]+Sin[λ]n1[t1]);rrc[t_]:=[t];rc[t_]:=[t]+rrc[t]n1[t];p=Grid[{{Center,Radius},{[t1],[t1]}},FrameAll,ItemSize->15,ItemStyle->15];q=Grid[{{Center,Radius},{rc[t1],rrc[t1]}},FrameAll,ItemSize->15,ItemStyle->15];Show[{ParametricPlot3D[[t],{t,-2π,2π},PlotStyle->Blue]/.Line[pts_,rest___]:>Tube[pts,0.08,rest],Graphics3D[{LightBlue,Opacity[0.6],Sphere[[t1],[t1]]}],ParametricPlot3D[ζ[λ],{λ,0,2π},PlotStyleBlack]/.Line[pts_,rest___]:>Tube[pts,0.08,rest],Graphics3D[{Yellow,Opacity[0.6],ρ}]/.tt1,Graphics3D[{Green,Point[[t1]],Arrowheads[.05],Arrow[Tube[{[t1],[t1]+1.5(t1+2π)n1[t1]}]]}],Graphics3D[{Orange,Point[[t1]],Arrowheads[.05],Arrow[Tube[{[t1],[t1]+1.5(t1+2π)b1[t1]}]]}],Graphics3D[{Blue,Point[[t1]],Arrowheads[.05],Arrow[Tube[{[t1],[t1]+1.5(t1+2π)tt1[t1]}]]}],Graphics3D[{Red,Ball[[t1],0.3]}]},AxesLabel->(Style[#,15,Blue]&/@{"X","Y","Z"}),AxesOrigin{0,0,0},AxesTrue,BoxedFalse,BoxRatiosAutomatic,PlotRangeAll,ViewPoint{-3,-15,10},ImageSize900],Style["Osculating circle, sphere and plane:",Bold,Medium],{{t1,-2π-0.00001,"Value (t1)"},-2π,2π,0.00001},Delimiter,{{p,2,"Center and radius of the osculating sphere"}},Delimiter,{{q,3,"Center and radius of the osculating circle"}},SaveDefinitions->True,ControlPlacementTop
r
1
t
2
r
1
k
1
13+3Cos[t]
3
3/2
(3+Cos[t])
ρ
1
1
k
1
τ
1
2Cos
t
2
13+3Cos[t]
3+12Cos[t]+Cos[2t]
2
3+Cos[t]
13+3Cos[t]
(6+Cos[t])Sin[t]
3+Cos[t]
13+3Cos[t]
2Sin
t
2
3+Cos[t]
13+3Cos[t]
2
Sin[t]3+Cos[t]
2
Cos[t]3+Cos[t]
2
Cost
2
3+Cos[t]
3Sin+Sin
t
2
3t
2
26+6Cos[t]
2
2
3
Cos
t
2
13+3Cos[t]
2
2
13+3Cos[t]
3+Cos[t]
;R
11
2
ρ
1
2
ρ
1
τ
1
a
11
r
1
ρ
1
ρ
1
τ
1
r
1
ρ
1
ρ
1
ρ
1
r
1
a
11
R
11
r
1
a
11
R
11
r
1
r
1
r
1
r
1
r
1
r
1
r
1
r
1
r
1
r
1
Out[]=
The intersection of the plane and the osculating sphere represents the osculating circle in black.
The tangent vector in blue, the normal vector in green, the binormal vector in red (these three vectors are Frenet’s trihedron). The dot in red, the osculating plane in yellow, the curve in intense blue and the osculating sphere in light blue.
The tangent vector in blue, the normal vector in green, the binormal vector in red (these three vectors are Frenet’s trihedron). The dot in red, the osculating plane in yellow, the curve in intense blue and the osculating sphere in light blue.
The contact is second order
The contact is second order.

