Функция динамического манипулирования в Wolfram? - PullRequest
0 голосов
/ 17 октября 2018

Я пишу демонстрацию цифрового графического интерфейса для проектирования аналоговых фильтров.Поскольку демонстрации допускают только одну функцию манипуляции, есть ли способ динамически обновлять элементы управления моей манипуляции?

Например, у меня есть 4 разных типа фильтров (Lowpass, Highpass, Bandpass, Bandstop), для первых двух требуется только две частотывходы, в то время как последние два требуют четырех частотных входов.Есть ли способ переключения между двумя ползунками Manipulate и четырьмя в зависимости от того, какой режим был выбран, без вложенных манипуляций?В качестве альтернативы я могу иметь все четыре и серые два, когда они не нужны?

1 Ответ

0 голосов
/ 18 октября 2018

Вот пример динамически изменяемых Manipulate элементов управления, которые должны быть легко изменены для достижения того, что вы хотите.Я не написал это, и я не помню, где я видел это.

Manipulate[
 {x, yyy},
 {{x, a}, {a, b, c, d}, None},
 {{yyy, 0.5}, 0, 1, None},
 {{type, 1}, Range@3, None},
 PaneSelector[{
   1 -> Column[{
      Control@{x, {a, b, c, d}, RadioButtonBar},
      Control@{{yyy, 0.5}, 0, 1},
      Control@{type, Range@3}
      }],
   2 -> Column[{
      Control@{x, {a, b, c, d}, SetterBar},
      Control@{yyy},
      Control@{type, Range@3}
      }],
   3 -> Column[{
      Control@{x, {a, b, c, d}, PopupMenu},
      Control@{{yyy, 0.5}, 0, 1},
      Control@{type, Range@3}
      }]
   }, Dynamic@type]     
]
...