Re: DynamicModule causing problems with Manipulate setter bar
- To: mathgroup at smc.vnet.net
- Subject: [mg102810] Re: [mg102748] DynamicModule causing problems with Manipulate setter bar
- From: "David Park" <djmpark at comcast.net>
- Date: Thu, 27 Aug 2009 06:39:08 -0400 (EDT)
- References: <3338029.1251289546673.JavaMail.root@n11>
I would make a custom dynamic with Presentations: Needs["Presentations`Master`"] DynamicModule[ {m = 1, functiontype = Sin}, panelpage[ pagelet[ (* SetterBar for function choice *) phrase[Subscript[f, "m"][x], ": ", SetterBar[ Dynamic[functiontype], {Sin -> HoldForm[Sin[\[Pi] "m" x] // TraditionalForm], Cos -> HoldForm[Cos[\[Pi] "m" x] // TraditionalForm]}]], (* Slider for m *) phrase["m: ", Slider[Dynamic[m], {0, 3, 1}, Appearance -> "Labeled"]], (* Function plot with filling *) Dynamic@ Plot[functiontype[\[Pi] m x], {x, -1, 1}, PlotRange -> {-1, 1}, PlotRangePadding -> .05, Filling -> Axis, Frame -> True, ImageSize -> 350] ](* pagelet *), Style["Harmonics of Sin and Cos", 16] ](* panelpage *) ] Everything works the way you prescribed. David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ From: Porscha Louise McRobbie [mailto:pmcrobbi at umich.edu] Hello, I often have multiple Manipulate commands in a single file, and to avoid them interfering I always wrap them with a DynamicModule. The following Manipulate is the basic idea of what I want: Manipulate[ Plot[ffun[y, m1], {y, -1, 1}, Filling -> Axis, PlotRange -> {{-1, 1}, {-1.1, 1.1}}], {{ffun, f1, "\!\(\*SubscriptBox[\"f\", \"m\"]\)(x)"}, {f1 -> TraditionalForm[Sin[m Pi x]], f2 -> TraditionalForm[Cos[m Pi x]]}}, {{m1, 0, "m"}, 0, 3, 1}, Initialization :> { (f1[yy_, mm_] := Sin[mm Pi yy]), (f2[yy_, mm_] := Cos[mm Pi yy])}] However, I've noticed the following two problems when trying to wrap the above with DynamicModule: 1. If I place {f1,f2} inside DynamicModule, the graph seems fine but the blue highlighter color on the setter bar for fm(x) has disappeared. DynamicModule[{f1, f2}, Manipulate[ Plot[ffun[y, m1], {y, -1, 1}, Filling -> Axis, PlotRange -> {{-1, 1}, {-1.1, 1.1}}], {{ffun, f1, "\!\(\*SubscriptBox[\"f\", \"m\"]\)(x)"}, {f1 -> TraditionalForm[Sin[m Pi x]], f2 -> TraditionalForm[Cos[m Pi x]]}}, {{m1, 0, "m"}, 0, 3, 1}, Initialization :> { (f1[yy_, mm_] := Sin[mm Pi yy]), (f2[yy_, mm_] := Cos[mm Pi yy])}]] 2. If I place {f1,f2,m,x} inside DynamicModule, the graph seems fine but now the labels for "m" and "x" read "$$m" and "$$x" (in addition to the blue highlighting being gone). DynamicModule[{f1, f2, m, x}, Manipulate[ Plot[ffun[y, m1], {y, -1, 1}, Filling -> Axis, PlotRange -> {{-1, 1}, {-1.1, 1.1}}], {{ffun, f1, "\!\(\*SubscriptBox[\"f\", \"m\"]\)(x)"}, {f1 -> TraditionalForm[Sin[m Pi x]], f2 -> TraditionalForm[Cos[m Pi x]]}}, {{m1, 0, "m"}, 0, 3, 1}, Initialization :> { (f1[yy_, mm_] := Sin[mm Pi yy]), (f2[yy_, mm_] := Cos[mm Pi yy])}]] How can I localize the variables f1,f2,m,x but still have the labels look how I want them to? Many thanks! Porscha