我正在尝试以编程方式将三角形的图像全部粘在一起。我认为我接近这个问题的方法是随机选择一些点,然后“连接”它们来制作三角形。问题是我无法想出一个很好的方法来连接它们。
我要做的一件事就是选择一个随机点开始(第1点),然后找到最近点(第2点),然后“连接”它们。然后,通过选择距离点1和点2的组合距离最小的那个,我找到最接近的第三点。这会给我一个三角形。我可以重复这个,直到我有一堆三角形。这里的问题是三角形将是分开的(它们不会被连接)。
我愚蠢地过度思考这个吗?有没有更简单的方法呢?
答案 0 :(得分:6)
您要找的是Delaunay triangulation!
它基本上做的是,如果通过它们的圆圈不包含任何其他点,则将三个点组合成三角形,并且它有效地完成。在一条线上会有特殊情况,或者在同一个圆上有超过3个点。
答案 1 :(得分:1)
我认为你正处于开始的正确轨道上,想到创建3条边的第一步,然后你将每条边创建一个新的三角形,每个边上都有一个额外的点。从理论上讲,每个边缘应该有2个三角形。