Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

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

Search the Archive

Re: Automatically colred and indexed custom locators

  • To: mathgroup at smc.vnet.net
  • Subject: [mg124583] Re: Automatically colred and indexed custom locators
  • From: Christopher Young <cy56 at comcast.net>
  • Date: Wed, 25 Jan 2012 07:08:03 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201201241005.FAA20228@smc.vnet.net> <7E8A3482-EB83-4C75-9D82-05A776C87976@gmail.com>

Thanks, that fixed the problem with the snapping not working when the 
point is created. The only problem is, the points can now only be 
dragged one grid unit at a time.

I'm working on something that will work completely, but it looks like I 
may have to give up using Manipulate. I really don't want to have to 
click and drag only 1 unit at a time.


On Jan 24, 2012, at 7:54 AM, Heike Gramberg wrote:

> Looks nice. To make the locators snap to the grid on creation you can 
do something like this:
>
> 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[{n},
>  P = Round[P, .25];
>  LocatorPane[Dynamic[P],
>   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}])]],
> {{P, {{0, 0}, {1, 1}}}, None},
> {{locSize, 15}, 5, 80, 1}, {{opac, 0.75}, 0,
>  1}, {{offset, {0, 0}}, {-2, -2}, {2, 2}, {0.25, 0.25}}]
>
> Basically, all I've done her is changing P from being a local variable 
of the DynamicModule to a
> controller of the enclosing Manipulate and adding the line P = 
Round[P, .25];
>
> Heike
>
> By the way, changing P to a controller should also solve the problem 
in your other
> post about morphing Bezier curves.


  • Prev by Date: Colored, indexed, resizable locators
  • Next by Date: Re: Mathematica 8 + OS X + McAfee = trouble; help?
  • Previous by thread: Automatically colred and indexed custom locators
  • Next by thread: Re: Automatically colred and indexed custom locators