Re: Locator Manipulate
- To: mathgroup at smc.vnet.net
- Subject: [mg113282] Re: Locator Manipulate
- From: Fred Klingener <gigabitbucket at BrockEng.com>
- Date: Thu, 21 Oct 2010 07:05:28 -0400 (EDT)
- References: <i9jq3k$ohm$1@smc.vnet.net>
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