I'm writing a Dynamic module with 3D graphics and several input
fields. Once the 3D plot is rendered, simply typing in the input
fields become extremely slow (even though the graphic is not
changing).
Here's a simple example:
DynamicModule[{f, g},
{InputField[Dynamic[f], FieldSize -> 10],
InputField[Dynamic[g], FieldSize -> 10],
Dynamic[Plot3D[f, {x, -2, 2}, {y, -2, 2}]]
}
]
Initially, both input fields respond quickly to typing. If I enter
something in the first, like x, then the plot shows, and the input
fields no longer respond quickly to typing. If I do the same thing
with Manipulate, I don't experience this problem:
Manipulate[
Plot3D[f, {x, -2, 2}, {y, -2, 2}],
{f}, {g}]
I would like to use Dynamic rather than Manipulate because the
eventual UI will be quite a bit more complicated, but I'm not sure
what's causing the slow performance. Does anybody have any tips?
Thanks!
David Park
djm...@comcast.net
http://home.comcast.net/~djmpark/
Cheers -- Sjoerd
For example:
DynamicModule[{f, g},
{InputField[Dynamic[f], FieldSize -> 10],
InputField[Dynamic[g], FieldSize -> 10],
Dynamic[Plot3D[f, {x, -2, 2}, {y, -2, 2}, PlotPoints -> 250],
TrackedSymbols -> {f}]}
]
has noticeably slower response in the input fields as compared to
Manipulate[
Plot3D[f, {x, -2, 2}, {y, -2, 2}, PlotPoints -> 250],
{f}, {g}]
It appears to me (although this is just a guess) that the Dynamic
version tries to redraw the graphics each time I type in an input
field, whereas the Manipulate version does not. Any idea what
Manipulate does to get this behavior?
By the way, I'm using Mathematica 6, if it makes a difference.
On May 26, 5:19 pm, "David Park" <djmp...@comcast.net> wrote:
> When I copy your DynamicModule example into a fresh notebook, I don't
> experience any problem with slow response to typing before or after the p=
lot
> is rendered.
>
> David Park
> djmp...@comcast.nethttp://home.comcast.net/~djmpark/