Initializations: Arrow3D

Arrow3D[{x1_,y1_,z1_},{x2_,y2_,z2_},color_]:=Module[{line,head,headsize},
headsize=0.015*(Sqrt[(((x1-x2))^2)+(((y1-y2))^2)+(((z1-z2))^2)]);
head=Sphere[{x2,y2,z2},headsize];
line=Line[{{x1,y1,z1},{x2,y2,z2}}];
Return[Graphics3D[{color,Thick,line,head}]];
]

TNB Frame Unit Vectors

Example 1

Curve

Consider a path in (ℝ^3) given by the curve

r[t_]={Cos[t],Sin[2t],Sin[t]}

curve=ParametricPlot3D[r[t],{t,0,2Pi},PlotStyle->{Blue,Thick},AxesLabel->{"x","y","z"}]

Unit Tangent vector T

The Unit Tangent vector T is given by

v[t_]=D[r[t],t]
T[t_]=((v[t])/(Sqrt[v[t].v[t]]))

Manipulate[Show[curve,Arrow3D[r[t],r[t]+T[t],Red],PlotRange->{{-2,2},{-2,2},{-2,2}}],{t,0,2Pi}]

Unit Normal vector N

The Unit Normal vector N is given by

v[t_]=D[r[t],t];
T[t_]=((v[t])/(Sqrt[v[t].v[t]]));
NormalVector[t_]=((D[T[t],t])/(Sqrt[D[T[t],t].D[T[t],t]]))

Manipulate[Show[curve,Arrow3D[r[t],r[t]+NormalVector[t],Green],PlotRange->{{-2,2},{-2,2},{-2,2}}],{t,0,2Pi}]

Unit Binormal vector B

The Unit Binormal vector B is given by

v[t_]=D[r[t],t];
T[t_]=((v[t])/(Sqrt[v[t].v[t]]));
NormalVector[t_]=((D[T[t],t])/(Sqrt[D[T[t],t].D[T[t],t]]));
B[t_]=Cross[T[t],NormalVector[t]]

Manipulate[Show[curve,Arrow3D[r[t],r[t]+B[t],Darker[Blue]],PlotRange->{{-2,2},{-2,2},{-2,2}}],{t,0,2Pi}]

Curvature and Torsion

κ[t_]=((Sqrt[T'[t].T'[t]])/(Sqrt[r'[t].r'[t]]))

τ[t_]=((Det[{r'[t],r''[t],r'''[t]}])/((((Sqrt[Cross[r'[t],r''[t]].Cross[r'[t],r''[t]]])))^2))

All Together: The TNB Frame

Manipulate[
Show[
curve,
Arrow3D[r[t],r[t]+T[t],Red],
Arrow3D[r[t],r[t]+NormalVector[t],Green],Arrow3D[r[t],r[t]+B[t],Darker[Blue]],
Graphics3D[Text["Curvature"N[κ[t],4],{1,1,2},BaseStyle->{Large}]],
Graphics3D[Text["Torsion"N[τ[t],4],{1,1,1.5},BaseStyle->{Large}]],PlotRange->{{-2,2},{-2,2},{-2,2}}],{t,0,2Pi}]

Example 2: Helix

Curve

Consider a path in (ℝ^3) given by the curve

r[t_]={Sin[3t],Cos[3t],t}

curve=ParametricPlot3D[r[t],{t,0,2Pi},PlotStyle->{Blue,Thick},AxesLabel->{"x","y","z"},Axes->None,Boxed->False]

Unit Tangent vector T

The Unit Tangent vector T is given by

v[t_]=D[r[t],t]
T[t_]=((v[t])/(Sqrt[v[t].v[t]]))

Unit Normal vector N

The Unit Normal vector N is given by

v[t_]=D[r[t],t];
T[t_]=((v[t])/(Sqrt[v[t].v[t]]));
NormalVector[t_]=((D[T[t],t])/(Sqrt[D[T[t],t].D[T[t],t]]))

Unit Binormal vector B

The Unit Binormal vector B is given by

v[t_]=D[r[t],t];
T[t_]=((v[t])/(Sqrt[v[t].v[t]]));
NormalVector[t_]=((D[T[t],t])/(Sqrt[D[T[t],t].D[T[t],t]]));
B[t_]=Cross[T[t],NormalVector[t]]

Curvature and Torsion

κ[t_]=((Sqrt[T'[t].T'[t]])/(Sqrt[r'[t].r'[t]]))

τ[t_]=((Det[{r'[t],r''[t],r'''[t]}])/((((Sqrt[Cross[r'[t],r''[t]].Cross[r'[t],r''[t]]])))^2))

All Together: The TNB Frame

Manipulate[
Show[
curve,
Arrow3D[r[t],r[t]+T[t],Red],
Arrow3D[r[t],r[t]+NormalVector[t],Green],Arrow3D[r[t],r[t]+B[t],Darker[Blue]],
Graphics3D[Text["Curvature"N[κ[t],4],{1,1,-1.5},BaseStyle->{Large}]],
Graphics3D[Text["Torsion"N[τ[t],4],{1,1,-2.5},BaseStyle->{Large}]],PlotRange->{{-2,2},{-2,2},{0,6}}],{t,0,2Pi}]

The curvature and torsion arte constant! Let's simplify:

Simplify[κ[t]]
Simplify[τ[t]]