Function Repository Resource:

BinormalVector

Source Notebook

Compute the binormal vector of a curve

Contributed by: Wolfram Staff (original content by Alfred Gray)

ResourceFunction["BinormalVector"][c,t]

computes the binormal vector of curve c parametrized by t.

Details and Options

The binormal vector is the cross product of the tangent vector and the normal vector.

Examples

Basic Examples (2) 

Consider the curve:

In[1]:=
ParametricPlot3D[{3 t - t^3, 3 t^2, 3 t + t^3}, {t, -2, 2}]
Out[1]=

The binormal vector:

In[2]:=
ResourceFunction["BinormalVector"][{3 t - t^3, 3 t^2, 3 t + t^3}, t] //
   PowerExpand // Simplify
Out[2]=

Scope (2) 

Use a helix:

In[3]:=
helix = Entity["SpaceCurve", "Helix"]["ParametricEquations"][1, 1][t];

The binormal vector:

In[4]:=
ResourceFunction["BinormalVector"][helix, t]
Out[4]=

Calculate the normal vector using the resource function NormalVector:

In[5]:=
ResourceFunction["NormalVector"][helix, t] // Simplify
Out[5]=

The normal vector is the cross product of the binormal vector and the tangent vector. Check this using the previous computation along with the resource function TangentVector:

In[6]:=
% - Cross[ResourceFunction["BinormalVector"][helix, t], ResourceFunction["TangentVector"][helix, t]] // Simplify
Out[6]=

The binormal surface associated to a curve is generated by its binormal vector field. It can be computed with the resource function BinormalSurface:

In[7]:=
ResourceFunction[
ResourceObject[<|{"Name" -> "BinormalSurface", "ShortName" -> "BinormalSurface", "UUID" -> "b6a1f628-e71e-4a42-9ae0-9497f46a6f3e", "ResourceType" -> "Function", "Version" -> "1.0.0", "Description" -> "Compute the binormal surface to a curve", "RepositoryLocation" -> URL[
      "https://www.wolframcloud.com/objects/resourcesystem/api/1.0"], "SymbolName" -> "FunctionRepository`$75f48fc0f00241ddbf1fc27dbaca5316`BinormalSurface", "FunctionLocation" -> CloudObject[
      "https://www.wolframcloud.com/obj/322e6a95-f4b3-4dee-a881-205415c7cc7c"]}|>, ResourceSystemBase -> "https://www.wolframcloud.com/objects/resourcesystem/api/1.0"]][helix, t, {u, v}]
Out[7]=

Check this:

In[8]:=
helix + v ResourceFunction["BinormalVector"][helix, t] /. t -> u
Out[8]=

Combine the binormal surface with the helix curve:

In[9]:=
Show[ParametricPlot3D[Evaluate[helix], {t, 0, 2 \[Pi]}, PlotStyle -> Thickness[.02]], ParametricPlot3D[Evaluate[ResourceFunction[
ResourceObject[<|{"Name" -> "BinormalSurface", "ShortName" -> "BinormalSurface", "UUID" -> "b6a1f628-e71e-4a42-9ae0-9497f46a6f3e", "ResourceType" -> "Function", "Version" -> "1.0.0", "Description" -> "Compute the binormal surface to a curve", "RepositoryLocation" -> URL[
         "https://www.wolframcloud.com/objects/resourcesystem/api/1.0"], "SymbolName" -> "FunctionRepository`$75f48fc0f00241ddbf1fc27dbaca5316`BinormalSurface", "FunctionLocation" -> CloudObject[
         "https://www.wolframcloud.com/obj/322e6a95-f4b3-4dee-a881-205415c7cc7c"]}|>, ResourceSystemBase -> "https://www.wolframcloud.com/objects/resourcesystem/api/1.0"]][helix, t, {u, v}]], {u, 0, 2 \[Pi]}, {v, 0, 5}, PlotPoints -> {20, 10}]]
Out[9]=

Properties and Relations (7) 

Define a unit speed helix:

In[10]:=
uhelix = {a Cos[t/Sqrt[a^2 + b^2]], a Sin[t/Sqrt[a^2 + b^2]], (b t)/
   Sqrt[a^2 + b^2]};

Its binormal vector:

In[11]:=
Simplify[ResourceFunction["BinormalVector"][uhelix, t], a > 0 && b > 0 && t > 0]
Out[11]=

The derivative of the binormal vector:

In[12]:=
D[%, t]
Out[12]=

The torsion, via the resource function CurveTorsion:

In[13]:=
\[Tau] = Simplify[ResourceFunction["CurveTorsion"][uhelix, t], a > 0 && b > 0 && t > 0]
Out[13]=

The normal vector, via the resource function NormalVector:

In[14]:=
n = Simplify[ResourceFunction["NormalVector"][uhelix, t], a > 0 && b > 0 && t > 0]
Out[14]=

The torsion multiplied by the normal is the derivative of the binormal:

In[15]:=
-\[Tau] n
Out[15]=

Using FrenetSerretSystem, the binormal vector is the last element of the second List:

In[16]:=
Simplify[PowerExpand[FrenetSerretSystem[uhelix, t]]][[2, -1]]
Out[16]=

Publisher

Enrique Zeleny

Version History

  • 2.0.0 – 30 April 2020
  • 1.0.0 – 28 April 2020

Source Metadata

Related Resources

License Information