如何找到采样边界内的最大圆?

2023-12-04

给定一组二维点,这些点是不规则形状的边界,该形状可能不是凸的并且可能有内孔,是否有一种算法可以找到适合边界的最大圆?

我已经做了很多搜索,并且确实找到了接近的算法,例如最大的空圆问题,但到目前为止我发现没有一个与我所拥有的约束相匹配。


动机。由对形状进行采样的点给出的形状首先让我想起了以下概念阿尔法形状以及它们与持久拓扑的关系。看看这些slides以获得相关图片。

无论如何,阿尔法形状与沃罗诺伊图点,它是对偶(作为平面图)德劳内三角剖分.

解决方案。我的建议是考虑所有 Voronoi 节点,并将间隙半径(到其定义点的距离)最大的节点作为要查找的点:

Voronoi diagram of points

在 Delaunay 三角剖分的对偶设置中,该节点对应于具有最大外接圆的 Delaunay 三角形。

该解决方案也是受到计算几何中的最大内接圆问题的启发。

另一种看待它的方法是 Voronoi 图的草地火灾解释:考虑从每个输入点开始的草地火灾。火势以单位速度向各个方向蔓延。中间的红点是凸包内最晚到达的点。

分析与实施。该算法的时间复杂度对于 Voronoi 图来说是 O(n log n),而找到间隙最大的 Voronoi 节点的时间复杂度是 O(n)。一个经典的实现是qhull。似乎有一个 C++ 实现boost这对你来说是这样的。但任何 Delaunay 三角剖分代码也都可以。

可能出现的问题。如果形状类似于具有大口袋的 Omega 字母,则具有最大间隙的 Voronoi 节点位于 Omega 形状的“外部”。因此,人们需要更好地掌握采样形状的“内部”和“外部”概念。在这里,最初提到的 alpha 形状可能会有所帮助,参见: Asurvey由发明阿尔法形状的 Edelsbrunner 设计。

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

