DarbouxFrenetSerret::usage="The Frenet-Serret frame applies to curves in space and refers to the trihedron of the tangent, normal and binormal vector to the curve. The Darboux frame is applied to a curve that is on a surface and we have a tangent vector to the curve, a normal vector to the surface and the normal tangent vector, orthogonal to the previous two. This animation shows both frames. Reference: Personal.";
Explanatory note:The vectors T, N and B of the Frenet-Serret trihedron are a function of the parameter t. But the normal vector to the surface is a function of two or three parameters, to put it as a function of only the parameter t, the curve coordinates x = f[t], y = f[t], z = f[t] are substituted in the normal vector to the surface and so it is based on the parameter t.Example:Be the curve: , then x = 0, y = t, z = .Let the normal vector to the surface: N[x, y] = {-2x,2y,-1}After replacing it results in: N[t] = {0,2t,-1}.
ζ[t]=0,t,
2
t
2
t
1
1+4+4
2
x
2
y
1
1+4
2
t
Example 1:
In[]:=
Manipulateζ[t_]:={0,t,};F[x_,y_,z_]:=--z;TF[t_]:=0,,;NF[t_]:=0,-,;BF[t_]:={1,0,0};ND[t_]:=0,,-;TND[t_]:={-1,0,0};Show[{ContourPlot3D[F[x,y,z]==0,{x,-4,4},{y,-4,4},{z,-4,4},ContourStyle->Directive[Yellow,Specularity[White,40],Opacity[0.4]],MeshFalse,PerformanceGoal->"Quality",PlotPoints60],ContourPlot3D[x==0,{x,-4,4},{y,-4,4},{z,-4,4},ContourStyle->{Blue,Opacity[0.1],Specularity[White,40]},MeshFalse],ParametricPlot3D[ζ[t],{t,-2,t1},PlotStyle->{Black,Thick}],Graphics3D[{Black,Ball[ζ[t1],0.15],Point[ζ[t1]],Blue,Arrow[Tube[{ζ[t1],ζ[t1]+4N[TF[t1]]}]],Text[Style["",14,Blue,Bold],ζ[t1]+4N[TF[t1]],{0,-1.5}],Red,Arrow[Tube[{ζ[t1],ζ[t1]+4N[NF[t1]]}]],Text[Style["",14,Red,Bold],ζ[t1]+4N[NF[t1]],{0,-1.5}],Green,Arrow[Tube[{ζ[t1],ζ[t1]+4N[BF[t1]]}]],Text[Style["",14,Green,Bold],ζ[t1]+4N[BF[t1]],{0,-1.5}],Brown,Arrow[Tube[{ζ[t1],ζ[t1]+4N[ND[t1]]}]],Text[Style["",14,Brown,Bold],ζ[t1]+4N[ND[t1]],{0,-1.5}],Purple,Arrow[Tube[{ζ[t1],ζ[t1]+4N[TND[t1]]}]],Text[Style["",14,Purple,Bold],ζ[t1]+4N[TND[t1]],{0,-1.5}]}]},AxesLabel->(Style[#,15,Blue]&/@{"X","Y","Z"}),AxesOrigin{0,0,0},AxesTrue,BoxedFalse,BoxRatiosAutomatic,PlotRange8,ViewPoint{6,-2.4,2.},ImageSize900],Style["Darboux and Frenet-Serret frames:",Bold,Large],{{t1,-2+0.00002,"Value (t1)"},-2+0.00001,2,0.00001},ControlPlacementTop
2
t
2
y
2
x
1
1+4
2
t
2t
1+4
2
t
2t
1+4
2
t
1
1+4
2
t
2t
4+1
2
t
1
4+1
2
t
T
F
N
F
B
F
N
D
T
ND
Out[]=
Frenet-Serret Frame: (blue),(Red), (Green).Darboux Frame: (blue), (brown), (purple).
T
F
N
F
B
F
T
F
N
D
T
ND
Example 2:
In[]:=
Manipulateζ[t_]:=,2,,;NF[t_]:=-,-,t+1;BF[t_]:=,-,0;ND[t_]:=,,;TND[t_]:=-,,-;Show[{ContourPlot3D[F[x,y,z]==0,{x,-4,4},{y,-4,4},{z,-4,4},ContourStyle->Directive[Yellow,Specularity[White,40],Opacity[0.4]],MeshFalse,PerformanceGoal->"Quality",PlotPoints60],ContourPlot3D[y==4x,{x,-4,4},{y,-4,4},{z,-4,4},ContourStyle->{Blue,Opacity[0.1],Specularity[White,40]},MeshFalse],ParametricPlot3D[ζ[t],{t,-2,t1},PlotStyle->{Black,Thick}],Graphics3D[{Black,Ball[ζ[t1],0.15],Point[ζ[t1]],Blue,Arrow[Tube[{ζ[t1],ζ[t1]+4N[TF[t1]]}]],Text[Style["",14,Blue,Bold],ζ[t1]+4N[TF[t1]],{0,-1.5}],Red,Arrow[Tube[{ζ[t1],ζ[t1]+4N[NF[t1]]}]],Text[Style["",14,Red,Bold],ζ[t1]+4N[NF[t1]],{0,-1.5}],Green,Arrow[Tube[{ζ[t1],ζ[t1]+4N[BF[t1]]}]],Text[Style["",14,Green,Bold],ζ[t1]+4N[BF[t1]],{0,-1.5}],Brown,Arrow[Tube[{ζ[t1],ζ[t1]+4N[ND[t1]]}]],Text[Style["",14,Brown,Bold],ζ[t1]+4N[ND[t1]],{0,-1.5}],Purple,Arrow[Tube[{ζ[t1],ζ[t1]+4N[TND[t1]]}]],Text[Style["",14,Purple,Bold],ζ[t1]+4N[TND[t1]],{0,-1.5}]}]},AxesLabel->(Style[#,15,Blue]&/@{"X","Y","Z"}),AxesOrigin{0,0,0},AxesTrue,BoxedFalse,BoxRatiosAutomatic,PlotRange8,ViewPoint{1.3,-2.4,3.},ImageSize900],Style["Darboux and Frenet-Serret frames:",Bold,Large],{{t1,0.00002,"Value (t1)"},0.00001,4,0.00001},ControlPlacementTop
t
2
t
,t;F[x_,y_,z_]:=xy-z;TF[t_]:=1
16t+17
4
16t+17
1
1+
17
16t
4
272+
289
t
16
272+
289
t
1
16
17
4
17
1
17
4
t
4+17t
t
4+17t
-2
4+17t
4(2+t)
17+16t
4+17t
2(1+8t)
17+16t
4+17t
15
t
17+16t
4+17t
T
F
N
F
B
F
N
D
T
ND

