Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1996
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1996

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

Search the Archive

Re: [Q] CountorPlot as part of 3D Plot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg4398] Re: [Q] CountorPlot as part of 3D Plot
  • From: Xah Lee <xah at best.com>
  • Date: Mon, 15 Jul 1996 11:13:37 -0400
  • Organization: Best Internet Communications
  • Sender: owner-wri-mathgroup at wolfram.com

Gerd Lanfermann wrote:
> problem: i want to display a 3d plot, of lets say saddle, using Plot3D.
> I also want to to include a colored contour plot of this saddle  ON THE
> BOTTOM of the 3D-box, that matches the 3d plot.

The plan is to convert your ContourGraphics to a 3D graphics primitive, then you can display 
it with the surface of your function.

The data of ContourGraphics, DensityGraphics, and  SurfaceGraphics are just a rectangular 
array. The difference is how they are rendered in Show. To display a ContourGraphics as a 
surface, just add the head SurfaceGraphics to your data and use Show. But what you want is to 
convert the contour data array into graphic primitives as a list of Lines and Polygons that 
represents the contour. This you do by adding the head Graphics to it. Once your contour data 
array became a list of 2D graphic primitives, you add a dimension to all the point in them so 
they became a list of 3D primitives. Finally display this together with your SurfaceGraphics 
of the function.

In[8]:=
myFunction[a_,b_][x_,y_]:=((x-a)^2 + y^2) ((x+a)^2 + y^2) - b^4

In[9]:=
myContourData = ContourPlot[ myFunction[1,1][x,y],
	{x,-2,2}, {y,-1.2,1.2},
	Contours->Table[ i^2-1,{i,-1, 2.5, 1/4}],
	PlotPoints->25,
	AspectRatio->Automatic,
	PlotRange->All,
	ContourLines->True, ContourShading->True,
	ContourStyle->({Hue[#,1,.5],Thickness[.006]}&/@Range[0,1,1/12]),
	ColorFunction->Hue,
	Ticks->{Range[-1,1], Range[-2,2],{-.5,.5}}
];0;

In[10]:=
myContourGP = First@ Graphics@ myContourData;
myContourGP = N@ myContourGP /. {x_?AtomQ, y_?AtomQ}->{x,y,-20};

In[12]:=
Show[
	{ SurfaceGraphics@ myContourData,
	Graphics3D@ myContourGP
	},
	Axes->True,
	BoxRatios->{1,1,1}
	];0;

Hope this helps.

If you are using a Mac, you might want to get Rotater--An excellent freeware for visualing 
wireframes in realtime, together with a mathematica to Rotater converter package. You can get 
them at

 http://www.best.com/~xah/PageTwo_dir/MathPrograms_dir/mathPrograms.html

 Xah
 xah at best.com; 74631.731 at compuserve.com
 http://www.best.com/~xah/SpecialPlaneCurves_dir/specialPlaneCurves.html
 Mountain View, CA, USA

==== [MESSAGE SEPARATOR] ====


  • Prev by Date: Re: Abort options in Windows
  • Next by Date: Re: c code generation
  • Previous by thread: Re: [Q] CountorPlot as part of 3D Plot
  • Next by thread: Re: [Q] CountorPlot as part of 3D Plot