Re: Constrain locator
- To: mathgroup at smc.vnet.net
- Subject: [mg121726] Re: Constrain locator
- From: Peter Breitfeld <phbrf at t-online.de>
- Date: Wed, 28 Sep 2011 02:45:12 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <j5r42k$iac$1@smc.vnet.net>
You my use LocatorPane, which takes a locator and a background, which can
be any graphic. Then a possibility might be:
f0[x_] := x^2
DynamicModule[{p = {1, 1}},
LocatorPane[Dynamic[p, (p = {#[[1]], f0[#[[1]]]}) &],
Plot[f0[x], {x, -10, 10},
PlotRange ->Â {{-4, 4}, {-1, 10}},
AspectRatio -> 1,
Epilog ->
Inset[
Graphics@Text[
Style[NumberForm[#, {4, 2}] & /@ Dynamic[p], Larger], {0,0}],
{1.5, 9}]]]
]
Tom De Vries wrote:
> Hello everyone,
>
> I'm looking for a simple way to constrain a locator to a particular function.
>
> I've seen a few methods given by posters to this group and others.
>
> In programs like Sketchpad and Geogebra you can add a point to a
> function and immediately constrain the point to that function.
> You can then "trace" the point, displaying coordinates, etc.
>
> I'm trying to work within Mathematica if I can, but this is hard for
> me to implement.
>
> Working through a few examples, I distilled things down to the
> following snippet of code.
> It puts a point on the function y = x^2 and allows the point to be
> dragged along it.
>
> f0[x_] := x^2;
>
> DynamicModule[{p = {1, 1}},
> loc := Locator[Dynamic[p, (p = {#[[1]], f0[#[[1]]]}) &]];
> Show[{Plot[f0[x], {x, -10, 10}], Graphics[{loc}]},
> PlotRange -> {{-4, 4}, {-1, 10}},
> AspectRatio -> 1]
> ]
>
> I would be grateful for a few things...
>
> A) a little help on exactly how this works...!
> B) changing the display of the locator to a point on the function
> C) displaying the coordinate of the point
>
> I appreciate the input given by members of this group.
>
> Sorry for the trivial question, but it sure would help with a lot of
> things I am trying to teach at the junior/high school level.
>
> Tom
>
--
_________________________________________________________________
Peter Breitfeld, Bad Saulgau, Germany -- http://www.pBreitfeld.de