Re: Locator + EventHandler
- To: mathgroup at smc.vnet.net
- Subject: [mg128311] Re: Locator + EventHandler
- From: "Alexander Elkins" <alexander_elkins at hotmail.com>
- Date: Sat, 6 Oct 2012 01:50:12 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <k4lvkh$d45$1@smc.vnet.net>
Here is an example using Locator with Manipulate and LocatorAutoCreate->True. To use this example, see the help for LocatorAutoCreate : With LocatorAutoCreate -> True, any Alt + Click that does not hit an existing locator will cause a new locator to be created at the position of the click.Alt + Click on an existing locator deletes the locator. Manipulate[ If[Length[p] < 2, Graphics[Point[p], PlotRange -> {{-1, 1}, {-1, 1}}, Frame -> True], Plot[Evaluate@Interpolation[p, InterpolationOrder -> Length[p] - 1][x], {x, Min[p[[All, 1]]], Max[p[[All, 1]]]}, PlotRange -> {{-1, 1}, {-1, 1}}, Frame -> True, AspectRatio -> 1]], {{p, {}}, Locator, LocatorAutoCreate -> True}] Hope this helps... "Alexei Boulbitch" <Alexei.Boulbitch at iee.lu> wrote in message news:k4lvkh$d45$1 at smc.vnet.net... > Dear Community, > > There is a nice example at Help/EventHandler/Applications that enables one to set points on demand, that are interpolated on the spot. Here is the code: > > interpolationCurve[p_, n_] := > Module[{x, f = Interpolation[p, InterpolationOrder -> n ]}, > First@Plot[Evaluate@f[x], {x, Min[p[[All, 1]]], Max[p[[All, 1]]]}]]; > > DynamicModule[{n = 2, p = {}, c = {}}, > EventHandler[ > Dynamic@Graphics[{Point[p], c}, PlotRange -> 1, Frame -> True], > "MouseDown" :> > (p = Union[Sort@Append[p, MousePosition["Graphics"]], > SameTest -> (First[#1] == First[#2] &)]; > If[Length[p] >= n + 1, c = interpolationCurve[p, n]])]] > > I am looking for a way to make there locators instead of the points. Technically, it is a combination of Locator, or LocatorPane with the EventHandler. The idea behind is to be able to not only to set, but also to adjust each point. I tried, but if I succeeded to set locators, they have been motionless. > Have you ideas of how to make this? > > Thank you, Alexei > > > Alexei BOULBITCH, Dr., habil. > IEE S.A. > ZAE Weiergewan, > 11, rue Edmond Reuter, > L-5326 Contern, LUXEMBOURG > > Office phone : +352-2454-2566 > Office fax: +352-2454-3566 > mobile phone: +49 151 52 40 66 44 > > e-mail: alexei.boulbitch at iee.lu > > > > >