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/