合并两个纠缠的凸包

2023-12-24

如何合并两个纠缠的凸包(例如this https://i.stack.imgur.com/ALM4G.jpg)使用格雷厄姆扫描或任何其他算法在线性时间内形成凸包?


基本上,你使用安德鲁的修改 https://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain格雷厄姆扫描算法。

将点按 xy 顺序排序后,计算上壳和下壳linear时间。由于您已经拥有两个凸包,因此凸包点的 xy 排序也将采用linear时间(例如,反转下部外壳并对四个排序列表进行合并排序)。

由于算法的其余部分将花费线性时间,因此总体运行时间按照您的要求是线性的。

这里有一个参考一些简短的Python代码 https://gist.github.com/arthur-e/5cf52962341310f438e96c1f3c3398b8实施安德鲁对格雷厄姆扫描的修改。另请参阅我的回答here https://stackoverflow.com/a/71725431/9702190.

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

合并两个纠缠的凸包 的相关文章

  • Scipy 和opencv 计算凸包(convexHull)

    凸包 xff1a 在数学中 xff0c 在实向量空间 V 中的一组点 X 的凸包或凸包络是包含 X 的最小凸集 来自 Wikipedia 通俗的来说就是包围一组散点的最小凸边形 在 scipy spatial 和 opencv 分别有计算凸
  • 如何判断一个点是在线的右侧还是左侧

    我有一组要点 我想将它们分成两组不同的组 为此 我选择两点 a and b 并在它们之间画一条假想线 现在我想将这条线左边的所有点放在一组中 将这条线右边的点放在另一组中 我如何判断任何给定点z是在左边还是在右边 我试图计算之间的角度a z
  • OpenCV中如何计算凸性缺陷?

    OpenCV函数使用的算法是什么convexityDefects 计算轮廓的凸度缺陷 请描述并说明该算法的高级操作及其输入和输出 基于文档 输入是两个坐标列表 contour定义原始轮廓 下图中的红色 convexhull定义与该轮廓相对应
  • 图形中的凸包 - Mathematica

    尝试使用计算几何包中的平面图绘制凸包 但在图形中使用时不起作用 关于如何使用 Graphics 绘制 ConvexHull 有什么想法吗 Needs ComputationalGeometry pts RandomReal 0 10 60
  • 如何为凸包算法的中间步骤设置动画?

    我正在尝试制作某种动画 以便用户可以理解或看到查找点集的凸包所采取的步骤 例如 假设我使用下面的代码进行 Graham Scan 有哪些方法可以对线条添加和删除进行动画处理 即使对于很多点 也需要时间来处理 然后几乎立即将它们全部绘制出来
  • 如何找到两个凸包的交集?

    我有两个凸包 让我们假设它们被给出为scipy spatial ConvexHulls import numpy as np points1 np random rand 10 3 points2 np random rand 10 3 h
  • 凸包的测试用例数据

    我需要为类作业创建一个 2D 凸包函数 并且我想要一个比作业提供的更强大的测试用例 有谁知道解决方案的大型测试用例 25 这里还有一些测试数据 这是一些测试数据 Test 1 8 7 7 7 7 7 7 7 7 9 0 9 0 0 9 0
  • 合并两个纠缠的凸包

    如何合并两个纠缠的凸包 例如this https i stack imgur com ALM4G jpg 使用格雷厄姆扫描或任何其他算法在线性时间内形成凸包 基本上 你使用安德鲁的修改 https en wikibooks org wiki
  • CGAL:带有信息的点的凸包

    我在平面上有一个由 2D 点 N 个元素 组成的向量 我想制作这些点的凸包 之后 我想检索凸包中每个顶点的向量索引 我该怎么做 我知道 通过利用三角测量存在这种可能性vector
  • 如何计算 3d numpy 数组中的凸包图像/体积

    我想知道是否有任何基于 numpy 的工具可以 给定 3D 二进制输入 numpy 图像 找到其凸包 并返回此 3D 凸包内的索引或类似体素 3D 像素 列表 一种可能性是使用skimage morphology convex hull i
  • 找到顶点的边(多边形)的最佳算法

    我有大量的顶点 其中一些是边缘 一些是多余的 形状内部 我想删除它们 我能想到的最简单的算法是一一检查它们是否撞到了其他人形成的形状 但这应该是一个非常慢的算法 我考虑从边缘选择一个 每个示例中距原点最远的一个 并计算从这一点开始的最长路径
  • 如何检查一个点是否在三角形中?

    你好 还要考虑到我有 4 个点 我将有 4 个三角形 我如何检查这四个三角形中的每个点是否是三角形内的点 谢谢 Polygon http download oracle com javase 6 docs api java awt Poly
  • 到凸包的距离

    我一直在寻找一种方法来计算到凸包 多边形的距离 如果该点在包内 则距离为正 如果在包外 则距离为负 例如 给定一个船体和一组点 可以计算正 负距离吗 from scipy spatial import ConvexHull import m
  • 如何在 3 维空间中找到凸包

    给定一组点S x y z 如何找到convex hull那些点 我尝试理解该算法here http wcipeg com wiki Convex hull 但拿不到太多 It says 首先将所有点投影到 xy 平面上 并通过选择具有最高
  • 高维中的凸包,找到多面体的顶点

    假设我有一个 6 维空间中的点云 我可以根据需要使其密集 这些点位于低维多面体的表面上 即点向量 x1 x2 x6 看起来是共面的 我想找到这个未知多面体的顶点 我当前的尝试通过 Python 中的 scipy 接口使用 qhull 算法
  • 凸性缺陷 C++ OpenCv

    如果您能帮助我解决这个问题 我将不胜感激 与这个问题相关OpenCV 2 X C 中的 cvConvexity 缺陷 https stackoverflow com questions 6653789 cvconvexitydefects
  • 3d 表面的凸包算法 z = f(x, y)

    我有一个以一组三元组 x i y i z i 形式给出的 3D 表面 其中 x i 和 y i 大致位于网格上 并且每个 x i y i 都有一个关联的 z i 值 典型的网格是20x20 我需要在给定的公差范围内找到哪些点属于曲面的凸包
  • 在opencv中发现凸性缺陷? [根据给定的输入图像崩溃..]

    我有一个计算图像凸包的程序 我正在尝试使用此信息来计算fingers存在于输入图像中 从一些冲浪中我发现做到这一点的方法 数手指 是 寻找轮廓 凸包 凸性缺陷 但我在使用凸性缺陷函数时遇到了麻烦 它编译得很好 但在运行时程序会因某些输入图像
  • 如何获得凸包中均匀分布的点?

    给定一组点 points np random randn n 3d points 我想均匀地填充由凸包定义的体积 其中它们位于一个列表 np array of shapenx3 的 3d 点 我可以得到凸包 hull scipy spati
  • 点集子集的最小周长凸包

    给定平面上的 n 个点 没有 3 个共线 给定数字 k 找到 k 个点的子集 使得 k 个点的凸包在 k 个点的子集的任何凸包中具有最小周长 我可以想到一个简单的方法 运行时间为 O n k k log k 找到大小为 k 的每个子集的凸包

随机推荐

  • 以编程方式设置 type="file" 输入 HTML 元素的值? [复制]

    这个问题在这里已经有答案了 Note 下面的答案反映了 2009 年旧版浏览器的状态 现在 您实际上可以在 2017 年使用 JavaScript 动态 编程地设置文件输入元素的值 有关详细信息以及演示 请参阅此问题中的答案 如何以编程方式
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • 将所有函数保存在txt文件中

    我通常会运行大量模拟R 在模拟之间 R 的某些部分 代码会改变 通常情况下 我会站在旁边 模拟结果包含以下内容的 txt 文件 其中使用的每个函数的定义 模拟 为了制作该 txt 文件 我只需 运行这一行 for j in 1 length
  • 开始学习 JavaFX 之前需要了解什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读到了 JavaFX 相对于 Swing 的优势 这不是讨论的重点 我想学习 JavaFX 但后来我对 JavaFX 脚本和 XML
  • Android Square Picasso 无法加载土耳其字符图像 url

    我尝试使用 square picasso 一个网络应用程序 但是如果我的图片网址包含土耳其字符 毕加索未加载 该网址正在运行 http www bulenttiras com wp content uploads 2014 02 kokhu
  • 虚拟类中的抽象方法

    我有一个 C 类 它有很多虚拟方法 其中一些方法本质上是抽象的 它们在子类中完全实现 基类是空的 为了让它编译 我在基类中抛出一个 InvalidOperationException 并注释应该做什么 这只是感觉很脏 有更好的方法来设计我的
  • Android,日文字符文件名比较问题

    我正在尝试将搜索字符串与文件名与 Android 上的递归目录搜索相匹配 问题是字符是日语 在某些情况下不匹配 例如 我尝试匹配文件名开头的搜索字符串是 呼 当我从 file getName 打印文件名时 这会准确反映 例如打印到控制台的文
  • Oracle中如何进行条件插入?

    我读了here http psoug org snippet INSERT WHEN 588 htm语法如下所示 INSERT WHEN Condition THEN INTO TableName ColumnName VALUES VAL
  • 使用 Polly 断路器处理多种服务的正确方法

    我有一个应用程序 我们可以在其中与数百个 HTTP 端点进行通信 该应用程序是某种代理 在使用 polly 进行测试时 我注意到如果一个端点 比如说api endpoint1 com失败 调用api endpoint2 com and ap
  • 如何使用SQL查询来定义dbtable中的表?

    In JDBC 到其他数据库 http spark apache org docs latest sql programming guide html jdbc to other databases我找到了以下解释dbtable范围 应读取
  • 当单元格内容被截断时,将 VB.Net DataGridView 中的三个点(省略号)(...) 更改为自定义字符

    我正在 VB Net 中开发一个项目 并且使用古吉拉特语字体 非 Unicode 我放置了一个 DaraGridView DGV 并在 DGV 中显示数据库中存储的数据 在 DGV 中 如果单元格的内容被截断 则 DGV 显示椭圆 三个点
  • iPhone 应用程序和 Web 应用程序之间的双向同步

    我有一个依赖于 MySQL 数据库的 Web 应用程序 我正在考虑为其构建一个 iPhone 应用程序 该应用程序将允许用户在网络应用程序上浏览 插入 更新 删除其帐户的数据 最简单的方法是将 iPhone 应用程序简单地构建为 Web 应
  • java.lang.IllegalStateException:凭证加密存储中的 SharedPreferences 在用户解锁之前不可用

    Google Pixel 设备 OS 9 0 pie 上的 cashlytics 中不会记录崩溃 Playstore 将 ANR Crashes 报告为 java lang IllegalStateException 凭证加密存储中的 Sh
  • C# catch(FileNotFoundException) 和 CA1031

    所以这段代码会触发CA1031 try logic catch FileNotFoundException exception type handle error 虽然这个没有 try logic catch FileNotFoundExc
  • 密码确认验证 CakePHP

    我进行了广泛的搜索 尝试了书中的每一个技巧 但我仍然无法让我的 CakePHP 应用程序执行简单的密码确认验证 我尝试创建一个自定义验证规则 如下所示 passwordequal gt array rule gt checkpassword
  • 无法让此正则表达式适用于 Snakemake 中的 wildcard_constraints

    我有一个用 Snakemake 编写的工作流程 用于分析生物测序数据 工作流程期望对所有数据文件进行组织 以便每个原始读取文件都以检测类型 RNASeq DNaseSeq 等 开头 并且在工作流程生成的所有文件中都保持此文件名约定 我有一个
  • Chrome中如何区分浏览器关闭和刷新事件?

    如何使用 JavaScript for CHROME 区分浏览器关闭和刷新事件 我尝试过下面的 JavaScript 代码 但它不适用于 Chrome window onbeforeunload function e var e e win
  • 如何打印问题中的变量值?

    我做一点补充 sumbit CIN A B CO R sumbit 0 1 1 CO R write CIN nl write A nl write nl write B nl write nl write CO write R nl 我想
  • Kotlin Gson 反序列化

    我收到一个带有地图包装器的 JSON 数据模型Table 我试图使用泛型来传递超出包装器的类型 但它在运行时翻译得不好 这是我的 JSON 文件的示例 Table paymentmethod id 1 paymentmethod descr
  • 合并两个纠缠的凸包

    如何合并两个纠缠的凸包 例如this https i stack imgur com ALM4G jpg 使用格雷厄姆扫描或任何其他算法在线性时间内形成凸包 基本上 你使用安德鲁的修改 https en wikibooks org wiki