找到顶点的边(多边形)的最佳算法

2024-01-01

我有大量的顶点,其中一些是边缘,一些是多余的(形状内部),我想删除它们。

我能想到的最简单的算法是一一检查它们是否撞到了其他人形成的形状。但这应该是一个非常慢的算法。

我考虑从边缘选择一个(每个示例中距原点最远的一个)并计算从这一点开始的最长路径......应该得到边缘路径,对吧?

有什么建议吗?


多面体算法的技巧是选择一种适合您的输入和所需输出的算法,因为表示多面体的方法不止一种,并且在表示之间进行转换可能会很昂贵。在这种情况下,您从点开始并希望以顶点结束,因此格雷厄姆扫描 http://en.wikipedia.org/wiki/Graham_scan计算顶点的算法凸包 http://en.wikipedia.org/wiki/Convex_hull应该可以解决这个问题,尽管可能需要一些努力才能将其扩展到二维情况之外。是奥(n log n) 输入顶点的数量。

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

找到顶点的边(多边形)的最佳算法 的相关文章

  • 获取无平方数的列表

    获得该值的一种方法是自然数 1 n 我们对每个因子进行因式分解 看看它们是否有重复的质因数 但这对于大的情况来说会花费很多时间n 那么有没有更好的方法从 1 中获取无平方数n 您可以使用埃拉托斯特尼筛法的修改版本 取一个布尔数组 1 n 预
  • 如何找到最长的回文子序列(不是它的长度)

    我想找出字符串中最长的回文子序列 我到处都找到了找出子序列长度的算法 并声明该算法也可以扩展以返回子序列 但我没有找到如何实现的 有人能解释一下我怎样才能得到序列吗 既然你提到了链接最长回文子序列 http www geeksforgeek
  • 为无向无权图实现推重标签算法 s-t 最小割边

    我正在寻找一个好的解决方案来在无向和未加权图中找到 s t 最小切割边 我想使用推送重新标记算法 但我不确定如何实现它以在无向和未加权图上找到最小割 在每对顶点之间有两条反向边 并在所有边上赋予相同的权重 并应用推送重新标记算法 我可以用这
  • 稀疏矩阵中的最大和子矩形

    求一个子矩形中的最大和NxN矩阵可以完成O n 3 正如其他帖子中指出的 使用 2 d kadane 算法的时间 然而 如果矩阵是稀疏的 具体来说O n 非零条目 可以O n 3 时间被打败了吗 如果有帮助的话 对于我感兴趣的当前应用程序
  • 如何在Scala中实现尾递归快速排序

    我写了一个递归版本 def quickSort T xs List T p T T gt Boolean List T xs match case Nil gt Nil case gt val x xs head val left righ
  • Exposé 布局算法

    我正在制作一些项目 其布局类似于 Mac OS X 在 Expos 中对窗口所做的操作 它适应项目的长宽比和可用区域的长宽比 基本上 可用区域分为行和列 每个单元格 行和列的交集 中放置一个项目 这些项目必须保持其纵横比 此处width h
  • Python 给定 k 个分区的整数分区

    我正在尝试寻找或开发Python 的整数分区代码 仅供参考 整数分区将给定整数 n 表示为小于 n 的整数之和 例如 整数5可以表示为4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1 我为此找到了许多解决方案 ht
  • 从日志文件中获取前 100 个 URL

    我的一位朋友在接受采访时被问到以下问题 谁能告诉我如何解决它 我们有一个相当大的日志文件 大约 5GB 日志文件的每一行都包含一个用户在我们网站上访问过的 URL 我们想要找出用户访问最多的 100 个 URL 怎么做 如果我们有超过 10
  • 如何求解:T(n) = T(n - 1) + n

    我已经解决了以下问题 T n T n 1 n O n 2 现在 当我解决这个问题时 我发现界限非常松散 我是否做错了什么 或者只是这样 您还需要一个递归关系的基本情况 T 1 c T n T n 1 n 为了解决这个问题 您可以首先猜测一个
  • 线性代数如何在算法中使用?

    我的几个同行都提到 学习算法时 线性代数 非常重要 我研究了各种算法并学习了一些线性代数课程 但我没有看到其中的联系 那么线性代数如何应用在算法中呢 例如 图的连接矩阵可以带来哪些有趣的事情 三个具体例子 线性代数是现代 3D 图形的基础
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d
  • 将嵌套字典中的所有键从camelCase转换为snake_case

    我有一本类似这样的字典 firstName abc lastName xyz favoriteMovies Star Wars The lone ranger favoriteCountries country China capitalC
  • 如何从一组重叠的圆计算多边形集?

    这个问题是一些计算细节的扩展这个问题 https stackoverflow com questions 1667310 combined area of overlapping circles 假设有一组 可能重叠的 圆 并且希望计算这组
  • 高维最近邻搜索的最佳数据结构

    我实际上正在处理高维数据 50 000 100 000 个特征 并且必须对其执行最近邻搜索 我知道随着维度的增长 KD 树的性能很差 而且我还了解到 一般来说 所有空间分区数据结构都倾向于对高维数据执行详尽的搜索 此外 还有两个重要事实需要
  • 图中的后边

    I m having a hard time understanding Tarjan s algorithm for articulation points I m currently following this tutorial he
  • 快速搜索压缩文本文件

    我需要能够在大量压缩文件 txt 中搜索文本 压缩可能会改变为其他东西 甚至成为专有的 我想避免解压所有文件并压缩 编码 搜索字符串并在压缩文件中搜索 这应该可以通过对所有文件使用相同的码本使用霍夫曼压缩来实现 我不想重新发明轮子 所以 任
  • 最慢的计算复杂度(Big-O)

    在这些算法中 我知道 Alg1 是最快的 因为它是 n 平方的 接下来是 Alg4 因为它是 n 的立方 然后 Alg2 可能是最慢的 因为它是 2 n 这应该具有非常差的性能 然而Alg3和Alg5在我的阅读速度方面还没有遇到过 这两种算
  • 解释一下从 N 个给定集合中的每一个中给出第 K 个最大数字的示例?

    今天我尝试解决一个Facebook 编程挑战赛 https facebook interviewstreet com recruit challenges 我遇到的挑战是 酒吧问题 可以找到here https github com alo
  • 由周期表元素形成的最大单词的算法

    我想为以下问题场景编写一个算法 根据元素周期表元素的名称 找到可以组成的最大单词 符号如Na Ne等应被视为单个元素 这是在一家知名公司的求职面试中被问到的 有人可以帮我解决这个问题吗 我认为更好的方法是检查字典中的每个单词 看看是否可以从
  • 无需构建树即可预测霍夫曼压缩比

    我有一个二进制文件 我知道其中每个符号出现的次数 如果我要使用霍夫曼算法压缩它 我需要预测压缩文件的长度 我只对假设的输出长度感兴趣 而不对单个符号的代码感兴趣 因此构建霍夫曼树似乎是多余的 作为一个例子 我需要得到类似的东西 包含 4 个

