Re: how to draw the contour lines on a surface

• To: mathgroup at smc.vnet.net
• Subject: [mg3931] Re: how to draw the contour lines on a surface
• From: ianc (Ian Collier)
• Date: Fri, 10 May 1996 03:29:55 -0400
• Organization: Wolfram Research, Inc.
• Sender: owner-wri-mathgroup at wolfram.com

```In article <4m7q96\$k5h at dragonfly.wolfram.com>, goffinet
<goffinet at cit-novell.univ-st-etienne.fr> wrote:

>     Hello
>
>     I'm sure the answer lies somewhere inthe Mathematica journal, but I
> have been unable to find it
>
>      I want to get an image of a surface (with z=z(x,y) would be a good
> start, with an implicit surface it would be even better) with the lines
> z=Constant drawn on it. I don't want to Solve différential equations or
> such, merely to make use of what is already done in ContourPlot (or
> ImplicitPlot) and to draw the lines on the surface
>
>      How can one get the Lines[... , ... ,   ] which are used by the
> final display of a ContourPlot?
>

Tom Wickham-Jones describes several methods for forming contour
lines in 3 dimensions in his book "Mathematica Graphics: Techniques
& Applications" (TELOS/Springer Verlag 1994).

This example, taken from pages 276-277 of that book, illustrates
one method.

First we define a function and create contour and surface plots of it.

In[1]:=
fun[x_, y_ ] := x y

In[2]:=
c = ContourPlot[ fun[x, y], {x, -2,2},{y,-2,2},
Out[2]=
-ContourGraphics-

In[3]:=
s = Show[ SurfaceGraphics[c]]
Out[3]=
-SurfaceGraphics-

Now it is converted to a Graphics object. The lines are converted to
three-dimensional lines by taking each point and appending the value
of the function at that point.

In[5]:=
c3d = First[ Graphics[c]] /.
Line[pts_] :>
(val = Apply[fun, First[pts]];
Line[Map[Append[#, val]&, pts]]);

In[6]:=
Show[Graphics3D[c3d]]
Out[6]=
-Graphics3D-

Finally we show the lines together with the surface.

In[7]:=
Show[s, %]
Out[7]=
-Graphics3D-

There are a number of ways that this could be enhanced. For a more
detailed discussion I would strongly recommend that you take a look
at Tom Wickham-Jones' book.

I hope this helps.

--Ian

-----------------------------------------------------------
Ian Collier
Wolfram Research, Inc.
-----------------------------------------------------------
tel:(217) 398-0700   fax:(217) 398-0747    ianc at wolfram.com