如何简化复杂的多边形?

2024-03-13

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

这就是我想做的事情:

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


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

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

这是一个例子 http://jsfiddle.net/mq9Zn/1/在 jsfiddle 上的实现。注意:它没有优化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何简化复杂的多边形? 的相关文章

  • 如何理解 Angular JS 中的控制台错误消息?有什么工具吗?

    我是 Angular JS 的新手 我的第一个问题是如何理解 Angular JS 中控制台的错误消息 我编写了这段用于匹配密码的代码片段 它在控制台上抛出错误 但它工作正常 它是有线的 我无法从这些控制台消息中理解任何内容 谁能指出我为什
  • 在 MongoDB 中查找具有字符串 ID 数组的文档

    我有一个 id 字符串数组 我想将其与 find 函数一起使用 db companies find id in arr arr看起来像这样 563a2c60b511b7ff2c61e938 563a2c60b511b7ff2c61e8b7
  • ant-d upload中如何为removeFile添加PopConfirm一个图片文件

    我正在使用 Ant d Upload 通过本地系统上传文件 然后单击文件预览图像上的删除图标 图像文件将被删除 我想添加一个弹出确认 所以我尝试在 onRemovefunction 中添加确认作为承诺但它不起作用 它在浏览器中显示警报 on
  • 计算Javascript中两次点击之间的时间

    我想用 javascript 计算属性的两次点击之间的时间 但我不知道如何 例如 a href click here a 如果用户单击多次 假设 5 秒内 我想显示警报 如果有帮助的话我正在使用 jQuery 我对 javascript 不
  • 在浏览器中语音聊天? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在寻求建立一个小组 voice 使用服务器上的node js 在浏览器中聊天 这可能吗 如果您希望您的解决方案是基于服务器端和客
  • 将 jquery-mobile 与 Webpack 结合使用

    我正在尝试使用 webpack 加载 jquery mobile 但到目前为止还没有运气 我知道 jquery mobile 依赖于 jquery ui 而 jquery ui 又依赖于 jquery 如何在 Webpack 中设置这样的场
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 创建 Cookie 时需要帮助

    我有一个名为yes和另一个名叫no
  • 使react-leaflet能够离线使用

    我一直在使用反应传单 https github com PaulLeCam react leaflet图书馆 到目前为止运作良好 现在我希望网站预加载尽可能多的图块 以便网络应用程序 也是 PWA 可以在没有互联网的情况下使用 我找到了一些
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 访问 TypeScript 数组的最后一个元素

    TypeScript 中有访问数组最后一个元素的符号吗 在 Ruby 中我可以说 array 1 有类似的东西吗 您可以通过索引访问数组元素 数组中最后一个元素的索引将是数组的长度 1 因为索引是从零开始的 这应该有效 var items
  • jQuery 选择器:为什么 $("#id").find("p") 比 $("#id p") 更快

    该页面的作者 http 24ways org 2011 your jquery now with less suck http 24ways org 2011 your jquery now with less suck断言 jQuery
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • React Native - 跨屏幕传递数据

    我遇到了一些麻烦react native应用程序 我不知道如何跨屏幕传递数据 我意识到还有其他类似的问题在 SO 上得到了回答 但是这些解决方案对我来说不起作用 我正在使用StackNavigator 这是我的设置App js file e
  • 在javascript中动态生成行?

    我是 javascript 新手 我想在按下 Tab 时动态生成行 并希望获取在动态生成的行中输入的值 以便我可以在 servlet 代码中使用这些值 这是我的html
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing

