pyvista.PolyDataFilters.boolean_union#
- PolyDataFilters.boolean_union(other_mesh, tolerance=1e-05, progress_bar=False)[ソース]#
2つのメッシュにブーリアンの和集合演算を行います.
基本的に,ブーリアン結合,切断,交差はすべて同じ操作です.ただ,オブジェクトの異なる部分が最終的に保持されるだけです.
2つの多様体メッシュ
A
とB
の結合は,A
にあるメッシュ,B
にあるメッシュ,またはA
とB
の両方にあるメッシュとなります.注釈
ブーリアン演算が思った通りに反応しない(例えば,間違った部分が消えてしまう)場合,メッシュの1つが法線を内側に向けている可能性があります.法線を可視化するには,
PolyDataFilters.plot_normals()
を使用してください.注釈
このフィルタの動作は
PolyDataFilters.merge()
フィルタとは異なります. このフィルタはマニフォールドメッシュを作成しようとし,2つのメッシュが重なっている場合には内部サーフェスを含みません.注釈
両方のメッシュはすべての3角形で構成されていなければなりません. これは
PolyData.is_all_triangles
でチェックし,PolyDataFilters.triangulate()
で変換します.バージョン 0.32.0 で変更: VTKのデフォルトの動作に合わせて動作を変更しました.
- パラメータ:
- other_mesh
pyvista.PolyData
ソースのメッシュを操作するメッシュ.
- tolerance
float
, tolerance: 1e-5 点の絶対的な距離がゼロとみなされるタイミングを決定するために使用される許容範囲.
- progress_barbool, default:
False
進行状況を示す進行状況バーを表示します.
- other_mesh
- 戻り値:
pyvista.PolyData
ブーリアン演算の結果です.
例
2つの球体を使ってブーリアン論理和を実演します. 最終的なメッシュに両方の球体が含まれていることに注目してください.
>>> import pyvista as pv >>> sphere_a = pv.Sphere() >>> sphere_b = pv.Sphere(center=(0.5, 0, 0)) >>> result = sphere_a.boolean_union(sphere_b) >>> pl = pv.Plotter() >>> _ = pl.add_mesh( ... sphere_a, color='r', style='wireframe', line_width=3 ... ) >>> _ = pl.add_mesh( ... sphere_b, color='b', style='wireframe', line_width=3 ... ) >>> _ = pl.add_mesh(result, color='lightblue') >>> pl.camera_position = 'xz' >>> pl.show()
このフィルターを使用したその他の例については, ブール演算 を参照してください.