scipy.spatial软件包可以利用Qhull库来计算一组点的三角剖分, Voronoi图和凸包。同样, 它包含用于最近邻点查询的KDTree实现以及用于各种度量中距离计算的实用程序。
Delaunay三角剖分
在数学和计算几何中, Delaunay三角剖分定义了三角形中的三个点在这些顶点接触圆的路径时会创建一个顶点。
圆的中心由三个点或三角形的半径确定。让我们考虑以下示例:
from scipy.spatial import Delaunay
import numpy as np
import matplotlib.pyplot as plt
points = np.array([[0, 3], [1, 1.1], [1, 4], [1, 2]])
triang = Delaunay(points)
plt.triplot(points[:, 0], points[:, 1], triang.simplices.copy())
plt.plot(points[:, 0], points[:, 1], 'o')
plt.show()
输出
共平面点
共面点是指同一平面上存在三个以上的点。该平面是平坦的表面, 可以在所有方向上无止境地扩展。让我们考虑以下示例:
from scipy.spatial import Delaunay
points = np.array([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])
tri = Delaunay(points)
print(tri.coplanar)
输出
[[4 0 3]]
在