pyvista.PolyDataFilters.subdivide#

PolyDataFilters.subdivide(nsub, subfilter='linear', inplace=False, progress_bar=False)[ソース]#

単一の接続された3角形メッシュ内の3角形の数を増やします.

以下のvtkサブディビジョンフィルターのいずれかを使用して,メッシュを細分化します.

  • vtkButterflySubdivisionFilter

  • vtkLoopSubdivisionFilter

  • vtkLinearSubdivisionFilter

線形サブディビジョンの結果として最も速いメッシュサブディビジョンが得られますが,メッシュエッジはスムースされず,各3角形が4つの小さな3角形に分割されます.

バタフライサブディビジョンとループサブディビジョンでは,分割時にスムージングが実行され,分割時にメッシュにアーティファクトが生じる場合があります.

注釈

複数のパーツからなるメッシュに対して,サブディビジョンフィルタが失敗することがあります. 入力は1つの連結されたメッシュでなければなりません.

パラメータ:
nsubint

サブディビジョンの数.サブディビジョンごとに4つの新しい3角形が作成されるため,作成される3角形の数は nface*4**nsub となります.ここで, nface は現在のフェースの数です.

subfilterstr, default: "linear"

以下のいずれかとなります.

  • 'butterfly'

  • 'loop'

  • 'linear'

inplacebool, default: False

in-placeメッシュを更新します.

progress_barbool, default: False

進行状況を示す進行状況バーを表示します.

戻り値:
pyvista.PolyData

メッシュの細分化.

まず,例となる粗い球体のメッシュを作成し,それをプロットします.

>>> from pyvista import examples
>>> import pyvista as pv
>>> mesh = pv.Sphere(phi_resolution=10, theta_resolution=10)
>>> mesh.plot(show_edges=True, line_width=3)
../../../_images/pyvista-PolyDataFilters-subdivide-1_00_00.png

球体メッシュを線形細分化します.

>>> submesh = mesh.subdivide(1, 'linear')
>>> submesh.plot(show_edges=True, line_width=3)
../../../_images/pyvista-PolyDataFilters-subdivide-1_01_00.png

ループ細分化で球体メッシュを細分化します.

>>> submesh = mesh.subdivide(1, 'loop')
>>> submesh.plot(show_edges=True, line_width=3)
../../../_images/pyvista-PolyDataFilters-subdivide-1_02_00.png

球体メッシュをButterfly subdivisionします.

>>> submesh = mesh.subdivide(1, 'butterfly')
>>> submesh.plot(show_edges=True, line_width=3)
../../../_images/pyvista-PolyDataFilters-subdivide-1_03_00.png