MathGroup Archive 2012

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

Search the Archive

Re: FrontEnd: Rotation of "heavy" graphics objects

  • To: mathgroup at
  • Subject: [mg128009] Re: FrontEnd: Rotation of "heavy" graphics objects
  • From: W Craig Carter <ccarter at MIT.EDU>
  • Date: Sat, 8 Sep 2012 03:10:48 -0400 (EDT)
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • References: <>

Hi Alex,
Thanks.  David Park also gave me some useful feedback.

That graphics object is just a proxy for what I really want to 
do---which is to rotate a graphics complex with many elements (for 
example10^7 polygons) that is imported and on which I do some 
mathematica operations.  I don't have the option of reducing the size of 
the graphics object in this case.

I am thinking of just coding it up myself (but am busy teaching and 
other academic tasks and trivia...). I would probably link the Dynamic 
ViewPoint of a bounding box to the Viewpoint of the heavy graphics 
object. Then have the Dynamic wrapped around the Graphics3D object not 
do synchronous updating and only track the Viewpoint.   I believe the 
graphics object would probably need to be NonSelectable or Depoyed?  I 
suppose that I would embed the two things (Box plus heavy graphic) in a 
GraphicsRow.  Trigger might also come in handy here.

If anyone would like to give this a shot, here is another example of a 
heavy graphic:

numberCubes = 10^5;
Graphics3D[GraphicsComplex[RandomReal[100 {-1, 1}, {numberCubes, 3}],
  Cuboid /@ Range[numberCubes]]]

(********!!!!  Warning, this crashes my session if numberCubes = 10^6  
!!!!  *******)

W Craig Carter
Professor of Materials Science, MIT

On Sep 7, 12, at Fri Sep 7, 12 @4:57 AM, Alexei Boulbitch wrote:

> Hello,
> I am wondering if others would find the following feature useful, or
> might know how to do this with the current FrontEnd:
> When rendering "very heavy" graphics objects
> (*
> ---for example, but I don't recommend doing this---
> Plot3D[Sin[10 Sqrt[x^2  + y^2]]/Sqrt[x^2 + y^2], {x, -Pi,
>  Pi}, {y, -Pi, Pi}, MaxRecursion -> 10]
> *)
> Live rotation, panning, and magnification of the graphics object are
> understandably slow.
> I am wondering if it would be possible to have a graphics rotation 
> where:
> a) a lower order graphic is rotated (as in the the PerformanceGoal
> option works in Manipulate)
> or
> b) Only a bounding box  (or an x-y-z axis object) would rotate, and 
> the heavy graphics object would be re-rendered only once.
> Craig Carter
> Hi, Craig,
> The option making the object heavy is MaxRecursion->10. Namely, 10 is 
too high. If you take  MaxRecursion->4 instead, the mouse rotation of 
the image will be easy. With MaxRecursion->5 it takes several seconds to 
catch up the image for the first time, but then rotations go 
"frictionless". It is always the compromise between the image quality 
and the difficulty of its rotation. You may also try another method of 
improving the image quality. Say, make an option PlotPoints -> nn 
instead of MaxRecursion and try sequentially nn, 30, 40, 50. Each time 
the quality improves, but rotation somewhat slows down. 
> I hope this helps,
> Have fun, Alexei
> Alexei BOULBITCH, Dr., habil.
> IEE S.A.
> ZAE Weiergewan,
> 11, rue Edmond Reuter,
> L-5326 Contern, LUXEMBOURG
> Office phone :  +352-2454-2566
> Office fax:       +352-2454-3566
> mobile phone:  +49 151 52 40 66 44
> e-mail: alexei.boulbitch at

  • Prev by Date: Re: Clustering
  • Next by Date: Re: A new FrontEnd
  • Previous by thread: Re: FrontEnd: Rotation of "heavy" graphics objects
  • Next by thread: Re: FrontEnd: Rotation of "heavy" graphics objects