pyvista.DataSetFilters.compute_implicit_distance#
- DataSetFilters.compute_implicit_distance(surface, inplace=False)[ソース]#
ポイントから表面までのインプリシット距離を計算します.
このフィルタは,このメッシュのすべての節点から指定されたサーフェスまでの暗黙の距離を計算します.この距離は,
'implicit_distance'
という点配列として追加されます.入力サーフェス形状の内側にあるこのメッシュのノードは負の距離を持ち,外側にあるノードは正の距離を持ちます.入力サーフェスと交差するノードの距離は0になります.
- パラメータ:
- surface
pyvista.DataSet
距離の計算に使用されるサーフェス.
- inplacebool, default:
False
もし
True
ならば,新しいスカラー配列がこのメッシュのpoint_data
に追加され,変更されたメッシュが返されます.そうでなければ,このメッシュのコピーにスカラーフィールドが追加されたものが返されます.
- surface
- 戻り値:
pyvista.DataSet
データセット:
point_data
に含まれる'implicit_distance'
配列を含みます.
例
球と平面上のすべての点間の距離を計算します.
>>> import pyvista as pv >>> sphere = pv.Sphere(radius=0.35) >>> plane = pv.Plane() >>> _ = sphere.compute_implicit_distance(plane, inplace=True) >>> dist = sphere['implicit_distance'] >>> type(dist) <class 'pyvista.core.pyvista_ndarray.pyvista_ndarray'>
これらの距離をヒートマップとしてプロットします.平面より上の距離は正で,平面より下の距離は負であることに注意してください.
>>> pl = pv.Plotter() >>> _ = pl.add_mesh( ... sphere, scalars='implicit_distance', cmap='bwr' ... ) >>> _ = pl.add_mesh(plane, color='w', style='wireframe') >>> pl.show()
また、平面上のすべての点から球までの距離も計算することができます.
>>> _ = plane.compute_implicit_distance(sphere, inplace=True)
ここでも,これらの距離をヒートマップとしてプロットすることができます.球の内側の距離は負で,球の外側の距離は正であることに注意しましょう.
>>> pl = pv.Plotter() >>> _ = pl.add_mesh( ... plane, ... scalars='implicit_distance', ... cmap='bwr', ... clim=[-0.35, 0.35], ... ) >>> _ = pl.add_mesh(sphere, color='w', style='wireframe') >>> pl.show()
このフィルターを使用したその他の例については, サーフェスを使用したクリップ と サーフェスメッシュをボクセル化する を参照してください.