Automatically colred and indexed custom locators
- To: mathgroup at smc.vnet.net
 - Subject: [mg124541] Automatically colred and indexed custom locators
 - From: Chris Young <cy56 at comcast.net>
 - Date: Tue, 24 Jan 2012 05:05:20 -0500 (EST)
 - Delivered-to: l-mathgroup@mail-archive0.wolfram.com
 
After quite a bit of re-reading the help on LocatorPane, I discovered 
the following very helpful hint:
With Appearance->{Subscript[g, 1],Subscript[g, 2],...}, the i\[Null]^th 
locator is displayed as Subscript[g, i]. »
Putting this into effect, and putting my graphics in the following 
function, I came up with a handy way to index and color auto-created 
locators in a Manipulate, so you know at a glance which point is which. 
Another nice feature when LocatorPane is used is that you can get very 
smooth snapping to a grid just by including that in the range 
specification. Below,  it's the third list in {{-2, -2}, {2, 2}, {.25, 
..25}}.
Only two small problems:
1) When first created, the points don't get snapped to the grid.
2) If the locators are made too small,  offsetting the text labels 
nudges them away from the correct positions.
http://home.comcast.net/~cy56/Mma/CustomLocators.nb
http://home.comcast.net/~cy56/Mma/CustomLocatorsPic1.png
http://home.comcast.net/~cy56/Mma/CustomLocatorsPic2.png
Chris Young
cy56 at comcast.net
locGraphics[k_, n_, locSize_, opac_, offset_] :=
 Graphics[
  {Opacity[opac], Hue[0.85 (k - 1)/(n - 1)], Disk[{0, 0}],
   Opacity[1], Black,
   Circle[{0, 0}],
   Line[{{-1.5, 0}, {1.5, 0}}],
   Line[{{0, -1.5}, {0, 1.5}}],
   Text[k, {0, 0}, offset]},
  ImageSize -> locSize
  ]
Manipulate[
 DynamicModule[
  {P, n},
  P = {{0, 0}, {1, 1}};
  Dynamic @
   LocatorPane[
    Dynamic @ P,
    Dynamic @
     Show[
      Graphics[{Thick, Line[P]}],
      Axes -> True,
      PlotRange -> 2,
      GridLines -> {Range[-2, 2, 0.25], Range[-2, 2, 0.25]},
      GridLinesStyle -> LightGray
      ],
    {{-2, -2}, {2, 2}, {.25, .25}},
    LocatorAutoCreate -> True,
    Appearance -> (
      n = Length[P];
      Table[locGraphics[k, n, locSize, opac, offset], {k, 1, n}]
      )
    ]
  ],
 {{locSize, 15}, 5, 80, 1},
 {{opac, 0.75}, 0, 1},
 {{offset, {0, 0}}, {-2, -2}, {2, 2}, {0.25, 0.25}}
 ]
- Follow-Ups:
- Re: Automatically colred and indexed custom locators
- From: Heike Gramberg <heike.gramberg@gmail.com>
 
 
 - Re: Automatically colred and indexed custom locators