Re: Curve Tracking and fetching Locator coordinates
- To: mathgroup at smc.vnet.net
- Subject: [mg119480] Re: Curve Tracking and fetching Locator coordinates
- From: John Fultz <jfultz at wolfram.com>
- Date: Sun, 5 Jun 2011 07:05:34 -0400 (EDT)
pt is only accessible from within the DynamicModule, and it will only be updated
if you wrap it in Dynamic. Here's a very simple extension of your example which
shows the value of pt at any given time:
DynamicModule[{pt = {1, 0}},
Graphics[{Circle[], Locator[Dynamic[pt, (pt = Normalize[#]) &]]},
PlotRange -> 2, PlotLabel -> Dynamic[pt]]]
I strongly encourage you to read the Introduction to Dynamic tutorial in the
documentation (type tutorial/IntroductionToDynamic in the search field) and work
through all of the examples.
Sincerely,
John Fultz
jfultz at wolfram.com
User Interface Group
Wolfram Research, Inc.
On Sat, 4 Jun 2011 06:19:42 -0400 (EDT), Just A Stranger 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 :)