我正在尝试实现这里描述的贴花网格生成器:http://blog.wolfire.com/2009/06/how-to-project-decals/。该博客提出了一种三角形和正方形之间的交叉多边形三角剖分算法:
首先,我们可以一次从一个边框开始。我们选择左边 边界。要裁剪三角形,我们首先标记每个顶点 违反规则 - 在这种情况下,最左边的一个。然后我们看 在标记的顶点和未标记的顶点之间的每一行,并添加 在它穿过边界的点处的顶点。
然后我们可以简单地删除标记的顶点(或顶点),然后移动 到下一个边境。
一旦我们检查了所有边框,我们就会有一个裁剪的三角形!
我在纸上尝试了这种算法,它似乎并不涵盖所有情况。似乎它的描述缺少一些我错过的关键细节。有人可以发布伪代码实现吗?
编辑:更具体地说,我不清楚的部分是算法如何能够确定(黑线)之间的正确“切割”
和
当有多种选择时。
其次,为什么算法不能在多边形的顶点和图2中的左下角之间进行切割?该算法表明“我们看 在标记的顶点和未标记的顶点之间的每一行,并添加 在它穿过边界的点处的顶点“,左下角是不是没有标记的顶点?