pyvista.plotting.widgets.WidgetHelper.add_plane_widget#
- WidgetHelper.add_plane_widget(callback, normal='x', origin=None, bounds=None, factor=1.25, color=None, assign_to_axis=None, tubing=False, outline_translation=False, origin_translation=True, implicit=True, pass_widget=False, test_callback=True, normal_rotation=True, interaction_event='end')[ソース]#
シーンに平面ウィジェットを追加します.
これは,コールバック関数なしでは使用できません.このウィジェットから出力されるプレーンの法線と原点の順序という2つの引数を取る呼び出し可能関数を渡して,そのプレーンでタスクを実行することができます.
- パラメータ:
- callback
callable()
このメソッドは,プレーンが更新されるたびに呼び出されます.平面の法線と原点の順序で2つの引数を取ります.
- normalpython:str か python:tuple(python:float)
平面の開始法線ベクトル.
- origin
tuple
(float
) 平面の中心の開始座標.
- bounds
tuple
(float
) ウィジェットが配置されるバウンディングボックスの長さ6のタプル.
- factor
float
,optional
配置時に境界を拡張するための膨張係数.
- color
ColorLike
,optional
文字列,RGBリスト,または16進カラー文字列.
- assign_to_axispython:str または python:int, optional
平面の法線を指定された軸と平行になるように割り当てます.オプションは
(0, 'x')
,(1, 'y')
,または(2, 'z')
です.- tubingbool,
optional
インプリシット平面ウィジェットを使用する場合,平面の境界の周囲にチューブを表示するかどうかを制御します.
- outline_translationbool,
optional
False
の場合,プレーンウィジェットは移動できず,指定された境界に厳密に配置される.インプリシット平面を使用する場合にのみ有効です.- origin_translationbool,
optional
False
の場合,プレーンウィジェットは原点によって移動できず,指定された原点に厳密に配置される.インプリシット平面を使用する場合にのみ有効です.- implicitbool,
optional
True
の場合はvtkImplicitPlaneWidget
が使用され,False
の場合はvtkPlaneWidget
が使用されます.- pass_widgetbool,
optional
True
の場合,ウィジェットはコールバックの最後の引数として渡されます.- test_callbackbool,
optional
True
の場合,ウィジェットの作成後にコールバック関数を実行します.- normal_rotationbool,
optional
法線ベクトル矢印の不透明度を0に設定して,実質的に無効にします.これにより,ユーザは法線を回転できなくなります.
assign_to_axis
が設定されている場合,これは強制的にFalse
になります.- interaction_event
vtk.vtkCommand.EventIds
,str
,optional
コールバックのトリガーに使用するVTKインタラクションイベントです.文字列
'start'
,'end'
, `` always'`` またはvtk.vtkCommand.EventIds
を受け付けます.バージョン 0.38.0 で変更: 文字列と
vtk.vtkCommand.EventIds
のいずれかを受け付けるようになりました.
- callback
- 戻り値:
vtk.vtkImplicitPlaneWidget
かvtk.vtkPlaneWidget
平面ウィジェット.
例
ランダムヒルの例で,特定の距離xで最大高度をマークするために使用される,x軸に沿って移動するインタラクティブな平面を示します.
>>> import pyvista as pv >>> from pyvista import examples >>> mesh = examples.load_random_hills() >>> pl = pv.Plotter() >>> _ = pl.add_mesh(mesh) >>> def callback(normal, origin): ... slc = mesh.slice(normal=normal, origin=origin) ... origin = list(origin) ... origin[2] = slc.bounds[5] ... peak_plane = pv.Plane( ... center=origin, ... direction=[0, 0, 1], ... i_size=20, ... j_size=20, ... ) ... _ = pl.add_mesh( ... peak_plane, name="Peak", color='red', opacity=0.4 ... ) ... >>> _ = pl.add_plane_widget(callback, normal_rotation=False) >>> pl.show()