# Behaviour of Locator

I seek advice regarding the constrained behaviour of the Locator: appears confined to square {0,0}->{1,1}. When I change starting position it snaps to this constrained region.

The code I am referring to follows:

Manipulate[
Module[{cn, d}, cn = {c1, c2, c3};
d = Norm[# - pt] & /@ {c1, c2, c3};
Graphics[{{Black, Point[cn]},
MapThread[{#1, Circle[#2, #3]} &, {{Red, Green, Blue}, cn, d}]}]
],
{pt, {1, 1}, ControlType -> Locator, LocatorRegion -> Full},
Initialization -> (c1 = {0, 0}; c2 = {3, 0}; c3 = {0, 3};)
]


The constraint remains whether I define PlotRange, use EuclideanDistance or otherwise define the distance function.

The following graphic shows (obviously) this is well defined outside the region of constraint of the Locator. Intersection point at {4,4}with fixed points at{0,0}, {1,0}, {0,1}. Image generated by:

Graphics[{{Black, Point[cc = {{0, 0}, {1, 0}, {0, 1}}]}, {Red,
Point[{{4, 4}}]}, Map[Circle[#1, Norm[# - {4, 4}]] &, cc]}]


I can get around the constraint using Slider2D but I am still uncertain about the Locator issue.

Manipulate[
Module[{cn, d}, cn = {c1, c2, c3};
d = Norm[# - pt] & /@ {c1, c2, c3};
Graphics[{{Black, Point[cn]}, {Red, PointSize[0.02], Point[pt]},
MapThread[{#1, Circle[#2, #3]} &, {{Red, Green, Blue}, cn, d}]},
PlotRange -> {{-5, 5}, {-5, 5}}]
],
{pt, {-4, -4}, {4, 4}, ControlType -> Slider2D},
Initialization -> (c1 = {0, 0}; c2 = {1, 0}; c3 = {0, 1};)
]


Thank you @Nasser I look forward to trying your code.

• Thank you @Mr.Wizard, for edit. Makes question more readable. Am sorry it was syntax error/understanding error on specifying Locator. Questioned answered and learned something. Whole point, I guess. Jul 25, 2013 at 1:11

I've have not used Locator for a while. But please try this (I am not sure if this is what you asking about either, but this makes the locator free to move anywhere in the PlotRange given in the Graphics), if this is not what you meant, will delete this

Manipulate[
Module[{cn = {c1, c2, c3}, d},
d = Norm[# - pt] & /@ cn;
Graphics[{
{Black, Point[cn]},
MapThread[{#1, Circle[#2, #3]} &, {{Red, Green, Blue}, cn, d}
]
}, PlotRange -> {{-6, 6}, {-6, 6}},
Axes -> True]
],
{{pt, {1, 1}}, Locator},
Initialization :>
(c1 = {0, 0};
c2 = {3, 0};
c3 = {0, 3};
)
] • Thank you @Nasser. If I change the syntax of my the specification of the Locator from {pt,{1,1},Locator...} to {{pt,{1,1},Locator} as in your code it resolves my issue without axes or plot range. A coding misunderstanding by me now resolved. Jul 24, 2013 at 7:33