4
$\begingroup$

I'm trying to make a control item in a Manipulate that is a simple dial. I'm trying to mimic Manipulate[theta, {theta, 0, 360}], but with a dial instead of a Slider.

I've sort of done this (see code below), but my variable pt doesn't reset to its original value when I hit the ResetButton. Any help would be appreciated.

DynamicModule[
 {pt = {0.5, 0.5}},
 Manipulate[
  ArcTan @@ pt,
  DynamicModule[
   {},
   LocatorPane[
    Dynamic[pt],
    Graphics[
     {
      Line[{{1.1, 0}, {0, 0}}],
      EdgeForm[Thin],
      {LightGray, Disk[]},
      {Lighter@Lighter@LightGray, Disk[{0, 0}, 0.9]},
      Dynamic[Disk[0.7 Normalize[pt], 0.08]]
      },
     PlotRange -> 1.3,
     ImageSize -> 60],
    Appearance -> None
    ]
   ],
  AppearanceElements -> "ResetButton"
  ]
 ]
$\endgroup$
1
  • $\begingroup$ Would an AngularGauge suffice as the control? If so, that would save a lot of coding. $\endgroup$
    – murray
    Mar 25, 2014 at 22:35

1 Answer 1

4
$\begingroup$

It is because ResetButton refers to Manipulate`s initial state while pt is outer DynamicModule variable here. You can scope variables in Manipulate with a cool trick, which I've learned here: {{pt, {0.5, 0.5}}, None}

Manipulate[
  ArcTan @@ pt,
  {{pt, {0.5, 0.5}}, None},
  DynamicModule[{}, LocatorPane[   Dynamic[pt], 
                     Graphics[{Line[{{1.1, 0}, {0, 0}}], EdgeForm[Thin],
                           {LightGray, Disk[]}, {Lighter@Lighter@LightGray, 
                           Disk[{0, 0}, 0.9]}, Dynamic[Disk[0.7 Normalize[pt], 0.08]]}, 
                           PlotRange -> 1.3, ImageSize -> 60], Appearance -> None]], 
 AppearanceElements -> "ResetButton"]

enter image description here

$\endgroup$
3
  • 1
    $\begingroup$ p.s. you may be interested in AngularSlider, interesting but undocumented so it's hard to use it with luck and it seem to have couple of issues. But still, worth to know. $\endgroup$
    – Kuba
    Mar 25, 2014 at 17:34
  • $\begingroup$ Oh, man. That does it. Thanks. $\endgroup$ Mar 25, 2014 at 19:10
  • $\begingroup$ @rhomboidRhipper I'm glad I could help. Good luck. ;) $\endgroup$
    – Kuba
    Mar 25, 2014 at 19:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.