Re: Curve Tracking and fetching Locator coordinates
- To: mathgroup at smc.vnet.net
- Subject: [mg119471] Re: Curve Tracking and fetching Locator coordinates
- From: Armand Tamzarian <mike.honeychurch at gmail.com>
- Date: Sun, 5 Jun 2011 07:03:57 -0400 (EDT)
- References: <isd0rs$1mk$1@smc.vnet.net>
On Jun 4, 8:19 pm, Just A Stranger <forpeopleidontk... at gmail.com> wrote: > Hello, I'm trying to figure out how to constrain a locator's movement along > a curve, but then fetch the coordinates of the locator to use in a > calculation. > > The documentation has an example of a Locator moving along a circle, but > it's strange, because the way they do it using Normalize seems to make it > not clear how to access the coordinates of the locator. > > This is the example code from the Locator documentation: > > DynamicModule[{pt = {1, 0}}, > Graphics[{Circle[], Locator[Dynamic[pt, (pt = Normalize[#]) &]]}, > PlotRange -> 2]] > > I'm guessing the normalize function is being applied to the locator > position, and turning it into a unit vector (not entirely clear on how that > works in the code though). That has the effect of tracking the locator on a > unit circe But there is no variable for the locator positon. pt is simply a > list of constants {1,0} (although, I don't understand that entirely either, > because it also appears to be set to simply being a Normalize function) > > Anyway, if someone could give me a hint as to what is going on in that code > I would much appreciate it (documentation seems sparse on the locator) > > Barring that could someone just give me a quick hack for fetching the > locator's coordinates when it is being tracked along a circle (or better yet > if it is being tracked along an arbitrary curve.)? > > Admittedly I have a foggy grasp about how Dynamic modules work, I'm able to > do basic stuff, but it starts to get unwieldy if I branch out. > > Thank you for any help :) If you just want to get the points as you move along the circle then this will do it: DynamicModule[{pt = {1, 0}}, {Graphics[{Circle[], Locator[Dynamic[pt, (pt = Normalize[#]) &]]}, PlotRange -> 2], Dynamic[pt]}] Mike