Skip to main content
1 of 4
ssch
  • 16.7k
  • 2
  • 54
  • 90

Let's start with a prametrized surface, any one will do but I guess being orientable helps in this case. Then calculate the unit normal, and then create Manipulate object that lets you see how the normal behaves

\[Sigma][u_, v_] := {(2 + Cos[v]) Cos[u], (2 + Cos[v]) Sin[u], 
  Sin[v]}
n[u_, v_] := Evaluate[Normalize[
   Cross[D[\[Sigma][u, v], u], D[\[Sigma][u, v], v]]
   ]]
surfacePlot = 
  ParametricPlot3D[\[Sigma][u, v], {u, -Pi, Pi}, {v, -Pi, Pi},
   PlotRangePadding -> 1];
normalPlot = 
  ParametricPlot3D[n[u, v], {u, -Pi, Pi}, {v, -Pi, Pi}, 
   PlotStyle -> Opacity[0.5]];

Manipulate[
 {Show[{
    surfacePlot,
    Graphics3D[{Thick, Red, 
      Arrow[{\[Sigma] @@ pt, \[Sigma] @@ pt + n @@ pt}]}]
    }],
  Show[{
    normalPlot,
    Graphics3D[{Thick, Red, Arrow[{{0, 0, 0}, n @@ pt}]}]
    }]
  }
 ,
 {pt, {-Pi, -Pi}, {Pi, Pi}}]

surface and normal

ssch
  • 16.7k
  • 2
  • 54
  • 90