使用 scipy 从 delaunay 三角剖分输出顶点

Output vertices from delaunay triangulation with scipy

如何在下面的代码中输出 delaunay 三角剖分的结果。我知道如何用 matplotlib 绘制它,但不知道如何输出数字。打印只是输出对象,但我不知道如何访问它。

import matplotlib.pyplot as plt
from scipy.spatial import Delaunay, delaunay_plot_2d
from scipy.spatial import Delaunay
import numpy as np

points = np.array([[0.1933333, 0.47],
                   [0.1966667, 0.405],
                   [0.2066667, 0.3375]])


tri = Delaunay(points)
print(tri)

delaunay_plot_2d(tri)
plt.plot(points[:, 0], points[:, 1], 'o')
plt.show()

三角形顶点的id存储在三角剖分对象的simplices attribute中。存储输入点数组中顶点的索引。

>>> points = np.array([[0.1933333, 0.47],
                   [0.1966667, 0.405],
                   [0.2066667, 0.3375]])
>>> tri = Delaunay(points)
>>> print(tri)
<scipy.spatial.qhull.Delaunay object at 0x000002E1EB4EE348>
>>> tri.simplices
array([[1, 2, 0]], dtype=int32)

要返回顶点的坐标,您需要在输入点数组中查找它们:

>>> points[tri.simplices]
array([[[0.1966667, 0.405    ],
        [0.2066667, 0.3375   ],
        [0.1933333, 0.47     ]]])

生成的 Delaunay 三角剖分还包含一些其他属性,特别是 neighbors,其中包含有关相邻三角形的信息,vertex_to_simplex 允许您找到给定顶点所属的某个 Delaunay 三角形(然后开始使用 neighbors).

遍历三角剖分