ClickPane
詳細とオプション
- クリック可能なペインの中の画像は,グラフィックスでも任意の式でもよい.
- Graphicsオブジェクト g について,ClickPane[g,func]はデフォルトで,func に与えられるグラフィックスの座標の範囲が g 中のPlotRangeに対応するグラフィックス座標の範囲を取るものとする.
- 一般的な式の場合,ClickPane[expr,func]は各方向に0から1までの座標範囲を取るものとする.
- ClickPaneは以下のオプションを取る.
-
Method "Preemptive" 使用する評価法 PassEventsDown Automatic 内側のイベントハンドラにイベントを渡すかどうか PassEventsUp True 外側のイベントハンドラにイベントを渡すかどうか
例題
すべて開く すべて閉じる例 (2)
DynamicModule[{pt = {0, 0}}, ClickPane[Dynamic@Graphics[{Yellow, Disk[], Black, Point[pt]}, ImageSize -> Tiny], (pt = #)&]]DynamicModule[{pt = {0, 0}}, ClickPane[Framed@Graphics[{Yellow, Dynamic@Disk[pt]}, PlotRange -> 5], (pt = #)&]]スコープ (2)
オプション (3)
Method (1)
デフォルトで,関数はプリエンプティブリンクで評価され,5秒後にタイムアウトする:
DynamicModule[{pt = {0, 0}}, {ClickPane[Framed@Graphics[{Yellow, Dynamic@Disk[pt]}, PlotRange -> 5], (Pause[6];pt = #)&], Dynamic[pt]}]Method->"Queued"を使って決してタイムアウトしないメインリンクで関数を評価する:
DynamicModule[{pt = {0, 0}}, {ClickPane[Framed@Graphics[{Yellow, Dynamic@Disk[pt]}, PlotRange -> 5], (Pause[6];pt = #)&, Method -> "Queued"], Dynamic[pt]}]PassEventsDown (1)
デフォルトで,ボタンをクリックするとClickPaneがトリガされるが,ボタンはトリガされない:
DynamicModule[{pt = {0, 0}}, {ClickPane[Framed[Graphics[Inset[Button["print", Print["fish"]]]]], (pt = #)&], Dynamic[pt]}]PassEventsDownを使ってボタンのクリック登録も有効にする:
DynamicModule[{pt = {0, 0}}, {ClickPane[Framed[Graphics[Inset[Button["print", Print["fish"]]]]], (pt = #)&, PassEventsDown -> True], Dynamic[pt]}]PassEventsUp (1)
ペインの内側をクリックすると内側と外側両方のペインがトリガされる:
DynamicModule[{outer = {0, 0}, inner = {0, 0}}, Column[{Framed[ClickPane[Row[{"Outer click pane", Framed[ClickPane[{"Inner click pane"}, (inner = #)&]]}], (outer = #)&]], {"outer", Dynamic[outer]}, {"inner", Dynamic[inner]}}]]PassEventsUpを使って内側のペインがクリックされたときは外側のペインを無効にする:
DynamicModule[{outer = {0, 0}, inner = {0, 0}}, Column[{Framed[ClickPane[Row[{"Outer click pane", Framed[ClickPane[{"Inner click pane"}, (inner = #)&, PassEventsUp -> False]]}], (outer = #)&]], {"outer", Dynamic[outer]}, {"inner", Dynamic[inner]}}]]アプリケーション (6)
ClickPane[Framed@Dynamic@ParametricPlot[f, {t, 0, 10}, PlotRange -> 5], (f = MatrixExp[(| | |
| ---- | --- |
| -1.1 | 0.9 |
| -1.4 | 0.3 |)t].#)&]DynamicModule[{f = {}}, ClickPane[Framed@Dynamic@ParametricPlot[f, {t, 0, 10}, PlotRange -> 5], (AppendTo[f, MatrixExp[(| | |
| ---- | --- |
| -1.1 | 0.9 |
| -1.4 | 0.3 |)t].#])&]]3点から円を作る [詳細]:
createCircle[{{x1_, y1_}, {x2_, y2_}, {x3_, y3_}}] := With[{a = Det[(| | | |
| -- | -- | - |
| x1 | y1 | 1 |
| x2 | y2 | 1 |
| x3 | y3 | 1 |)], d = -Det[(| | | |
| ----------- | -- | - |
| x1^2 + y1^2 | y1 | 1 |
| x2^2 + y2^2 | y2 | 1 |
| x3^2 + y3^2 | y3 | 1 |)], e = Det[(| | | |
| ----------- | -- | - |
| x1^2 + y1^2 | x1 | 1 |
| x2^2 + y2^2 | x2 | 1 |
| x3^2 + y3^2 | x3 | 1 |)], f = -Det[(| | | |
| ----------- | -- | -- |
| x1^2 + y1^2 | x1 | y1 |
| x2^2 + y2^2 | x2 | y2 |
| x3^2 + y3^2 | x3 | y3 |)]}, Circle[{-(d/2 a), -(e/2 a)}, Sqrt[(d^2 + e^2/4a^2) - (f/a)]]]createCircle[pts_] := {}DynamicModule[{pts = {}, c = {}}, ClickPane[Framed@Graphics[{Dynamic[c], Point[Dynamic[pts]]}, PlotRange -> 5], (If[Length[pts] < 3, AppendTo[pts, #], pts = {#}];c = createCircle[pts])&]]DynamicModule[{pt = {0, 0}, c = "Red"}, ClickPane[Framed@Graphics[{Red, Disk[], StandardGray, Dynamic@Arrow[{{-2, 0}, pt}], Dynamic@Text[Dynamic[c], {-2, 0}]}], (pt = #;c = If[Norm[pt] < 1, "Red", "White"])&]]ペインをクリックしたときに矢印が曲線を「スナップ」した位置をプロットする:
DynamicModule[{pt = {π / 2, 3}}, ClickPane[Plot[3Sin[x], {x, -6, 6}, Epilog -> {Dynamic@Arrow[{{1, 5}, pt}], Text["特徴", {2, 5}]}, PlotRange -> 6], (pt = {#[[1]], 3Sin[#[[1]]]})&]]DynamicModule[{pt = {π / 2, 3}}, ClickPane[Plot[3Sin[x], {x, -6, 6}, Epilog -> {Dynamic@Arrow[{{1, 5}, pt}], Text["極値", {2, 5}]}, PlotRange -> 6], (With[{x = (2Round[-1 / 2 + #[[1]] / π] + 1)π / 2}, pt = {x, 3Sin[x]}])&]]特性と関係 (1)
ClickPaneはEventHandlerの特殊ケースである:
DynamicModule[{pts = {}}, ClickPane[Dynamic[Framed@Graphics[Line[pts], PlotRange -> 1]], AppendTo[pts, #]&]]DynamicModule[{pts = {}}, Dynamic@EventHandler[Framed@Graphics[Line[pts], PlotRange -> 1], "MouseClicked" :> AppendTo[pts, MousePosition["Graphics"]]]]考えられる問題 (1)
「クリック」を登録させるためには,同じ位置でマウスを押し,離さなければならない:
DynamicModule[{pts = {}}, ClickPane[Dynamic@Framed@Graphics[Line[pts], PlotRange -> 1], AppendTo[pts, #]&]]EventHandlerを使ってイベントを伴うアクションの登録に柔軟性を加える:
DynamicModule[{pts = {}}, Dynamic@EventHandler[Framed@Graphics[Line[pts], PlotRange -> 1], "MouseDown" :> AppendTo[pts, MousePosition["Graphics"]]]]テクニカルノート
関連するガイド
関連するワークフロー
- ロケータのコントロールを使う ▪
- Manipulateを構築する
テキスト
Wolfram Research (2007), ClickPane, Wolfram言語関数, https://reference.wolfram.com/language/ref/ClickPane.html.
CMS
Wolfram Language. 2007. "ClickPane." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ClickPane.html.
APA
Wolfram Language. (2007). ClickPane. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ClickPane.html
BibTeX
@misc{reference.wolfram_2026_clickpane, author="Wolfram Research", title="{ClickPane}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/ClickPane.html}", note=[Accessed: 11-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_clickpane, organization={Wolfram Research}, title={ClickPane}, year={2007}, url={https://reference.wolfram.com/language/ref/ClickPane.html}, note=[Accessed: 11-September-2026]}