Re: Fast interactive graphics
- To: mathgroup at smc.vnet.net
- Subject: [mg77946] Re: Fast interactive graphics
- From: Helen Read <read at math.uvm.edu>
- Date: Wed, 20 Jun 2007 05:34:27 -0400 (EDT)
- Organization: Aioe.org NNTP Server
- References: <f58d3p$8cl$1@smc.vnet.net>
John Fultz wrote: > On Mon, 18 Jun 2007 06:50:42 -0400 (EDT), Helen Read wrote: >> >> On a somewhat related note, >> I find that rotating 3D graphics with the mouse in some situations >> completely freezes up my 5-year-old PC (2.26 GHz, 1 GB RAM). It's quick >> for a Plot3D or ParametricPlot3D of a simple surface, but if I combine >> multiple graphics, the response is incredibly slow to the point of >> freezing up. I ran into this when making up illustrations of >> approximating the volume of a surface of revolution with 8 or so disks / >> washers / cylindrical shells, which I put together with Table and Show. >> The graphic renders pretty quickly (a lot faster than 5.2, on the same >> PC), but it's pretty much impossible to rotate with the mouse. Hopefully >> it will be more responsive in the classrooms where I teach, which have >> newer computers. > > Feel free to send me some of the examples you're seeing problems with, and > perhaps I can help you out. Since you weren't very specific in this email, I > can't say too much. You did, though, mention that you were plotting cylinders, > and so I should mention Cylinder[] and the Method->{"CylinderPoints"} option. > "CylinderPoints" is documented right at the end of this tutorial... Thanks for point me to Cylinder[]. I had been constructing everything with ParametricPlot3D, and didn't know about the knew Cylinder[] graphics primitive. Cylinder[] works quite well, and I now have some lovely illustrations of approximating volumes with disks (a Table of stacked, opaque cylinders) and with cylindrical shells (a Table of transparent, nested cylinders). They look great, render in a reasonable time even on my old PC, and rotate easily with the mouse, without having to use the Method->{"CylinderPoints"} option. The one graphic that's been causing the most trouble is the following. The idea is to illustrate the use of washers (stacked on top of each other) to approximate the volume of a solid of revolution. For example: f[y_]=1/12(18-y+9y^2-3y^4); g[y_]=1-y/12-(y^2)/8; RevolutionPlot3D[{{f[y], y}, {g[y], y}}, {y, -2, 2}] Because of the "hole" in the middle of each washer, I was unable to come up with a way to do what I needed with Cylinder[]. (I tried concentric cylinders, with the idea of having the inner cylinder acting as negative space -- the hole -- but after much fiddling around with Opacity, Color, etc., I couldn't find a way to make it look right.) So here's what I have instead. n=10; dy=4/n; Show[Table[RegionPlot3D[g[-2+(k+1/2)dy]^2 <= x^2+y^2 <= f[-2+(k+1/2)dy]^2,{x,-3,3},{y,-3,3},{z,-2+k*dy,-2+(k+1)dy}, PlotPoints->25,Mesh->False],PlotRange->Automatic] Until I tried setting Mesh->False, this thing would freeze up my PC completely if I tried to rotate it with the mouse. With Mesh->False it's a lot better -- it's still a bit sluggish, but it will rotate with the mouse as long as n (and the number of PlotPoints) isn't too large. I think it will be fine on the newer computers in the classroom, but if you can think of a way to make it a little less sluggish and still look OK, let me know. -- Helen Read University of Vermont