MathGroup Archive 2011

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

Search the Archive

Interactive settings for ParamPlot3D. Mesh not quite working.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121483] Interactive settings for ParamPlot3D. Mesh not quite working.
  • From: "Christopher O. Young" <cy56 at comcast.net>
  • Date: Fri, 16 Sep 2011 05:50:41 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

I'm trying to make a template for interactive graphing with the settings I
like, and controls to change the bounding box, etc. Everything is working
except that I'm not able to set the mesh correctly. Checking or unchecking
one of the boxes causes _all_ the mesh to be toggled off, not just one of
the mesh specifications. I think I'm constructing the list of specifications
according to the Help documentation. I put in and empty list for the mesh
function I don't want any mesh for.

Do I need to make this a Dynamic module? I don't see why, since I'm passing
in the value via the drawXMesh, drawYMesh, and drawZMesh arguments to
saddleParamPlot3.

Thanks for any help.

Chris Young
cy56 at comcast.net


saddleParamPlot3[
  opacity_,
  xBnds_, yBnds_, zBnds_,
  drawXMesh_, drawYMesh_, drawZMesh_
  ] := 
 Module[
  {
   meshSpecs = 
    {
     If[drawXMesh, Range[-xBnds, xBnds], {}],
     If[drawYMesh, Range[-yBnds, yBnds], {}],
     If[drawZMesh, Range[-zBnds, zBnds], {}]
     }
   
   },(* Specifications for the mesh; i.e., in which directions. *)
  
  Print["Mesh specs are: ", meshSpecs];
  
  ParametricPlot3D[
    Flatten[ {
      {u},
      {v},
      {u v}
     } ],
    
    {u, -xBnds, xBnds},
    {v, -xBnds, xBnds},
    
    PlotRange -> {{-xBnds, xBnds}, {-yBnds, yBnds}, {-zBnds, zBnds}},
    BoxRatios -> {xBnds, yBnds, zBnds},
    SphericalRegion -> True,
    
    FaceGrids ->
     {
      {
       {1, 0, 0}, {Range[-xBnds, xBnds], Range[-zBnds, zBnds]}
       },
      {
       {0, 1, 0}, {Range[-yBnds, yBnds], Range[-zBnds, zBnds]}
       },
      {
       {0, 0, 1}, {Range[-xBnds, xBnds], Range[-yBnds, yBnds]}
       }
      },
    
    MeshFunctions -> {#1 &, #2 &, #3 &},
    Mesh ->  meshSpecs,
    
    BoundaryStyle -> Gray,
    AxesLabel -> {"x", "y", "z"},
    PlotStyle -> Opacity[opacity],
    ColorFunctionScaling -> False,
    ColorFunction -> (Hue[0.35 (#3 + 4)/8 ] &)
    ] /. Line[pts_, opts___] :> {Gray, Tube[pts, 0.03, opts]}
  ]


Manipulate[
 saddleParamPlot3[opac, xBnds, yBnds, zBnds, drawXMesh, drawYMesh,
  drawZMesh],
 
 {{opac, 0.5, "Opacity"}, 0, 1} ,
 {{xBnds, 4, "x bounds"}, 0, 4, 1} ,
 {{yBnds, 4, "y bounds"}, 0, 4, 1} ,
 {{zBnds, 4, "z bounds"}, 0, 4, 1} ,
 {{drawXMesh, True, "x mesh"}, {True, False}},
 {{drawYMesh, True, "y mesh"}, {True, False}},
 {{drawZMesh, True, "z mesh"}, {True, False}}
 ]





  • Prev by Date: Re: AspectRatio unpredictable
  • Next by Date: Re: Texture in version 8, fine, but don't export...?
  • Previous by thread: Likelihood analysis with Mathematica: which Method for NIntegrate and FindMinimum?
  • Next by thread: Re: Interactive settings for ParamPlot3D. Mesh not quite working.