Re: Need Help With Locator in a Manipulate

*To*: mathgroup at smc.vnet.net*Subject*: [mg132273] Re: Need Help With Locator in a Manipulate*From*: Bob Hanlon <hanlonr357 at gmail.com>*Date*: Tue, 28 Jan 2014 06:16:03 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*Delivered-to*: l-mathgroup@wolfram.com*Delivered-to*: mathgroup-outx@smc.vnet.net*Delivered-to*: mathgroup-newsendx@smc.vnet.net*References*: <20140126081421.81CD369D3@smc.vnet.net>

I don't know how to stop the giggle but this adds tooltips over the locators. I also changed the definition of the curve to be a more direct function of x. Manipulate[ Module[ {f, b, xmin = 0, xmax = 100}, b = pt1[[2]] - m*pt1[[1]]; f[{x1_, y1_}, x_] = (x1/x)^(a/(1 - a)) y1; pt2 = {pt2[[1]], m pt2[[1]] + b}; Plot[{f[pt1, x], m x + b}, {x, 0, 100}, Epilog -> {White, Tooltip[Disk[pt1, {1, 2}], StringForm["pt1 = ``", pt1]], Tooltip[Disk[pt2, {1, 2}], StringForm["pt2 = ``", pt2]]}, AxesOrigin -> {0, 0}, PlotRange -> {{xmin, xmax}, {Automatic, 200}}]], {{a, .5, "Shape (a)"}, .2, .8, .01, Appearance -> "Labeled"}, {{m, -1, "Slope (m)"}, -3, -.4, .01, Appearance -> "Labeled"}, {{pt1, {10, 80}}, Locator}, {{pt2, {50, 40}}, Locator}] Bob Hanlon On Sun, Jan 26, 2014 at 2:13 PM, Gregory Lypny <gregory.lypny at videotron.ca>wrote: > Excellent. Thank you, Bob. > > Late yesterday I had accomplished, more or less, the same thing by putting > the following in the Epilog of my plot: > > Locator[Dynamic[pt2, pt2 = {pt2[[1]], m pt2[[1]] + pt1[[2]] - m*pt1[[1]]}]] > > In either case, the locator jiggles as it is being moved. I suppose this > because its position is being re-evaluated. Is there any way to make its > movement smoother? > > Regards, > > Gregory > > > > On Sun, Jan 26, 2014, at 2:05 PM, Bob Hanlon <hanlonr357 at gmail.com> wrote: > > Reposition the locator point each time the locator is moved. > > Manipulate[ > Module[{f, b, xmin = 0, xmax = 100, k}, > b = pt1[[2]] - m*pt1[[1]]; > k[{x_, y_}, a_] := x^a y^(1 - a); > > pt2 = {#[[1]], m #[[1]] + b} &[pt2]; > > Plot[{(k[pt1, a]/x^a)^(1/(1 - a)), m x + b}, > {x, 0, 100}, > AxesOrigin -> {0, 0}, > PlotRange -> {{xmin, xmax}, {Automatic, 200}}]], > {{a, .5, "Shape (a)"}, .2, .8, .01, > Appearance -> "Labeled"}, > {{m, -1, "Slope (m)"}, -3, -.4, .01, > Appearance -> "Labeled"}, > {{pt1, {10, 80}}, Locator}, > {{pt2, {50, 50}}, Locator}] > > > Bob Hanlon > > > > On Sun, Jan 26, 2014 at 3:14 AM, Gregory Lypny <gregory.lypny at videotron.ca > > wrote: > >> >> Hello everyone, >> >> I'm creating a Manipulate that has two locators. I was able to get the >> first locator, pt1, working the way I want, but am not sure how to handle >> the second, pt2. >> >> Locator pt1 determines the intersection of two curves, a straight line >> with slope m and a power function, k[], with shape parameter a. Both m and >> a can be varied using sliders. I want the second locator, pt2, to be >> constrained to move along the line determined by locator pt1 and slope m. >> In a previous post some time ago, Bob Hanlon and John Fultz kindly showed >> me how to constrain a locator to move around the perimeter of a circle, but >> this used DynamicModule, and I am not sure how to bring this into a >> Manipulate. Any guidance would be greatly appreciated. The code for my >> Manipulate is below. Right now, locator pt2 is arbitrarily set to {50,50} >> but it doesn't do anything. >> >> >> Manipulate[ >> Module[{f,b,xmin=0,xmax=100,k}, >> b=pt1[[2]]-m*pt1[[1]]; >> k[{x_,y_},a_]:=x^a y^(1-a); >> Plot[{(k[pt1,a]/x^a)^(1/(1-a)),m x +b},{x,0,100}, >> AxesOrigin->{0,0}, >> PlotRange->{Automatic,{0,200}}]], >> {{a,.5,"Shape (a)"},.2,.8,Appearance->"Labeled"}, >> {{m,-1,"Slope (m)"},-3,-.4,Appearance->"Labeled"}, >> {{pt1,{10,80}},Locator}, >> {{pt2,{50,50}},Locator}] >> >> Regards, >> >> Gregory Lypny >> >> >> > >

**References**:**Need Help With Locator in a Manipulate***From:*Gregory Lypny <gregory.lypny@videotron.ca>