MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

LocatorPane: turn off "direct any click to nearest locator"?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg78707] LocatorPane: turn off "direct any click to nearest locator"?
  • From: Tom <thomasan at gmail.com>
  • Date: Sat, 7 Jul 2007 06:06:18 -0400 (EDT)

Is there any way to change the behavior of LocatorPane so that it
ignores clicks that are not on any of the locators? I want to be able
to click on individual locators and drag them around, but I don't want
stray clicks on white space to affect the locators. The documentation
for LocatorPane says that "LocatorPane[pts,back,range] by default
directs any click to the nearest locator." This seems to imply that
this behavior can be turned off. I have tried all of the available
options for LocatorPane, along with some unavailable ones :), with no
success.

Basically, what I'm looking for is a LocatorPane that acts like a
(dynamic) set of Locators. With a Locator, you have to click on the
Locator itself (and then drag) to change its position.

The closest I've come to the behavior I want is shown below: I put a
test in the Dynamic list of points displayed by the locators, that
only accepts location changes within a defined dx and dy. This works,
but it has the side effect of not registering fast dragging of the
locators.

DynamicModule[{pts = {{0, 0}, {1, 1}, {2, 2}}},
 LocatorPane[
  Dynamic[pts, (pts = If[Max[Abs[Flatten[# - pts]]] < 0.05, #, pts])
&],
  Graphics[{Dynamic[Line[pts]]}]]]

I've also tried using a dynamic list of Locators, but that doesn't
seem to work. I could probably "roll my own" using an EventHandler,
but I'd rather use the probably-more-robust LocatorPane.

Thanks for any advice,
Tom



  • Prev by Date: DensityPlot colours misbehaving
  • Next by Date: something funny!
  • Previous by thread: Re: DensityPlot colours misbehaving
  • Next by thread: something funny!