Difficulties with LocatorPanel
- To: mathgroup at smc.vnet.net
- Subject: [mg112153] Difficulties with LocatorPanel
- From: David Carraher <david_carraher at terc.edu>
- Date: Thu, 2 Sep 2010 02:32:05 -0400 (EDT)
Hi All, I've been struggling to implement a locator, located at {1,0} that rescales the x-axis by stretching/shrinking. I want to use LocatorPane rather than Locator because I eventually to add another half-dozen locators that have different behaviors and appearance. The solution in LocatorPane would work more or less like the following instance of Locator[]. The red and blue points position themselves dynamically as the scale stretches and shrinks (as desired). The Locator dynamically rescales the x-axis by stretching and shrinking. And It is always positioned at {1,0}. Manipulate[ Graphics[{ Locator[Dynamic[p, (p = Scaled[{#[[1, 1]], .5}]) &], ImageSize -> 25], {PointSize -> Large, Blue, Point[{.5, 0}], Red, Point[{2.5, 0}]}}, ImageSize -> {350, 150}, AspectRatio -> 1/4, PlotRange -> {{0, maxX = Dynamic[Abs[1/p[[1, 1]]]]}, {-6, 6}}, Axes -> True], {{p, Scaled[{0.01, 0.5}]}, ControlType -> None} ] The LocatorPane, In addition to having these features, and the inherent ability to hold several locators, would: not be dependent on Scale[], because some locators will work with the Coordinate values themselves. (unless LocatorPanel can work with both scaled and regular locators.) Here's the best I've been able to come up with: Manipulate[ Dynamic@Grid[{ {LocatorPane[Dynamic[pLoc], Graphics[{ {PointSize -> Large, Blue, Point[{.5, 0}], Red, Point[{2.5, 0}]}}, ImageSize -> {350, 150}, AspectRatio -> 1/4, Axes -> True, PlotRange -> {{0, 1/Dynamic[pLoc[[1, 1]]]}, {-6, 6}}], (*Allowable roving of the Locators *) {{{1/20, 0}, {20, 0}}}, (*Appearance of Locatos *) Appearance -> { Framed["x1", Background -> LightBlue, RoundingRadius -> 3, FrameMargins -> 1]}]} }], (*Locator*) {{x1, {1, 0}}, ControlType -> None}, {{pLoc, {x1}}, ControlType -> None}, Alignment -> {Center, Center} ] I read the documentation carefully and worked on it until I can get no further ahead by myself. But as you shall see, the locator in LocatorPane moves to positions other than {1, 0}. I'm not sure whether my problem lies with the mathematics or with Mathematica. Any help would be appreciated. thanks, David Carraher