Re: Cropping a surface to a sphere

*To*: mathgroup at smc.vnet.net*Subject*: [mg88203] Re: Cropping a surface to a sphere*From*: "jwmerrill at gmail.com" <jwmerrill at gmail.com>*Date*: Mon, 28 Apr 2008 04:39:02 -0400 (EDT)*References*: <fv1ff5$es6$1@smc.vnet.net>

On Apr 27, 5:02 am, Szabolcs Horv=E1t <szhor... at gmail.com> wrote: > Is there a simple way to crop a surface to a sphere? > > For example, consider the surface > > ContourPlot3D[ > -x^4*y^2 + x^2*y^4 + x^4*z^2 - y^4*z^2 - > x^2*z^4 + y^2*z^4 == 1, > {x, -3, 3}, {y, -3, 3}, {z, -3, 3}, > Mesh -> False] > > It is cropped to a cube (the bounding box) by default. I would like to > crop it to a sphere of radius 3 (or some other region). > > Is there an easy way to do this? I guess that if there really isn't a > better way, I could write a polygon cropping function, convert the > graphic to Normal[] form, and crop/remove each polygon one by one, but I > was hoping for a simpler solution ... (built-in function or existing > package). Have a look at RegionFunction (version 6 only). ContourPlot3D[-x^4*y^2 + x^2*y^4 + x^4*z^2 - y^4*z^2 - x^2*z^4 + y^2*z^4 == 1, {x, -3, 3}, {y, -3, 3}, {z, -3, 3}, Mesh -> False, RegionFunction -> Function[{x, y, z}, x^2 + y^2 + z^2 < 9]] Regards, JM