Re: Changing Plot3D to polygons?
- To: mathgroup at smc.vnet.net
- Subject: [mg5913] Re: [mg5850] Changing Plot3D to polygons?
- From: Allan Hayes <hay at haystack.demon.co.uk>
- Date: Tue, 4 Feb 1997 00:03:32 -0500
- Sender: owner-wri-mathgroup at wolfram.com
Robert Shanks <shanks at synthlab.pdial.interpath.net> [mg5850] Changing Plot3D to polygons? >I'm looking for a Mathematica comand or code to convert Plot3D or >ParametricPlot3D to polygons. Robert: ParametricPlot3D gives the polygons in its output: pp = ParametricPlot3D[{x,y,x+y},{x,0,1},{y,0,1}, PlotPoints ->3] -Graphics3D- pp[[1]] {Polygon[{{0., 0., 0.}, {0.5, 0., 0.5}, {0.5, 0.5, 1.}, {0., 0.5, 0.5}}], Polygon[{{0.5, 0., 0.5}, {1., 0., 1.}, {1., 0.5, 1.5}, {0.5, 0.5, 1.}}], Polygon[{{0., 0.5, 0.5}, {0.5, 0.5, 1.}, {0.5, 1., 1.5}, {0., 1., 1.}}], Polygon[{{0.5, 0.5, 1.}, {1., 0.5, 1.5}, {1., 1., 2.}, {0.5, 1., 1.5}}]} You can see the full output by evaluating InputForm[pp] Plot3D gives a matrix of heights rather than polygons in its output( which is a SurfaceGraphics object instead of the Graphicss3D object given by ParametricPlot3D). But we can convert to the corresponding Graphicss3D object with polygons and then extract these: Plot3D[x+y,{x,0,1},{y,0,1}, PlotPoints ->3] -SurfaceGraphics- Graphics3D[%] (*converting*) -Graphics3D- %[[1]] {Polygon[{{0., 0.5, 0.5}, {0., 0., 0.}, {0.5, 0., 0.5}, {0.5, 0.5, 1.}}], Polygon[{{0.5, 0.5, 1.}, {0.5, 0., 0.5}, {1., 0., 1.}, {1., 0.5, 1.5}}], Polygon[{{0., 1., 1.}, {0., 0.5, 0.5}, {0.5, 0.5, 1.}, {0.5, 1., 1.5}}], Polygon[{{0.5, 1., 1.5}, {0.5, 0.5, 1.}, {1., 0.5, 1.5}, {1., 1., 2.}}]} Allan Hayes hay at haystack.demon.co.uk tel: +44-(0)-116-271-4198 fax: +44-(0)-116-271-8642 http://www.haystack.demon.co.uk/