Manipulate
Manipulate[expr,{u,umin,umax}]
u の値をインタラクティブに操作するためのコントロールを追加した expr を生成する.
Manipulate[expr,{u,umin,umax,du}]
u の値は範囲 uminから umax,刻み幅 du で変化する.
Manipulate[expr,{{u,uinit},umin,umax,…}]
u の初期値が uinitであると解釈する.
Manipulate[expr,{{u,uinit,ulbl},…}]
u のコントロールに ulbl のラベルを付ける.
Manipulate[expr,{u,{u1,u2,…}}]
u は離散的な値 u1,u2,… を取ることができる.
Manipulate[expr,{u,…},{v,…},…]
各 u,v,… を操作するコントロールを追加する.
Manipulate[expr,"cu"{u,…},"cv"{v,…},…]
外部デバイス上の指定されたコントローラとコントロールを繋ぐ.
詳細とオプション
- 式 expr はグラフィックスやその他の式でもよい.Noneの場合はコントロールのみが表示される.
- デフォルトで,次の形式はコントロールの特別な形を与える.
-
{u,umin,umax} マニピュレータ(スライダー,アニメータ等) {u,umin,umax,du} 刻み幅 du の離散的マニピュレータ {u,{xmin,ymin},{xmax,ymax}} 2Dスライダー {u,Locator} グラフィックス内のロケータ {u,{u1,u2,…}} 2,3個の要素のためのセッターバー,それ以上の要素にはポップアップメニュー {u,{u1->lbl1,u2->lbl2,…}} 要素にラベルが付いた設定バーあるいはポップアップメニュー {u,{True, False}} チェックボックス {u,color} 色スライダー {u} 空白の入力フィールド {u,FormObject[…]} 指定されたフィールドのあるフォーム {u,func} 関数から任意のコントロールを作成する {{u,uinit},…} 初期値 uinitのコントロール {{u,uinit,ulbl},…} ラベル ulblの付いたコントロール {{u,…},…,opts} 特定のオプション付きのコントロール Control[…] コントロールオブジェクトを生成する Delimiter 水平デリミタ 文字列,セル,式等 明示的なテキスト,セル等の注釈 - コントロールの代りに与えることのできる注釈には,TabView,Grid,Multicolumnのようなビューおよびレイアウト構造に加え,String,Style,Row,Item,Text,ExpressionCell,TextCellを頭部に持つ式等がある.
- コントロールのラベル ulblはどのような式でもよい.
- 注釈内部では,コントロールはControlを使って指定することができる.
- オプション設定のControlType->type は,指定されたタイプのコントロールを行おうとする.
- 使用可能なコントロールタイプには,Animator,Checkbox,CheckboxBar,ColorSetter,ColorSlider,FormControl,InputField,IntervalSlider,Manipulator,PopupMenu,RadioButton,RadioButtonBar,かSetterかSetterBar,あるいはSlider,Slider2D,TogglerBar,Trigger,VerticalSlider等がある.Noneを使うこともできる.
- 各変数に対して別々にControlTypeオプションを与えることができる.コントロール用のオプションも,変数の指定内で与えることができる.
- ControlType->Triggerは,特定の変数をトリガで制御するように指定する.
- コントロール指定{u,umin,umax,…,Appearance->"Labeled"}は値がラベルとして表示されるスライダーを返す.
- {u,func}の形のときは,Dynamic[u]が func の第1引数として与えられる.
- {u,umin,umax,func}という形もまた使うことができる.この場合,評価されるのはfunc[Dynamic[u],{umin,umax}]である.
- {u}は{u, InputField}と等価である.{u, ColorSlider}はデフォルトの色スライダーをコントロールとして与える.
- {u,Locator}の形式のとき,u の値は x と y の座標を与えるリストである.この座標は expr 中の最初のグラフィックスか,expr の各方向について0から1の範囲のどちらかに属する.
- {{u,{{x1,y1},{x2,y2},…}},Locator}の形式で{xi,yi}のそれぞれのロケータを設定し,u の値がすべての{xi,yi}のリストになるようにする.
- {{u,uinit},{xmin,ymin},{xmax,ymax},Locator}の形式でロケータの範囲を指定する.
- オプション設定のLocatorAutoCreate->Allは,既存のロケータに当たらなかったクリックについて新たなロケータを追加するように指定する.Clickでロケータを削除する.
- {{u,{}},Locator,LocatorAutoCreate->All}は,ロケータがない状態から始めるが,新たなロケータが作られることを許容する.
- 変数 u が複数回用いられている場合は,このためのリンクされたコントロールが与えられている.
- オプション設定のControlPlacement->pos で,expr と相対的な位置 pos にコントロールを置くように指定する.pos の可能な設定値はBottom,Left,Right,Topである.
- 注釈の置き方は,注釈をControlPlacementオプションを持つItemで囲むことで指定することができる.
- 次のオプションが使用できる.
- オプションControlPlacementおよびControlTypeは,{u,spec,opts}の形式で,それぞれの変数に別々に与えることができる.
- Manipulateはレキシカルスコープを実装するスコープ構文である.
- Manipulateは,変数 u や v 等を局所的に指定してDynamicModuleオブジェクトを生成する.
- デフォルト設定のUnsavedVariables->{}では,変数 u や v 等の値は自動的にノートブックに保存され,ノートブックが再度開かれたときに復元される.
- Initialization:>expr の設定では,Manipulateが実行されたとき,あるいは特定のセッションで結果が最初に表示されたときに式 expr が評価される.
- AppearanceElementsの設定として,リスト中に"ContentResizeArea","HideControlsButton","ManipulateMenu","SnapshotButton"を任意の順序で指定することができる.デフォルトでは"ManipulateMenu"のみが含まれる.
- スナップショットボタンをクリックするとManipulate出力の真下に全変数の現行値を指定するWith[{u=uval,…},expr]形式の入力を含むセルが作られる.
- ContinuousAction->Noneという設定のときは明示的な「更新」ボタンが表示され,これが押されるまで expr は再評価されない.
- デフォルト設定のTrackedSymbols->Automaticでは,expr に明示的に現れる記号だけが追跡記録される.
- TrackedSymbols->TrueはManipulateのコントロールに現れたシンボルを追跡する.
- TrackedSymbols->Allとすると,評価中に遭遇した記号が変化するたびに出力が更新される.
- デフォルト設定のControllerLinking->Automaticでは,Manipulateが現行選択の一部である場合は常に,Manipulate中のコントロールは外部デバイスにある指定コントローラに対応する.
- ゲームパッドのような外部デバイス上のコントローラは,ジョイスティック,ボタン等を含むことができる.
- 外部コントローラ指定には次のようなものがある.
-
"X"または"X1" x x の主値 "Y"または"Y1" y y の主値 "Z"または"Z1" z z の主値 "XY"または"XY1" {x,y} 2軸コントローラの主値 "XYZ"または"XYZ1" {x,y,z} 3軸コントローラの主値 "X2","Y2","XY2"等 x,y,{x,y}等 第2コントローラからの値 "XCyclic"等 x 等 循環的であると解釈される値 "XAbsolute"等 x 等 絶対的なコントロール位置からの値 "B1","B2"等 b1,b2等 トグルスイッチで切り換えられるボタンの状態 "B1Absolute","B2Absolute"等 b1,b2等 瞬間的なボタンの状態 - 特定のWolframシステムセッションでアクティブなデバイスのための生の外部コントローラ指定名は,一般にControllerInformationを使って見付けることができる.
- デフォルト設定のControllerMethod->Automaticでは,「X」のようなコントローラ指定は,デフォルトでジョイスティック等のコントロールの移動は対応する変数 x の値の変化率を決定することを意味する.例えばジョイスティックを押すことによって別の状態が選ばれると,コントロールの絶対的な位置が x の値を直接決定する.
- 「XAbsolute」のようなコントローラ指定では,ジョイスティックのようなコントロールの絶対的な位置が,対応する変数 x の値を決定する.
- 「XCyclic」のようなコントローラ指定では,一般にコントロールが範囲の端に達すると対応する変数 x の値は循環的にラップするとされる.
- 「XYZ」のようなコントローラ指定は,例えば1つのコントローラ上の2つの異なるジョイスティックの軸のように外部デバイス上の複数のコントロールと関連している可能性がある.
- ゲームパッドや2つのジョイスティックがあるその他のデバイス上では,「XY1」は一般に左側のスティックを指し,「XY2」は一般に右側のスティックを指す.ゲームパッドに「hat」コントロールがある場合は,一般に「XY3」でこれを指す.
- 「B1」のようなボタンコントローラ指定は,対応するボタンが押されるたびにTrueとFalseを切り換える.
- 「B1Absolute」のような絶対指定はボタンが押されている間はTrueを,それ以外はFalseを返す.
- BaseStyleおよびLabelStyleの設定値は,一般に現行スタイルシートの"Manipulate"スタイルと"ManipulateLabel"スタイルで与えられるデフォルトスタイルに加えられる.
例題
すべて開くすべて閉じるスコープ (29)
コントロール (12)
プレゼンテーション (8)
タイプセット式やグラフィックスを含め,任意のタイプの式を注釈として使う:
ManipulateコントロールをDelimiter,Item等を使って分割する:
ControlPlacementを使って個々のコントロールを置く:
ControlPlacementと注釈要素の両方を使う:
注釈にはControlオブジェクトや他のレイアウト構造を含ませることができる:
コントローラデバイス (3)
デフォルトで,コントローラは選択されている場合にだけManipulateに影響を与える.これを上書きする場合にはAll を使う:
ControllerPathを使って使用するコントローラのクラスを指定する:
ControllerMethodを"Absolute"にして相対的ではなく絶対的な関連に焦点を当てる:
オプション (68)
AppearanceElements (2)
AutoAction (2)
AutorunSequencing (4)
「Manipulate」メニューの「自動実行」を選ぶと,変数が自動的に流される:
AutorunSequencingを使って自動実行中の変数順を制御する:
Allを指定して,すべての変数を同時に流すようにする:
ContinuousAction (3)
ContinuousActionをFalseにすると,変数はコントロールがリリースされたときにだけ更新されるようになる:
これをNoneにしても「更新」ボタンがクリックされるまでコンテンツは更新されない:
ControllerLinking (5)
ControllerMethod (2)
ControllerPath (6)
デフォルトで,Manipulateはすべての必要なコントロールをサポートする最初のコントローラに反応する:
"Gamepad"を使って一般に2つのアナログコントロールを含むコントローラを指定する:
"Joystick"を使って1つの主アナログコントロールを含むコントローラを指定する:
"Multi-Axis Controller"を6つのアナログ自由度を持つようなコントローラに使う:
ControlPlacement (2)
ControlType (11)
デフォルトで,Manipulateは指定された変数のコントロールにManipulatorを選ぶ:
ControlTypeを使って使用するコントロールタイプ(Noneを含む)を指定する:
RadioButton,Setter,Checkbox,PopupMenu:
各Manipulate変数のコントロールタイプを別々に指定する:
ControlTypeは個々の変数のコントロール指定と組み合せることができる:
ControlTypeはControlで指定されたコントロールにも同じ様に影響を与える:
Automaticの設定のときは,適当なコントロールが選ばれる:
Deinitialization (1)
Deinitializationを使ってManipulateが表示されなくなった後で式を評価する:
Deployed (2)
ExcludedContexts (1)
デフォルトで,システムにとって内部的な特定のコンテキストは初期化オプションでは保存されない:
ExcludedContexts{}を使ってプロテクトされていない全シンボルの定義を保存する:
Initialization (1)
Initializationを使ってManipulateの出力に必要な評価を指定する:
LabelStyle (3)
LocalizeVariables (2)
SaveDefinitions (2)
SynchronousUpdating (2)
特性と関係 (5)
InputFormを使ってManipulateの入力を得る:
実際のオブジェクト上のInputFormもまた現状を反映する:
出力にSettingを使って表示された式にアクセスする:
Dynamicを使って更新を局所化し,式全体が更新されるのを防ぐ:
Appearance->"Open"を使ってすべてのManipulatorコントロールを表示する:
IntervalSliderオプションを使ってコントロールの動作を変える:
考えられる問題 (6)
プロットを操作するときは,PlotRangeが変化してサイズ変更の原因になることがある:
固定したPlotRangeを使用してサイズ変更を防ぐ:
プロットを操作するときは,目盛マークのサイズが変わってサイズ変更の原因になることがある:
固定したPlotRangeかImagePaddingを使ってサイズ変更を防ぐ:
Manipulateは明示的な可視のパラメータだけしか「認識」しない:
Manipulateは,それぞれの初期値が単一の点である限り,任意数のLocatorコントロールをサポートすることができる:
Manipulateが初期値が点のリストであるLocatorコントロールを含む場合は,そのManipulate はそれ以外のLocatorを含むことができない:
1点のロケータと複数点のロケータを同じManipulateで使うと,警告が生成される:
デフォオルトで,"System`"シンボルに付けられた定義は取得されない:
ExcludedContexts{}を使ってすべてのコンテキストから定義を取得する:
テキスト
Wolfram Research (2007), Manipulate, Wolfram言語関数, https://reference.wolfram.com/language/ref/Manipulate.html (2024年に更新).
CMS
Wolfram Language. 2007. "Manipulate." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/Manipulate.html.
APA
Wolfram Language. (2007). Manipulate. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Manipulate.html