MathGroup Archive 2001

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

Search the Archive

RE: Normal vector on a surface

  • To: mathgroup at
  • Subject: [mg29282] RE: [mg29269] Normal vector on a surface
  • From: "David Park" <djmp at>
  • Date: Mon, 11 Jun 2001 04:38:25 -0400 (EDT)
  • Sender: owner-wri-mathgroup at

Dear Matthias,

Here is one method for obtaining a unit vector field normal to your surface.

Parameterize your surface as what is called a patch in differential

X[u_,v_]:= {u,v,(your expression with u and v for x1 and y1)}

Then you can obtain two independent tangent vectors to the surface by taking
the derivative of X, first with respect to u and then with respect to v.

eu[u_,v_] = D[X[u,v],u]
ev[u_,v_] = D[X[u,v],v]

These two vectors are not orthogonal, but for the moment that doesn't
matter. You can then calculate the normal vector field by using a cross
product and making a unit vector of the result.


Now, for the plotting. This is a little difficult with regular Mathematica
because if has no Arrow3D routine. But I have the routines for making a nice
plot and these are available at my web site (except for one which I will
send to you if you wish). The packages are DrawingCube, ParametricDrawing3D
and DrawingArrows. DrawingArrows has an Arrow3D routine in it, which is
similar to the regular Arrow routine. DrawingCube makes it easy to combine
various elements into one plot, such as your surface and the arrows.

If you download the packages, they should be placed in the
AddOns/ExtraPackages/Graphics directory. You may have to create the Graphics
directory there. Then they behave just like the standard packages.

I made up a notebook which draws the surface with the normal vector field on
it using these packages. I will send it to you if you are interested in
trying the packages. I can also show you how to draw a tangent plane at one
point along with the vector triad that goes with that point.

One other package that I used was one that was posted by Allan Hayes &
Hartmut Wolf a month or so ago on MathGroup. It is called Smooth3D. It is
useful in this way. I wanted to put a normal vector at each intersection of
the "mesh" lines. However we don't want too many vectors because it will
take too long and the plot will be cluttered. On the other hand, we want to
use enough points in plotting the surface to make it smooth. Smooth3D allows
you to suppress the regular "mesh" lines and then plot new, more widely
spaced lines. This makes a much better looking plot. I can send you the
Smooth3D package along with the notebook. I slightly modified it so that it
goes in the ExtraPackages/Graphics directory, just like the other graphics

So, if you are interested in pursuing this approach I will send you the

David Park
djmp at

> -----Original Message-----
> From: Matthias.Bode at [mailto:Matthias.Bode at]
To: mathgroup at
> Sent: Saturday, June 09, 2001 3:09 AM
> To: mathgroup at
> Subject: [mg29282] [mg29269] Normal vector on a surface
> Dear Colleagues,
> I have a function in the variables x1 and y1:
> Out[27]=
> 19.74211746962547 - 61.78321746073334*
>    x1 + 70.84823523445556*x1^2 -
>   34.64681309362152*x1^3 +
>   5.822595947190386*x1^4 -
>   61.783217460733795*y1 +
>   188.56171712734522*x1*y1 -
>   208.7457484391798*x1^2*y1 +
>   99.21114279328117*x1^3*y1 -
>   16.223098505477388*x1^4*y1 +
>   70.8482352344551*y1^2 -
>   208.7457484391805*x1*y1^2 +
>   225.08774661852397*x1^2*y1^2 -
>   103.5151716236312*x1^3*y1^2 +
>   16.351931921608763*x1^4*y1^2 -
>   34.64681309362163*y1^3 +
>   99.21114279328117*x1*y1^3 -
>   103.51517162363109*x1^2*y1^3 +
>   45.654124756950296*x1^3*y1^3 -
>   6.928857192755963*x1^4*y1^3 +
>   5.822595947190411*y1^4 -
>   16.22309850547743*x1*y1^4 +
>   16.351931921608763*x1^2*y1^4 -
>   6.928857192755952*x1^3*y1^4 +
>   1.0137658500940734*x1^4*y1^4
> This function yields a surface very similar to Sin[x1*y1] for 1<x1<3 and
> 1<y1<3.
> Now I want to calculate (how?) and draw (how?) several "Normalenvektors"
> (sorry, I do not know the English termini technici) which should
> sit smugly
> - like palisades - on the plane tangential to the surface.
> The "Normalenvektor" N in point P - according to
> Bronstein-Semendjajew - is
> a unity vector perpendicular to the tangential plane; its accompanying
> vectors e1 and e2 on the plane form a "right-handed system". N, e1 and e2
> are referred to as the "accompanying tripod". - I understand the words but
> not their meaning.
> My attempts with Calculus`VectorAnalysis` and PlotVectorField3D &c. failed
> dismally.
> Thank you for your assistance,
> Matthias Bode
> Sal. Oppenheim jr. & Cie. KGaA
> Koenigsberger Strasse 29
> D-60487 Frankfurt am Main
> Tel.: +49(0)69 71 34 53 80
> Mobile: +49(0)172 6 74 95 77
> Fax: +49(0)69 71 34 6380
> E-mail: matthias.bode at
> Internet:

  • Prev by Date: Re: integrals involving vectors and matrices
  • Next by Date: Re: Fourth degree polynomial
  • Previous by thread: Re: Normal vector on a surface
  • Next by thread: Re: Normal vector on a surface