MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Surface Normal


You need to compute the cross product of the derivatives of your parametric 
surface w.r.t. the parameters.

Define your parametric surface (a torus).

f[u_, v_] := {(10 + 5*Cos[v])*Cos[u], (10 + 5*Cos[v])*Sin[u], 5*Sin[v]};

Compute the derivatives w.r.t. parameters and form the cross product.

df[u_, v_] = Simplify[Cross[D[f[u, v], u], D[f[u, v], v]]]

    {25*Cos[u]*Cos[v]*(2 + Cos[v]), 25*Cos[v]*(2 + Cos[v])*Sin[u], 25*(2 + 
Cos[v])*Sin[v]}

Plot the parametric surface.

g1 = ParametricPlot3D[f[u, v], {u, 0, 2*Pi}, {v, 0, 2*Pi}];

Plot a field of surface normals.

g2 = Show[Graphics3D[Table[Line[{f[u, v], f[u, v] + 0.1*df[u, v]}], {u, 0, 
2*Pi, (2*Pi)/20},
      {v, 0, 2*Pi, (2*Pi)/20}]]];

Display the above two plots together.

Show[g1,g2];

Steve Luttrell

<gouqizi.lvcha at gmail.com> wrote in message news:d15s2g$9k2$1 at smc.vnet.net...
> Hi, All:
>
> If I have a surface in parametric form
>
> For example,
> x = (10 + 5cosv)cosu
> y = (10 + 5cosv)sinu
> z = 5sinv
>
> How can I quickly calculate its normal for any (u,v) by mathematica
>
> Rick
> 



  • Prev by Date: Re: Surface Normal
  • Next by Date: Re: Surface Normal
  • Previous by thread: Re: Surface Normal
  • Next by thread: Re: Re: Surface Normal