pyvista.voxelize_volume#

voxelize_volume(mesh, density=None, check_surface=True)[ソース]#

メッシュをボクセル化して,RectilinearGridボクセルボリュームを作成します.

入力メッシュを包含するボクセルボリュームを作成し,ボリューム内で交差するセルまたは入力メッシュ内に含まれるセルを離散化します. "cell_data" の中の配列 "InsideMesh" は,内部のセルに対して"1"であり,外部のセルに対して "0" です.

パラメータ:
meshpyvista.DataSet

ボクセライズするメッシュ.

densityfloat | array_like[float]

単一フロートが渡された場合のボクセルの均一サイズ.x,y,z方向に値のリストが渡される場合は,デフォルトはメッシュ長の100分の1.

check_surfacebool, default: True

サーフェスの閉合をチェックするかどうかを指定します.オンの場合,アルゴリズムは最初にサーフェスが閉じて多様体であるかどうかをチェックします.サーフェスが閉じていて多様体でない場合,ランタイムエラーが発生します.

戻り値:
pyvista.RectilinearGrid

RectilinearGridは,離散化されたセルを持つボクセル化されたボリュームとして機能します.

入力メッシュから等密度ボクセルボリュームを作成します.

>>> import pyvista as pv
>>> import numpy as np

PyVistaの例からファイルをロードします.

>>> from pyvista import examples
>>> mesh = examples.download_cow()

等密度ボクセルボリュームを作成し,結果をプロットします.

>>> vox = pv.voxelize_volume(mesh, density=0.15)
>>> cpos = [(15, 3, 15), (0, 0, 0), (0, 0, 0)]
>>> vox.plot(scalars='InsideMesh', show_edges=True, cpos=cpos)
../../../_images/pyvista-voxelize_volume-1_00_00.png

ボクセルボリュームをスライスして, InsideMesh を表示します.

>>> slices = vox.slice_orthogonal()
>>> slices.plot(scalars='InsideMesh', show_edges=True)
../../../_images/pyvista-voxelize_volume-1_01_00.png

不均一な密度の次元からボクセルボリュームを作成し,結果をプロットします.

>>> vox = pv.voxelize_volume(mesh, density=[0.15, 0.15, 0.5])
>>> vox.plot(scalars='InsideMesh', show_edges=True, cpos=cpos)
../../../_images/pyvista-voxelize_volume-1_02_00.png

不均等な密度のボクセルボリュームをスライスして, InsideMesh を表示します.

>>> slices = vox.slice_orthogonal()
>>> slices.plot(scalars='InsideMesh', show_edges=True, cpos=cpos)
../../../_images/pyvista-voxelize_volume-1_03_00.png