最近我一直在思考如何将复杂多边形转换为非复杂多边形。这是怎么做到的?
这是我想做的事情:
完成后我将以 JavaScript 结尾,但任何形式的解决方案都可以(语言、算法或简单的英语)。
最佳答案
我会使用与手动绘制多边形时相同的启发式方法(这可能不是计算该多边形的最有效的数学方法,但可能是最容易理解/实现的方法)。
- 从一点开始
- 找到我当前点和我试图到达的点之间的所有交点
- 如果不存在则绘制到下一个点
- 如果有,则绘制到那里,然后将下一个点设置为从那里开始的下一个点
- 如果您还没有回到起点,则转到 2。
Here is an example jsfiddle 上的实现。注意:它没有优化。
关于javascript - 如何简化复杂的多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10671234/