Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Show[] on 3D graphics, rotation by mouse, how to improve performance

  • To: mathgroup at smc.vnet.net
  • Subject: [mg108873] Show[] on 3D graphics, rotation by mouse, how to improve performance
  • From: "Nasser M. Abbasi" <nma at 12000.org>
  • Date: Mon, 5 Apr 2010 08:01:08 -0400 (EDT)
  • Reply-to: "Nasser M. Abbasi" <nma at 12000.org>

Hello;

This is on XP SP2, M7.0

I noticed that when I have 3D graphics, and then I use the mouse to rotate 
the image, sometimes Mathematica will pause for longer time, and the 
rotation is not always smooth. May be I am not doing this the right way.

I am visualizing the Z transform in 3D with the unit circle add in.

So, I create a Cylinder (to see the unit circle), then do a Plot3D of the 
magnitude of Z transform, then I use Show[] to display them together.  The 
3D plots looks fine, but when it comes to rotating the plot generated, one 
has to be really slow with the mouse, else if I move the mouse fast, 
_sometimes_ I get strange results. I captured 2 such effects in the 
following folder:

http://12000.org/tmp/zt_040410/

Is there a more "efficient" way for me to do this? Other than Show[], I 
could not find a way to combine these. Using Epiloge gave me some hard time 
to make it work, I need to look at it again.... I remember there used to be 
a function called DisplayTogother[], was going to try it, but it is not 
there anymore?

Any way, here is the code which generated the above 2 results:

ClearAll["Global`*"];
sequence = n^2*a^(2*n);
zt = ZTransform[sequence, n, z]
zt = zt /. z -> {x + I*y};
ztMag = ComplexExpand[Abs[zt]]
unitCircle = Graphics3D[Cylinder[{{0, 0, 0}, {0, 0, 0.5}}, 1]];
Show[{Plot3D[ztMag /. a -> 3, {x, -12, 12}, {y, -6, 6},
    PlotRange -> {Automatic, Automatic, {-20, 20}}], unitCircle}]


ClearAll["Global`*"];
zt = (z^(-1) - z^(-2))/(1 - 2/3/z + 1/3/z^2)
zt = zt /. z -> {x + I*y};
ztMag = ComplexExpand[Abs[zt]]
unitCircle = Graphics3D[Cylinder[{{0, 0, 0}, {0, 0, 2}}, 1]];
Show[{Plot3D[ztMag, {x, -2, 2}, {y, -2, 2},
    PlotRange -> {Automatic, Automatic, {-20, 20}}], unitCircle}]


thanks
--Nasser 



  • Prev by Date: Any answer for this ParallelDo error
  • Next by Date: Re: Orientation of Arrowheads
  • Previous by thread: Re: Any answer for this ParallelDo error
  • Next by thread: Solutions provided for "combining elements