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