用于三角测量点集的软件(有限制)

计算科学 matlab Python C++ delaunay三角剖分
2021-12-01 03:33:36

我想对一个点集进行三角测量,如下所示。 在此处输入图像描述

我希望点集的三角剖分具有以下属性

  1. 三角形必须以黑色和橙色点作为顶点

  2. 三角形的形状应该很好(就像在 Delaunay 三角剖分中一样),即不要太瘦。

  3. 我想强制要求每个黑色段都应该是三角剖分中某个三角形的边缘。

  4. 三角剖分的其他边必须位于由将橙色点连接到橙色点或将橙色点连接到黑色点的黑色线段所指示的多边形区域内。

CGAL 可能可以做到这一点,但在 Windows 7 上安装 CGAL 是一场噩梦。我正在寻找任何免费、强大且易于安装的 MATLAB、Python、C++(Visual Studio 2012 或 Cygwin)解决方案来解决 Windows 7 上的这个问题平台。

1个回答

Scipy 已经通过 Qhull 提供了 Delaunay 三角测量,并且很容易在 Windows 上安装。这是一个例子。正如 Tyler Olsen 在上面的评论中所提到的,“[a] 正常的 Delaunay 三角剖分将适用于您的强制边缘形成点集的凸包的任何点集(就像在本例中所做的那样)”。

In [1]: %pylab
Using matplotlib backend: TkAgg
Populating the interactive namespace from numpy and matplotlib

In [2]: X = rand(50,2)

In [3]: from scipy.spatial import Delaunay

In [5]: D = Delaunay(X)

In [6]: triplot(X[:,0], X[:,1], D.simplices)

In [7]: plot(X[:,0], X[:,1], 'o')

In [8]: show()

在此处输入图像描述