javascript - 如何简化复杂的多边形?

标签 javascript geometry polygon

最近我一直在思考如何将复杂多边形转换为非复杂多边形。这是怎么做到的?

这是我想做的事情:

Example

完成后我将以 JavaScript 结尾,但任何形式的解决方案都可以(语言、算法或简单的英语)。

最佳答案

我会使用与手动绘制多边形时相同的启发式方法(这可能不是计算该多边形的最有效的数学方法,但可能是最容易理解/实现的方法)。

  1. 从一点开始
  2. 找到我当前点和我试图到达的点之间的所有交点
  3. 如果不存在则绘制到下一个点
  4. 如果有,则绘制到那里,然后将下一个点设置为从那里开始的下一个点
  5. 如果您还没有回到起点,则转到 2。

Here is an example jsfiddle 上的实现。注意:它没有优化。

关于javascript - 如何简化复杂的多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10671234/

相关文章:

java - 如何在java中将多个多边形合并为一个

javascript - 在下一个示例中如何获取行 id

javascript - 获取今天的日期并将其设置为倒计时

java - 使用 Polygonshape 创建夹具时 Box2D 抛出错误

mysql - 有没有办法从 MySQL 的 Envelope(Poly) 中选择 lat1、lat2、lon1、lon2?

algorithm - 从给定的 n 个点中选择最近的 k 个点

javascript - websql 事务中的多个执行查询是否异步运行?

javascript - Node.js 中的 "Users not defined"

检查多边形是否是多面体投影的算法

processing - 贝塞尔曲线与圆的交点