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
>
>
>
>
>