Function Repository Resource:

NormalSurface

Source Notebook

Compute the normal surface of a curve

Contributed by: Alfred Gray

ResourceFunction["NormalSurface"][c,t,{u,v}]

gives the normal surface of a curve c with parameter t using u and v to parametrize the result.

Details and Options

The normal surface associated to a curve is generated by its normal vector field.
The normal surface is effectively a ruled surface.

Examples

Basic Examples (4) 

Define and plot a Viviani’s curve:

In[1]:=
viviani = Entity["SpaceCurve", "VivianiCurve"]["ParametricEquations"][1][t]
Out[1]=
In[2]:=
vp = ParametricPlot3D[Evaluate[viviani], {t, -2 \[Pi], 2 \[Pi]}, PlotStyle -> Thickness[.02]]
Out[2]=

Compute the normal surface of Viviani’s curve:

In[3]:=
ns = ResourceFunction["NormalSurface"][viviani, t, {u, v}] // Simplify
Out[3]=
In[4]:=
nsp = ParametricPlot3D[
  Evaluate[ns], {u, -2 \[Pi], 2 \[Pi]}, {v, -1, -.05},
     PlotPoints -> {80, 10}]
Out[4]=

Compute the binormal surface of Viviani’s curve with the resource function BiormalSurface and plot the result:

In[5]:=
bns = ResourceFunction["BinormalSurface"][viviani, t, {u, v}]
Out[5]=
In[6]:=
bnsp = ParametricPlot3D[
  Evaluate[bns], {u, -2 \[Pi], 2 \[Pi]}, {v, .05, 1}, PlotPoints -> {80, 10}]
Out[6]=

Show both surfaces along with Viviani’s curve:

In[7]:=
Show[vp, nsp, bnsp]
Out[7]=

Publisher

Enrique Zeleny

Version History

  • 1.0.0 – 24 February 2020

Source Metadata

License Information