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
ならば,生成された平面の中心と法線も返します.
- pointsarray_like[
- 戻り値:
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()
平面をメッシュにフィットさせます.
>>> 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()