如何找到采样边界内的最大圆? 的相关文章

  • 计算 Adamic-Adar 的快速算法

    我正在研究图形分析 我想计算一个 N N 相似度矩阵 其中包含每两个顶点之间的 Adamic Adar 相似度 为了概述 Adamic Adar 让我从以下介绍开始 给定邻接矩阵A无向图的G CN是两个顶点的所有公共邻居的集合x y 两个顶
  • 为什么我的 Project Euler Problem 12 算法这么慢?

    我已经在 Scala 中为 PE P12 创建了解决方案 但速度非常非常慢 有人可以告诉我为什么吗 如何优化这个 calculateDevisors 简单的方法和calculateNumberOfDivisors 除数函数具有相同的速度 i
  • 找到质数?

    为了判断 N 是否是质数 我们只需要查找所有小于或等于 sqrt N 的数字 这是为什么 我正在编写 C 代码 因此试图理解其背后的原因 如果 N 是一个正整数 且能被两个正整数 1 和 N 整除 则 N 是素数 由于数字的约数不能大于该数
  • 将整数列表划分为总和相等的 K 个子列表

    类似的问题还有1 https stackoverflow com questions 27322804 partition of a set into k disjoint subsets with equal sum and 2 http
  • StackOverflowError 计算 BigInteger 的阶乘?

    我正在尝试编写一个Java程序来计算大数的阶乘 它似乎BigInteger无法容纳这么大的数量 下面是我编写的 简单的 代码 public static BigInteger getFactorial BigInteger num if n
  • 对矩阵进行舍入,保留行和列总计

    想要 以保留行和列总计的方式对矩阵进行舍入的 伪 代码 问题从向量开始 X and Y of 非负整数 with Sum X Sum Y 想要圆X Y Sum X 同时保留行和列总计 这是婚姻问题的一种 Xa需要进行一定次数的握手 拨打该号
  • 快速排序应用程序中这些交换代码行的目的是什么?

    我试图理解快速排序的实现或应用程序以找到第 k 个最小元素 这是我试图理解的代码 public int quicksort int a int start int end int k if start lt end int pivot pa
  • 如何设计一种算法来计算倒数式数学数字难题

    我一直想这样做 但每次我开始思考这个问题时 它的指数性质都会让我大吃一惊 我希望能够理解的问题解决器和代码是针对倒计时数学问题的 给定一组数字 X1 到 X5 计算如何使用数学运算将它们组合起来生成 Y 您可以应用乘法 除法 加法和减法 那
  • 在 3d 网格中转发(绘制)线

    我需要类似 Bresenham 算法的东西 但是 对于 3d 网格空间来说不完全是这样 我需要 3d 单元网格 边缘尺寸 1 0 从 S 点开始 前进到 K 点 接触 该线接触的所有单元格 即使只有边缘 点被触摸我需要触摸所有 8 个单元
  • 简单的排名算法

    我需要创建一个民意调查 按照项目的好坏顺序创建一个排名列表 我打算向每个用户展示两个项目 让他们选择一个他们认为更好的项目 然后多次重复这个过程 它有点类似于您在社交网络电影 我应该如何根据收到的答案对项目进行排名 看着那 这ELO国际象棋
  • 检查有效的 IMEI

    有人知道如何检查有效的 IMEI 吗 我找到了一个可以检查此页面的功能 http www dotnetfunda com articles article597 imeivalidator in vbnet aspx http www do
  • 定点数学比浮点运算快吗?

    多年前 即 20 世纪 90 年代初期 我构建了图形软件包 该软件包基于定点算术和预先计算的 cos sin 表格以及使用牛顿近似方法进行 sqrt 和对数近似的缩放方程来优化计算 这些先进技术似乎已经成为图形和内置数学处理器的一部分 大约
  • “包含字符串”的快速索引

    在我的应用程序中 我有多达数百万个短字符串 大部分短于 32 个字符 我想实现一个带有附加列表的搜索框 该列表仅包含包含在搜索框中输入的整个字符串的元素 如何预先建立索引来快速找到此类字符串 所有排序的 STL 容器都会检查整个字符串 对于
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • 什么是“朴素”算法,什么是“封闭式”解决方案?

    我有一些关于描述算法时使用的术语语义的问题 首先 朴素 算法是什么意思 这与给定问题的其他解决方案有何不同 解决方案还可以采取哪些其他形式 其次 我听到很多人提到 封闭式 解决方案 我也不知道这意味着什么 但在尝试解决递归关系时经常会出现
  • 球体表面上(经度、纬度)点的凸包

    标准凸包算法不适用于 经度 纬度 点 因为标准算法假设您需要一组笛卡尔点的包 纬度 经度点是not笛卡尔坐标系 因为经度在反子午线处 环绕 180 度 即 东经 179 度以东 2 度为 179 因此 如果您的点集恰好横跨反子午线 您将错误
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr
  • Java 2d 游戏中的路径查找?

    本质上它是我正在开发的一款吃豆人克隆游戏 我有一个 Enemy 类 并创建了该类的 4 个实例 它们都代表游戏的 4 个幽灵 所有幽灵都会在屏幕的随机区域启动 然后它们必须朝着吃豆人角色前进 当玩家控制吃豆人并移动它时 他们应该跟随它并尽可
  • 重写修改后的 goto 语义的算法

    我有一大堆使用旧的自行设计的脚本语言编写的遗留代码 我们将它们编译 翻译成 javascript 该语言有条件跳转 跳转到标签 与普通 goto 语句的区别在于 不可能向后跳转 该语言中没有嵌套的 if 语句或循环 由于 javascrip
  • 求先递增后递减列表的最大值和最小值

    我尝试用谷歌搜索这个问题 但没有取得太大成功 我确信这个问题或类似问题有一个技术名称 但我似乎找不到答案 给定一个列表L整数 即严格递增 然后严格递减 找到该列表的最大值和最小值 例如 L可能 1 2 3 4 5 4 3 2 or 2 4

