scipy.spatial的Delaunay是否可以强制执行边缘约束(约束德劳内三角剖分)?

5

我正在尝试使用scipy.spatial的Qhull Delaunay三角剖分实现进行实验。

是否有可能以保留输入顶点定义的边的方式生成三角剖分? (编辑:即约束Delaunay三角剖分。) 如Python的triangle包中所做的那样。

例如,在下面的图片中,有几个三角形(蓝色)忽略了由顶点定义的边(红色)的位置。是否有一种方法可以强制执行这些边,使它们在所有情况下都成为三角剖分结果的一部分?

Delaunay Triangulation

1个回答

9
你需要寻找的是称为约束德劳内三角剖分的内容,不幸的是scipy.spatial的实现不支持它。
正如你所指出的那样,triangle具有此功能 - 为什么不使用它呢?

是的,我目前正在使用Triangle,它对我的目的非常有效,尽管它所包装的基础三角形软件包有时会导致我的Python脚本崩溃,因此我正在寻找一种备用算法以备不时之需。 - songololo
1
@shongololo:如果这确实是原因的话,也许值得将其报告为triangle的一个bug? - cfh
@cfh 你好,是的,我已经这样做了,但是他们的系统无法重现问题(他们使用Linux而我使用Mac)。 - songololo
1
@shongololo:我找到了另一个库,可以进行约束Delaunay并具有非官方的Python绑定。代码似乎没有得到维护,但也许对你有用。 - cfh
Poly2Tri看起来很有趣,而且声誉良好,但Python绑定的说明似乎有些晦涩,而且相对较旧的实现让我想知道它是否与Python 3兼容? - songololo
3
过去两年中,自从最初提出这个问题以来,有没有进行处理添加约束的更受支持的库的相关工作? - kuanb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接