Можно ли использовать TogglerBar как несколько CheckBox в Mathematica? - PullRequest
3 голосов
/ 10 июня 2011

Было бы возможно иметь TogglerBar вместо 2 флажка , чтобы показать или нет разные фигуры.

С зеленым и красным написано на каждой кнопке TogglerBar?

Manipulate[
Graphics[{If[thePink, {Pink, Disk[{5, 5}, 3]}], 
If[theGreen, {Green, Disk[{15, 2}, 1]}]}, 
PlotRange -> {{0, 20}, {0, 10}}], {{thePink, True, 
Style["Pink", Black, Bold, 12]}, {True, False}}, {{theGreen, True, 
Style["Green", Black, Bold, 12]}, {True, False}}]

enter image description here

Фактический объект Manipulate, который я пытаюсь настроить, находится там: http://www.laeh500.com/LAEH/COG.html Цель состоит в том, чтобы заменить CheckBox хорошим TogglerBar.

Ответы [ 3 ]

3 голосов
/ 10 июня 2011

Как насчет этого?

Manipulate[
 Show[Graphics[myObject], 
  PlotRange -> {{0, 20}, {0, 10}}], {{myObject, {},""}, {{Pink, 
     Disk[{5, 5}, 3]} -> 
    Style["Pink", Black, Bold, 12], {Green, Disk[{15, 2}, 1]} -> 
    Style["Green", Black, Bold, 12]}}, ControlType -> TogglerBar]
3 голосов
/ 10 июня 2011

Как это?

Manipulate[
 Graphics[{
   {White, Circle[{5, 5}, r]},  (* For Mma 7 compatibility*) 
   If[MemberQ[color, "Red"],   {Pink, Disk[{5, 5}, r]}],
   If[MemberQ[color, "Green"], {Green, Disk[{4, 2}, r]}]},
 PlotRange -> {{0, 20}, {0, 10}}],
 {{r, 1, "Radius"}, 1, 5, 1, ControlType -> Setter},
 {{color, "Red", "Color"}, {"Red", "Green"}, ControlType -> TogglerBar}, 
LabelStyle -> Large]

enter image description here

Редактировать

Отвечая на ваш комментарий, я думаю, что для вашей записной книжки может пригодиться такой шаблон:

Manipulate[
 Graphics[
  {
   {White, Circle[{5, 5}, r]},(* For Mma 7 compatibility*) 
   If[MemberQ[whatToDisplay, "Circle"], {Red,   Circle   [{5, 5}, r]}],
   If[MemberQ[whatToDisplay, "Square"], {Blue,  Rectangle[{5, 5}, {r, r}]}],
   If[MemberQ[whatToDisplay, "Other"],  {Black, Line     [Tuples[{3, 4}, 2]]}],
  },
 PlotRange -> {{0, 20}, {0, 10}}
 ], 
  (* Controls follow *)
  {{r, 1,  Style["Radius", Black, Bold, 12]}, 1, 5, 1, ControlType     -> Slider
                                                     , ControlPlacement-> Top
  },  
  Control@{{whatToDisplay, True, Style["What", Black, Bold, 12]}, 
           {"Circle", "Square", "Other"}, 
           ControlType      -> TogglerBar,
           Appearance       -> "Vertical",
           ControlPlacement -> Left
  }
]

enter image description here

2 голосов
/ 10 июня 2011

Как насчет

Manipulate[
Graphics[{#} & /@ x,
    PlotRange -> {{0, 20}, {0, 10}}],
{{x, {}, "Colour"},
{{Pink, Disk[{5, 5}, 3]} \[Rule] "Pink",
{Green, Disk[{15, 2}, 1]} \[Rule] "Green"},
ControlType -> TogglerBar}]

это уродливо и не элегантно!Динамические манипуляции - не мое любимое использование Mathematica, поэтому для меня это тоже метод проб и ошибок ...

РЕДАКТИРОВАТЬ: чуть менее безобразно ... EDIT2: добавлена ​​метка

...