随机推荐

  • JSON SCHEMA:我们可以对类型进行非此即彼(字符串/整数)吗?

    我正在做一个架构来验证联系信息 在电话号码验证中 我们有一个国家代码 我真的希望有一种方法可以让国家 地区代码成为string or an integer 来自不同国家 地区的用户告诉我 国家 地区代码中有时会存在有意义的非整数字符 例如
  • Python 中的 PRTime 到日期时间

    我正在编写一个从文件中检索信息的脚本地点 sqlite 历史 并意识到它以 PRTime 格式存储时间 Python 中是否有可用的方法可以转换此日期时间 还是我必须自己制作 PRTime 是自 1970 01 01 以来的微秒数 请参阅h
  • 如何在 Rails 中的 CSV 解析过程中更改编码

    我想知道导入并解析 CSV 文件时如何更改它的编码 我有这个代码 csv CSV parse output headers gt true col sep gt csv each do row row row to hash with in
  • 我安装了 2 个版本的 python,但 cmake 使用的是旧版本。如何强制 cmake 使用较新版本?

    我安装了 2 个版本的 python 但是cmake正在使用旧版本 我该如何强迫cmake使用较新的版本 您可以根据需要尝试以下任一方法 For CMake gt 3 12 根据变更日志 新的 FindPython3 和 FindPytho
  • 字符串格式和十六进制字符

    有人可以解释为什么这不起作用 string f string Format x 0 00 0 5 string o string Format f INSERT TEXT System Diagnostics Debug WriteLine
  • 在 Laravel-Excel 中导出大数据

    使用此代码 我可以将 MyModel 的数据导出到 Excel 工作正常 Excel create Filename function excel excel gt sheet Contratos function sheet datos
  • Docker-machine:找不到 ca.pem

    在这里 我使用 docker 机器创建一个测试机器 dev docker machine create d virtualbox dev Creating CA C Users xxx docker machine certs ca pem
  • 使用 Prolog 中的累加器计算多项式的计算问题

    背景 我需要编写一个谓词 eval P A R 其中 P表示多项式系数列表 即1 2x 3x 2表示为 1 2 3 A 代表 X 的值 R 是 X A 处多项式的结果 Example eval 3 1 2 3 R 产生 R 24 编辑 之前
  • 角度指令 - 要求嵌入?

    我在下面收到错误 我不明白为什么 有任何想法吗 html
  • 当侧面项目具有不同宽度时,保持中间项目居中

    想象一下以下布局 其中点代表框之间的空间 Left box Center box Right box 当我删除右侧的框时 我喜欢中心框仍然位于中心 如下所示 Left box Center box 如果我删除左侧的框 情况也是如此 Cent
  • 使用 C++ 连接数据并将其插入到 MS Access 表中

    我正在开发一个项目 需要我对 MS Access 表执行插入查询 我一直在网上到处搜索 但似乎没有任何效果 任何帮助将不胜感激 另外 我必须为 VS2008 和 Visual C 6 0 编写此内容 谢谢 Use ODBC https le
  • 简单的 XML 解析 XML 到列表

    我使用 Simple XML simple xml 2 6 2 jar 来解析 xml 文件 例如
  • 哪个 MySQL 排序规则比较,例如é 和 e 相等吗?

    编辑 如果不存在这样的排序规则 如果 MySQL 有一个将字符串转换为 ASCII 等价物的函数 我可以解决它 FUNC V re Vaere 可能有几个这样的函数 每个字母表一个 这会很麻烦 但如果有效的话也是可以接受的 我需要一个 My
  • 什么是急切加载?

    什么是急切加载 我用 PHP JS 编码 但更通用的答案就可以了 我看到了很多关于 Java 和 Ruby 的问题 但我对这些语言都一窍不通 而且我发现很难阅读代码 我不知道首先应该做什么 共有三个级别 急切加载 当被要求时你会做一切 典型
  • “值初始化”是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 以下短语在 C 中意味着什么 零初始化 默认初始化和值初始化 https stackoverflow com questions 1613341 what do the following phras
  • 在 Team Services 中的构建之间复制工件

    我们的代码被分成多个项目 项目 A 中的库随后由项目 B 使用 项目 B 再由项目 C 使用 等等 但是 我找不到在构建之间共享工件的方法 所有构建步骤都是关于发布工件的 但似乎没有一个是关于下载它们的 除了 Jenkins 下载工件 这正
  • Access 2010:连接三个表,未知错误

    我正在尝试在 SQL 查询中连接 MS Access 2010 中的三个表 SELECT Track trackName TrackIsGenre genre ContainsTracks albums FROM Track INNER J
  • 如何在苹果拒绝元数据后仅提交应用程序详细信息,以避免将应用程序添加到审核时钟

    由于演示帐户详细信息无效而导致元数据被拒绝后 我们是否可以重新提交应用程序 以避免添加回审核队列并重新启动审核时钟 As Per 此链接是 iTunes Connect 和元数据拒绝的一个简单错误 http www brynbodayle
  • 使图像空白透明,覆盖到 imshow()

    我有一个用 imshow 显示的空间数据图 我需要能够覆盖产生数据的晶格 我有一个PNG 作为黑白图像加载的晶格文件 我想要的该图像的部分 覆盖是黑线 它们是晶格 看不到线之间的白色背景 我想我需要将每个背景 白色 像素的 Alpha 设置
  • 如何简化复杂的多边形?

    最近我一直在思考如何将复杂的多边形转换为非复杂的多边形 这是怎么做到的 这就是我想做的事情 完成后我将使用 JavaScript 但任何形式的解决方案都可以 语言 算法或简单的英语 我将使用与手动绘制多边形时相同的启发式 这可能不是计算该多