我有一个大的顶点数组,其中一些是边缘,一些是冗余的(在形状内部),我想删除它们。
我能想到的最简单的算法是逐个检查它们是否与其他顶点形成的形状相交。但这应该是非常慢的算法。
我考虑选择一个边缘(例如,距离原点最远的边缘)并计算从此起点开始的最长路径... 应该获得边缘路径,对吗?
有什么建议吗?
我有一个大的顶点数组,其中一些是边缘,一些是冗余的(在形状内部),我想删除它们。
我能想到的最简单的算法是逐个检查它们是否与其他顶点形成的形状相交。但这应该是非常慢的算法。
我考虑选择一个边缘(例如,距离原点最远的边缘)并计算从此起点开始的最长路径... 应该获得边缘路径,对吗?
有什么建议吗?
凸包问题是计算几何中研究较多的问题之一。凸包算法中,Graham扫描是较为简单的一种,但并不是唯一的一种。礼品包装算法,也称为Jarvis' March,是我所知道的最简单的一种。Stony Brook算法库提供了C和C++语言实现的多种凸包算法。Geometry in Action主要展示凸包的应用场景。这里有一些低维和任意维凸包计算程序。