Re: Dynamic Module with Trigger
- To: mathgroup at smc.vnet.net
- Subject: [mg96710] Re: [mg96671] Dynamic Module with Trigger
- From: "David Park" <djmpark at comcast.net>
- Date: Sat, 21 Feb 2009 19:41:01 -0500 (EST)
- References: <15627703.1235127915317.JavaMail.root@m02>
Hugh,
I'm not certain if I understand your objective. Why don't you draw your line
from zero to a + b, and keep b 'pure'? The following uses the slider to
readjust a and adjusts the existing line for the new value of a.
DynamicModule[
{a = 3, b = 0},
Column[
{Slider[Dynamic[a], {0, 10, 1}], Trigger[Dynamic[b], {0, 25}],
Row[{Dynamic[{a, a + b}]}],
Graphics[
{Dynamic[Line[{{0, 0}, {a + b, 0}}]]},
PlotRange -> {{0, 40}, {-10, 10}},
Frame -> True,
ImageSize -> 72 6]}]]
On the other hand, the following uses the slider to adjust a and sets b to
zero.
DynamicModule[
{a = 3, b = 0},
Column[
{Slider[Dynamic[a, (a = #; b = 0) &], {0, 10, 1}],
Trigger[Dynamic[b], {0, 25}],
Row[{Dynamic[{a, a + b}]}],
Graphics[
{Dynamic[Line[{{0, 0}, {a + b, 0}}]]},
PlotRange -> {{0, 40}, {-10, 10}},
Frame -> True,
ImageSize -> 72 6]}]]
Also, I wouldn't initialize b to anything other than zero or the initial
value of the Trigger.
David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/
From: Hugh Goyder [mailto:h.g.d.goyder at cranfield.ac.uk]
In the toy DynamicModule below pressing the trigger makes an existing
line longer. The initial length of the line is controlled by a slider.
The module works but I want to add the feature that when I move the
slider the trigger resets itself and the now changed initial line is
drawn. Is it possible to do this?
Thanks
Hugh Goyder
DynamicModule[
{a = 3, b},
b = 2;
Column[{
Slider[Dynamic[a], {0, 10, 1}],
Trigger[Dynamic[b, (b = #; b = b + a) &], {0, 25}],
Row[{Dynamic[{a, b}]}],
Graphics[{Dynamic[Line[{{0, 0}, {b, 0}}]]},
PlotRange -> {{0, 40}, {-10, 10}}, Frame -> True,
ImageSize -> 72 6]
}]
]