随机推荐

  • java getRuntime().exec 需要 UAC 的 exe

    所以我们有一个作为 Windows 服务运行的 java 进程 它需要执行一个命令Runtime getRuntime exec command 它执行的命令需要UAC 这是在 Windows Server 2008 上 听起来您无法为单个
  • Android模拟器运行简单项目时出错

    当我将 Android 模拟器配置为版本 4 4 2 时 模拟器只是挂起并且无法通过 Android 徽标 当我检查 Eclipse 中的控制台时 出现以下错误 错误 factory client recv 中未知的相机工厂查询名称 and
  • 在 html 页面的 iframe 内显示警告框

    有一个简单的 HTML 页面 名为 abc html 现在 abc html 有一个名为 单击我 的按钮 此页面 abc html 也有一个 iframe 其 id 为 myframe 现在我想要的是 当单击 单击我 按钮时 名为 myfr
  • 如何使用CLLocationManager监控20多个区域

    我想要使 用以下方式监控大约 2000 个区域 仅限入口 CLLocationManager 我有一个函数可以找到 20 个最近的商店 Store是一个继承自的类NSObject并有一个CLLocationCoordinate2D属性名为g
  • 如何将表单数据作为 JSON 发布?

    我正在尝试为我们正在进行的一个小组项目构建一个注册站点 但不知道如何将表单数据作为 json 发送 我尝试了很多谷歌搜索并更改了代码 但似乎没有任何效果 我遇到的问题是 当我按下提交按钮时 我从 API 收到如下错误 输入无效 我认为原因是
  • 什么时候不应该使用 Java 中的 static 关键字?

    什么时候在 Java 方法签名上使用 static 关键字被认为是不好的做法 如果一个方法根据某些参数执行一个函数 并且不需要访问非静态的字段 那么您不是总是希望这些类型的方法是静态的吗 在大型 Java 应用程序中您将遇到的两个最大的弊端
  • 在 MVC / ASP.NET 中发布包含列表的模型

    我知道怎么做postASP NET 中表单的对象列表 但假设我想要post同时还有其他一些值 有没有办法有一个表格 像这样
  • 如何在线程内接收 WM_POWERBROADCAST?

    我已经绞尽脑汁一天多了 浏览了大量的资源 试图弄清楚如何接收WM POWERBROADCAST来自线程内的 Windows 消息 目前 我正在使用AllocateHWnd WndMethod 独立组件内部 当我在标准 VCL Forms 应
  • 在 UITableView 中,“visibleCells”的委托是什么?

    当单元格进出设备屏幕时 我希望我的 viewController 确切地知道什么进来了 什么出去了 有没有办法做到这一点 不存在仅适用于 可见单元格 的委托方法 当单元格离开屏幕时 不会调用任何内容 当细胞变得可见时 实际上什么也没有 有的
  • Python:使用()调用方法和不使用()调用方法有什么区别?

    这一定是非常基本和明显的东西 因为我无法通过谷歌或在这里找到答案 当我调用方法时 Python 中的括号有什么区别 带有 pygame 和括号的示例代码 import pygame import sys pygame init screen
  • setInterval 在 Ajax 请求后停止

    我正在使用 Asp net MVC 我希望我的部分视图按一定时间间隔刷新 直到我发出不相关的 Ajax 请求 然后它才会停止 这里有一些简化的片段来说明问题 在 AjaxRefresh js 中 function ajaxRefresh v
  • 如何从 UIImage 中 NSLog 像素 RGB?

    我只想 1 复制像素数据 2 迭代并修改每个像素 仅向我展示如何将 ARGB 值 NSLog 为 255 3 从新的像素数据创建 UIImage 如果有人能告诉我如何将像素的 RGBA 值 NSLog 为 255 我就可以弄清楚血淋淋的细节
  • 从路径读取事件日志文件

    我的问题与这个非常相似如何以编程方式打开事件日志 除了我正在记录任何东西 我需要从多台未连接的机器创建日志条目数据库 我收到 evtx 文件 然后尝试处理它们 现在我正在从导出的 xml 文件中执行此操作 但我想跳过到 xml 转换部分 我
  • ng-src 不适用于 youtube 嵌入视频

    我对 YouTube 嵌入代码有一个小问题 在我的控制器中 scope emedUrl https www youtube com embed
  • Python 中的多态性

    class File object def init self filename if os path isfile filename self filename filename self file open filename rb se
  • 手动响应鼠标悬停事件

    有没有办法触发 React 的 mouseover 和 mouseenter 事件 可以开火 ReactDOM findDOMNode someNode focus ReactDOM findDOMNode someNode click 有
  • PHP 找不到保存处理程序内存缓存

    我正在为这个问题绞尽脑汁 它应该很简单 但似乎找不到解决方案 所以希望你们中的一个人可以帮助我 我正在尝试使用 php 的 memcache 扩展来存储会话 我正在运行 MAMP 并已正确安装了扩展 我认为 它在我执行 phpinfo 时显
  • JPA中NamedQuery注解有什么好处?

    刚才我写了一个NamedQuery对于 JPA 实体 我们对此感到非常高兴 这里是 NamedQuery name Panties RED PANTIES QRY query SELECT p FROM Panties p WHERE p
  • 使用 iTextSharp 在 VB.NET 中读取 PDF 书签

    我正在制作一个工具 可以扫描 PDF 文件并搜索 PDF 书签和正文中的文本 我正在使用带有 VB NET 和 iTextSharp 的 Visual Studio 2008 如何从现有 PDF 文件加载书签列表 这取决于您所说的 书签 时
  • 如何找到采样边界内的最大圆?

    给定一组二维点 这些点是不规则形状的边界 该形状可能不是凸的并且可能有内孔 是否有一种算法可以找到适合边界的最大圆 我已经做了很多搜索 并且确实找到了接近的算法 例如最大的空圆问题 但到目前为止我发现没有一个与我所拥有的约束相匹配 动机 由