MathGroup Archive 2005

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

Search the Archive

Re: Re: Re: 3d plots in mathematica 5.0

  • To: mathgroup at smc.vnet.net
  • Subject: [mg59175] Re: [mg59127] Re: [mg59124] Re: 3d plots in mathematica 5.0
  • From: "David Park" <djmp at earthlink.net>
  • Date: Sun, 31 Jul 2005 01:30:46 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

In this particular case we can parametrize the contour surfaces.  Looking
for the constant values surface, we obtain a simplification to ellipsoids.

Exp[-2*(x^2 + y^2/r0^2)]*Exp[-2*(z^2/z0^2)] == c
Simplify[%]
% /. x^2 + y^2/r0^2 + z^2/z0^2 -> k2
Solve[%, k2][[2,1]]
krule = % /. k2 -> k^2

Write the equation for the constant value ellipsoid in terms of contour
value c.

x^2 + y^2/r0^2 + z^2/z0^2 == k^2
% /. krule
(Distribute[#1/(-Log[c]/2)] & ) /@ %

Standard parametrization of an ellipsoid (from Alfred Gray, Modern
Differential Geometry)....

ellipsoid[a_, b_, c_][u_, v_] := {a Cos[v]Cos[u], b Cos[v]Sin[u], c Sin[v]}

Writing a definition for the parametrization of a gauss contour surface...

ellipsoid[k, k*r0, k*z0][u, v]
gausscontour[r0_, z0_, c_] = % /. k -> Sqrt[-Log[c]/2]

This plots a cut-a-way of the surface for given values....

ParametricPlot3D[
    gausscontour[1.4, 1.4, 0.1] // Evaluate, {u, 0, 6/4Pi}, {v, -Pi/2,
Pi/2},
    PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}}2];

The following uses the DrawGraphics package from my web site and plots a
series of such surfaces.

Needs["DrawGraphics`DrawingMaster`"]

Draw3DItems[
    {MapThread[{SurfaceColor[#2], EdgeForm[ColorMix[#2, Black][0.3]],
            ParametricDraw3D[
              gausscontour[1.4, 1.4, #1] // Evaluate, {u, 0,
                6/4Pi}, {v, -Pi/2, Pi/2}]} &, {{0.1, 0.2, 0.5, 0.7,
            0.9}, {CyanWhite, LightSkyBlue, DodgerBlue, RoyalBlue, Blue}}]},
    NeutralLighting[0.3, 0.5, 0.1],
    PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}}2,
    PlotLabel ->
      SequenceForm[
        "Constant Gaussian Surfaces for\n   ", {0.1, 0.2, 0.5, 0.7, 0.9}],
    BoxStyle -> Gray,
    Background -> Linen,
    ImageSize -> 500];

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/



From: David Annetts [mailto:davidannetts at aapt.net.au]
To: mathgroup at smc.vnet.net

 Hi Fiz,
>
> Here is the function
>
> w=exp(-2(x^2+y^2/r0^2))*exp(-2(z^2/z0^2))
>
> r0=1.4 and z0=1.4

The function is Exp, not exp, and it needs square brackets not parentheses.

r0 = 1.4;
z0 = 1.4;
w = Exp[(-2(x^2 + y^2/r0^2))]*Exp[(-2(z^2/z0^2))] // FullSimplify

The function you're after is ContourPlot3D, and you use it like

Needs["Graphics`ContourPlot3D`"]
ContourPlot3D[w, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Contours -> {.75}, \
PlotRange -> All, Axes -> True, BoxRatios -> {1, 1, 1}];

This produces "something", but it's not (IMHO) particularly useful or
informative.

You might get better value from either animating the 3D plot or another
approach.

Dave.



  • Prev by Date: Re: FullSimplify again ...
  • Next by Date: Re: "Gilmar's Postulate"
  • Previous by thread: Re: Re: 3d plots in mathematica 5.0
  • Next by thread: Multiple axes on MultipleListPlot