MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Smarter 3D listplot clipping

  • To: mathgroup at
  • Subject: [mg15963] Re: Smarter 3D listplot clipping
  • From: Martin Kraus <mkraus at>
  • Date: Fri, 19 Feb 1999 03:26:52 -0500
  • Organization: Regionales Rechenzentrum Erlangen, Germany
  • References: <7ag4ib$>
  • Sender: owner-wri-mathgroup at

Dan Truong wrote:
> In Short:
> A question for Graphics3D/ListPlot3D knowledgeable people...
> I want the Ideal clipping below, not regular
> mathematica clipping.
> > Before:
> >     ___
> >  __/\__\
> >  \_\/
> >
> > Regular Clipping:
> >     ___
> >    /\__\
> >    \/
> >
> > Ideal: (how to do that?)
> >     ___
> >     \__\
> >

I do not think that this is ideal. 
For each clipped point you have to delete 
4 polygons. Thus, the holes in your plot will be
pretty large.

> Work setting:
> I have to display 3D plots for non square arrays.

Then the function ListSurfacePlot3D from the 
Graphics`Graphics3D` package would be more appropriated.
(See my adaption of Tom Wickham-Jones tutorial at:

> I use a square array, but zero values are meaningless.
> When I plot the curve however zero values change the
> look of the curve (making it harder to read).
> I want to clip-out zero samples ideally: Zero samples
> should not change the curves. Regular clipping however
> clip the curve when it reaches zero, which means the
> drop (see Reg. figure) is visible, clipping only the flat
> zero values (Before figure). I don't want the drops towards
> clipped regions drawn at all (3rd fig).
> Note: I am stacking multiple ListPlot3D in the same figure
> (that's why erratic drops bug me, since the surfaces
> do not have any reason to cross), so the ListPlots are
> already converted to Graphics3D. I also use the neat colorization
> scheme given by jtischer on the forum a couple of weeks ago.
> Has someone found a solution to this problem?
> Would it be possible in Graphics3D to search for all polygons
> with a corner having z < clipped region, and to remove those?
> (I expect it to be harder to do while in ListPlot format (?) )
> If so, how could this be done (ie enumerate all polygons in a
> Graphics3D object and delete those we wish),

Here we go:

(* generates a table of values with "holes" *)

(* generates the list of polygons *)

(* deletes the polygons which include points with z <= 0. *)

(* shows the rest of the polygons *)

> and could it be implemented as a function like:
>  clippedFig3D = True3DClip[fig3D];
>  Show[clippedFig3D];
> Dan-

Sure, that could be done! ;)

Hope that helps

Martin Kraus

  • Prev by Date: Re: Problem with Fonts
  • Next by Date: Re: PlotVectorField Package (easy question?)
  • Previous by thread: Smarter 3D listplot clipping
  • Next by thread: Re: Smarter 3D listplot clipping