我需要从一组点创建一个三角形网格。该集合的点数很少,因此不需要快速或优化(我最多处理 100 点)。网格需要是受约束的“delaunay 三角剖分”。在下图中,我(在左侧)显示了我开始的一组点(蓝色和红色点)。我也知道这些点之间的联系(黑色轮廓)。网格需要看起来像右侧的示例(包括形成外部和内部三角形的灰色边缘)。
我不能使用图书馆。
我研究了许多不同的算法。它们很多,很容易混淆。我想知道是否有一种简单且希望更简单的算法可以用来生成右侧的网格?蛮力方法很好(ps:我可以进行 Delaunay 三角剖分)。
我目前正在使用的算法存在一些问题。我希望它成为一个界限。
这是当前行为的示例:
这是通缉行为的MSPaint示例:
C#中凸包的当前代码:https : //hastebin.com/dudejesuja.cs
所以这是我的问题:
1)这有可能吗?
R:是的
2)这甚至被称为凸包吗?(我不这么认为)
R:不,这叫做边界,链接:https : //www.mathworks.com/help/matlab/ref/boundary.html
3)与传统的凸包相比,这是否会降低性能?
R:据我研究,它应该具有相同的性能
4)使用伪代码或类似方法的此算法示例?
R:尚未回答,或者我尚未找到解决方案