pyvista.fit_plane_to_points#

fit_plane_to_points(points, return_meta=False)[ソース]#

SVDアルゴリズムを用いて,平面を点の集合にフィットさせます.

平面は,ポイントの範囲に合うように自動的にサイズと向きが調整されます.

パラメータ:
pointsarray_like[float]

平面を通過させるための [N x 3] 個の点の列の大きさ.

return_metabool, default: False

もし True ならば,生成された平面の中心と法線も返します.

戻り値:
pyvista.PolyData

平面メッシュです.

numpy.ndarray

return_meta=True の場合は平面の中心.

numpy.ndarray

return_meta=True の場合は平面の法線.

ランダムな点群に平面を当てはめます.

>>> import pyvista as pv
>>> import numpy as np
>>>
>>> # Create point cloud
>>> cloud = np.random.random((10, 3))
>>> cloud[:, 2] *= 0.1
>>>
>>> # Fit plane
>>> plane, center, normal = pv.fit_plane_to_points(
...     cloud, return_meta=True
... )
>>>
>>> # Plot the fitted plane
>>> pl = pv.Plotter()
>>> _ = pl.add_mesh(
...     plane, color='lightblue', style='wireframe', line_width=4
... )
>>> _ = pl.add_points(
...     cloud,
...     render_points_as_spheres=True,
...     color='r',
...     point_size=30,
... )
>>> pl.show()
../../../_images/pyvista-fit_plane_to_points-1_00_00.png

平面をメッシュにフィットさせます.

>>> import pyvista as pv
>>> from pyvista import examples
>>>
>>> # Create mesh
>>> mesh = examples.download_shark()
>>>
>>> # Fit plane
>>> plane = pv.fit_plane_to_points(mesh.points)
>>>
>>> # Plot the fitted plane
>>> pl = pv.Plotter()
>>> _ = pl.add_mesh(
...     plane, show_edges=True, color='lightblue', opacity=0.25
... )
>>> _ = pl.add_mesh(mesh, color='gray')
>>> pl.camera_position = [
...     (-117, 76, 235),
...     (1.69, -1.38, 0),
...     (0.189, 0.957, -0.22),
... ]
>>> pl.show()
../../../_images/pyvista-fit_plane_to_points-1_01_00.png