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