随机推荐

  • 过滤 xarray 中数据的简洁方法

    我需要对 xarray 数组中的值应用一个非常简单的 匹配语句 当值 gt 0 时 取 2 当值 0 时 设为 0 值在哪里NaN make NaN 这是我当前的解决方案 我在用着NaNs fillna 类型强制代替二维索引 valid d
  • 我的 Kubernetes Pod 可以增长到多少 RAM?

    我想知道 RAM 的当前限制 没有明确配置限制 请求 如何查看现有 Pod 的当前配置 编辑 该配置不仅包括现在使用的内存量 还包括最大限制 即关闭内存的点 如果我用巨大的字符串炸毁堆 我会看到大约 4 GB 的限制 并且 Google C
  • 无需 for 循环即可标记连续的观察块

    我有一个标准的 我可以避免循环 问题 但找不到解决方案 我回答了这个问题由 splaisan提出 https stackoverflow com questions 10532192 add segments to scatter plot
  • 尝试发送基本的 Nodemailer 电子邮件

    我正在尝试将一些带有硬编码电子邮件数据的测试代码直接插入到我的 nodemailer server js 文件中 以开始基本的工作示例 请参阅以下网址中的 测试代码 部分 http jsbin com sibubi 1 edit html
  • 使用 Qt5 截取完整桌面的屏幕截图

    我今天想出了如何使用 Qt5 从包含的示例中获取桌面屏幕截图 该示例获取主屏幕 抓取它 然后保存它 我正在从 Python 翻译代码而不进行测试 所以如果有一个小的语法错误 那么是的 你知道 因此 我可以轻松地使用以下命令截取主屏幕的屏幕截
  • 错误:“uint8_t”尚未声明[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在尝试在 openSUSE 11 2 中使用 xbox360 控制器作为操纵杆 尝试编译 xboxdrv 时 htt
  • Firefox Webdriver 非常慢

    我们使用设置的 selenium webdriver dll 来运行我的自动化套件 我仅在 Firefox 中运行测试时遇到此问题 Firefox 中的测试运行速度非常慢 加载页面需要 3 4 分钟 但是 当我使用 Firefox 浏览器在
  • React Native fetch() 网络请求失败

    当我使用创建一个全新的项目时react native init RN 版本 0 29 1 并将 fetch 放入公共 facebook demo movie API 的 render 方法中 它会抛出Network Request Fail
  • django 中不同用户类型的单独“管理”界面

    我最近正在尝试创建一个涉及多个级别用户的项目 只是一个缩写和粗略模式的示例 ME Super User Client s Customer s Survey Collections SurveyUser s Invitee s Survey
  • 如何在纵向数据集中进行缩尾(或删除单变量异常值)

    我试图弄清楚如何对纵向数据集中按个体分组的观察结果进行缩尾处理 我从这个开始很好的答案 https stackoverflow com questions 14596373 removing univariate outliers from
  • Ionic 启动画面中的 GIF 文件

    我正在开发一个带有 ionic framework 和 Cordova 插件的混合应用程序 他们问我两个操作系统 iOS 和 Android 上的启动屏幕都有一个小动画 我想象的是 GIF 但如果您可以将 GIF 作为启动屏幕加载 则不会
  • 如何删除 Xamarin.Forms 导航栏?

    有没有办法从 Android 中的 Xamarin Forms Portable xaml 中删除导航栏 我想删除 Xamarin Forms xaml 内容页面上方显示的 小于号 您可以使用以下代码使用 Xamarin Forms 从 X
  • 尝试添加一对多关系时出现 NullReferenceException

    Item可以包含多个Sizes 当我尝试为我的商品添加新尺寸时 它会抛出NullReference错误 当我尝试将图像添加到我的项目时 也会发生同样的情况 你调用的对象是空的 Code var size new Size BasePrice
  • 在 C++ (Win32) 中解析 XML 的方法

    我正在寻找一种在 Windows 中用 C 解析 XML 的方法 我发现了一些方法 例如 MSXML Xerces TinyXml 等 但我想知道哪种方法在性能和功能方面最好 我的要求是它必须能够静态链接或将源代码包含在项目本身中 并且不能
  • Visual Studio 中的国际化

    我对 Visual Studio 相当陌生 想知道如何在我正在启动的新项目中最好地规划翻译 我需要提供英语 德语和法语 我过去经常使用 Eclipse 在那里我刚刚开发了一个新应用程序 当它完成时 我可以启动一个向导将字符串外部化到资源文件
  • Jackson 无法序列化我的领域对象

    我有一个 Route 对象 但我发现无法序列化它 所以我说我将调试并尝试单独序列化其中的对象 这是我的功能 public JSONObject getRouteJson Next Step step JSONObject route new
  • 在模板类中调用模板方法

    我试图找出为什么我无法编译的一些代码 并且我做了相当多的减少和匿名化 最终得到了这个例子 define NULL void 0 template
  • GWT UiBinder 有什么方法可以拥有动态的小部件列表吗?

    Class Foo有一个变量List
  • JavaScript 对数组进行排序

    我的数组未正确排序 有人可以让我知道我做错了什么吗 sortArray new Array hello Link to Google zFile aFile sort array if dir asc sortArray sort func
  • 找到顶点的边(多边形)的最佳算法

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