RE: Mesh on graphics3D objects
- To: mathgroup at smc.vnet.net
- Subject: [mg14359] RE: [mg14327] Mesh on graphics3D objects
- From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
- Date: Thu, 15 Oct 1998 00:29:00 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Scott Morrison (scott at morrison.fl.net.au) wrote: > > >I am trying to plot a complicated surface in Mathematica, using >ParametricPlot3D or SurfaceListPlot3D (from Graphics`Graphics3D`). >These both produce Graphics3D objects. >I am trying to remove the mesh drawn over the surface (for Plot3D this >is easily acheived with Mesh->False). Does anyone know how to do this? >I can't work out anything! > > Allan Hayes posted the following to the Mathgroup on 5/25/98 in [mg12588] Re: About plotting a surface. ParametricPlot3D[{x,y,Sin[x+ Sin[y]], EdgeForm[]},{x,0,6},{y,0,6}] _____________________ Allan Hayes also posted the following to the Mathgroup on 5/30/98 in [mg12655] Re: About plotting a surface. NoMesh2[Graphics3D[c_,rest___]]:= Graphics3D[{EdgeForm[],c/._EdgeForm :>Sequence[]},rest] The code above is a more robust (and a bit more complicated) than a version Roman-Meader gave in The Mathematica Journal 2(3), 32. This version is more robust because it will get rid of any EdgeForm directives that may be present. ___________________ P.J. Hinton posted the next solution to the Mathgroup on 5-25-98 in [mg12570]Re: About plotting a surface. The graphics generated by Plot3D[] are represented by Mathematica as SurfaceGraphics objects, for which Mesh is a valid option. Surfaces generated by ParametricPlot3D[] are represented internally with more general Graphics3D objects, which do not support a Mesh option. The elimination of lines can be achieved through the EdgeForm[] directive, which is used to modify the Polygon[] primitives in the Graphics3D object. Here is an example using a ParametricPlot3D[]-generated sphere <<Graphics`ParametricPlot3D` gr = (ParametricPlot3D[ {Cos[u] Cos[v], Sin[u] Cos[v], Sin[v]}, {u, 0, 2Pi, Pi/20}, {v, -Pi/2, Pi/2, Pi/10}, DisplayFunction -> Identity] /. Polygon[x_] -> {EdgeForm[], Polygon[x]} ) Show[gr, DisplayFunction -> $DisplayFunction] The operation above uses ReplaceAll[] (/.) to place all Polygon[] primitives inside of lists which contain a null argument EdgeForm[] directive. See Section 2.9.9 of _the Mathematica Book_ for details. You can also paste the following ButtonBox[] in a Mathematica notebook to create a hyperlink that will point you to the relevant section. \!\(\* TagBox[ ButtonBox[\(Using\ the\ EdgeForm\ directive\), ButtonData:>{"2.9.9", "9.14"}, ButtonStyle->"MainBookLink"], DisplayForm]\) ___________________________ Cheers, Ted Ersek