Re: Locator Manipulate
- To: mathgroup at smc.vnet.net
- Subject: [mg113420] Re: Locator Manipulate
- From: roby <roby.nowak at gmail.com>
- Date: Wed, 27 Oct 2010 05:34:33 -0400 (EDT)
- References: <i9jq3k$ohm$1@smc.vnet.net> <i9p6pd$onu$1@smc.vnet.net>
On 21 Okt., 13:05, Fred Klingener <gigabitbuc... at BrockEng.com> wrote:
> On Oct 19, 5:58 am, roby <roby.no... at gmail.com> wrote:
>
>
>
> > Dear all !
>
> > I am trying (hard) to use an individual Locator inside Manipulate.
>
> > While the plain version works:
>
> > Manipulate[Graphics[Circle[{0, 0}, 10]],
> > {{p, {0, 0}}, Locator}]
>
> > The individual version restricts the movement to {{0,0},{1,1}}, any
> > hints ?
>
> > Manipulate[Graphics[Circle[{0, 0}, 10]],
> > {{p1, {0, 0}}, Locator[#] &, ControlType -> Locator}]
>
> > Regards Robert
>
> (* This sets Locator limits to the graphics extent: *)
>
> Manipulate[
> Column[{
> Dynamic[p1]
> , Graphics[Circle[{0, 0}, 10]]
> }]
> , {{p1, {0, 0}}
> , {-10, -10}
> , {+10, +10}
> , Locator[#] &
> , ControlType -> Locator}
> ]
>
> (* This is a way to constrain the Locator inside the Circle
> (after you get it running, you probably want to turn off the
> original Locator graphic with an Appearance->None) *)
>
> Manipulate[
> DynamicModule[{p2 = If[Norm[p1] > 10, 10 p1/Norm[p1], p1]}
> , Column[{
> Dynamic[p1]
> , Dynamic[p2]
> , Graphics[{
> Circle[{0, 0}, 10]
> , Red
> , Disk[p2, 0.5]
> }]
> }]
> ]
> , {{p1, {10, 0}}
> , {-10, -10}
> , {+10, +10}
>
> , ControlType -> Locator}
> ]
>
> (* and this is a way to constrain the Locator to run on the Circle
> itself. *)
>
> Manipulate[
> DynamicModule[{p2 = 10 p1/Norm[p1]}
> , Column[{
> Dynamic[p1]
> , Dynamic[p2]
> , Graphics[{
> Circle[{0, 0}, 10]
> , Red
> , Disk[p2, 0.5]
> }]
> }]
> ]
> , {{p1, {10, 0}}
> , {-10, -10}
> , {+10, +10}
>
> , ControlType -> Locator}
> ]
>
> Hth,
> Fred Klingener
Hi Fred,
thank you for your effort.
According to your first example:
Manipulate[
Column[{
Dynamic[p1]
, Graphics[Circle[{0, 0}, 10]]
}]
, {{p1, {0, 0}}
, {-10, -10}
, {+10, +10}
, Locator[#] &
, ControlType -> Locator}
]
When I replace the line Locator[#]& by e.g. Foo[#]& the functionality
does not change at all.
It seems that the anonymous functions Locator[#]& respectivly Foo[#]&
are not called by Mathematica at all.
to your other examples:
... This is a way to constrain the Locator inside the Circle ...
this is not realy true only your Red Disc[] is constrained.
What I realy need would be a (2D) Locator[ ] and 2 additional
Slider[ ] one for x and one for y.
Then I would like to control the same Locator either by the Locator[ ]
or by the Slider[ ], of coures both Sliders as well as the Locoator
should move syncronously.
Regards Robert