Re: Graphics Question
- To: mathgroup at smc.vnet.net
- Subject: [mg35459] Re: Graphics Question
- From: AES <siegman at stanford.edu>
- Date: Sat, 13 Jul 2002 03:48:46 -0400 (EDT)
- References: <agjj0o$24v$1@smc.vnet.net> <agm3v1$53i$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
> > Is there any way to create interactive graphics? It seems all animation is
> > done by precalculating frames. For some things this is ok, but it would be
> > nice to be able to dynamically alter a graphic, and even better make changes
> > based on input of various sorts. Perhaps an add-on package exists? Or
> > perhaps in an upcoming version?
I believe this is a fair and significant question to pose -- and
unfortunately a difficult one for Mathematica to answer.
What this poster would like, and so would I, is the ability to add a new
point or object, or a succession of new objects, to an existing
on-screen plot, without redrawing the whole plot -- for example, to see
a curve "crawl" across a plot without calculating and storing a whole
bunch of nearly identical images, or to let a user interactively move an
object in a plot with the mouse and see other parts of the plot change
appropriately in a fluid and instantaneous fashion. We'd like this to
be fast, and also very simple to program (an Mathematica command
"ShowAdded[Graphics[--]]" that adds a new graphics element to a plot
that's already on screen, along with an "Erase[Graphics]" command.)
Unfortunately, as I understand it, Mathematica graphics just aren't set
up to function in this fashion. These capabilities can be simulated to
some extent, if the computer is fast enough, but I believe the
fundamental architecture of Mathematica is based on formulating, then
displaying one complete PostScript graphic at a time. The idea of
adding new points to an existing, already on screen plot, without
redrawing the whole image, is not part of the underlying structure.
I don't fault Mathematica for this; It may not be possible to do
otherwise in a multi-platform package. Adding to a display already on
screen I believe implies having access to system-level or "screen-level"
aspects of the computer, and these are greatly different from computer
to computer.
Comments from more knowledgeable people obviously welcomed . . .
[Incidentally, is there an "Erase" command in Mathematica now? Can I program
myGraphic =Graphics[bunch-of-graphics-stuff]
Show[myGraphic]
Erase[myGraphic, one-piece-of-this-stuff]
ReShow[myGraphic]
???]
- Follow-Ups:
- Re: Re: Graphics Question
- From: jmt <jmt@agat.net>
- Re: Re: Graphics Question