3d 表面的凸包算法 z = f(x, y)

2024-04-09

我有一个以一组三元组 (x_i, y_i, z_i) 形式给出的 3D 表面,其中 x_i 和 y_i 大致位于网格上,并且每个 (x_i, y_i) 都有一个关联的 z_i 值。典型的网格是20x20

我需要在给定的公差范围内找到哪些点属于曲面的凸包。我正在寻找一种有效的算法来执行计算(我的客户提供了 O(n³) 版本,在 400 点数据集上需要大约 10 秒...)


那里有很多,你没搜过吗?

这是一对 O(n log h) 运行时,其中n是输入点数,h是结果的顶点数:

http://en.wikipedia.org/wiki/Chan%27s_algorithm http://en.wikipedia.org/wiki/Chan%27s_algorithm

http://en.wikipedia.org/wiki/Kirkpatrick-Seidel_algorithm http://en.wikipedia.org/wiki/Kirkpatrick-Seidel_algorithm

以下是四种方法的演示,以及算法的链接:

http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html

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

3d 表面的凸包算法 z = f(x, y) 的相关文章

  • 添加到数组连续数字

    这是我向SO提出的第一个问题 我希望能答对 在 PHP 中 如果你不会 Python 或伪语言也可以 给定一个包含 n 个元素的数组 old array 1 2 3 5 7 8 9 20 21 23 29 我需要向新数组添加连续数字 如果不
  • 以一定角度遍历二维数组

    通常我们按行或列遍历数组 但这里我想以角度遍历它 我会尝试解释我的意思 因此 假设角度是 45 度 那么它会搜索为 0 0 then 0 1 1 0 then 0 2 1 1 2 0 等等 抱歉 无法上传图像 因为我是新用户 不允许这样做
  • 4 x 3 锁图案

    我遇到了这个 它要求计算在 4x3 网格中可以制作特定长度的锁定图案的方式数 并遵循规则 可能有些点不能包含在路径中 有效的模式具有以下属性 图案可以使用第一次接触的点序列来表示 与绘制图案的顺序相同 从 1 1 到 2 2 的图案与图案不
  • 我想优化这个短循环

    我想优化这个简单的循环 unsigned int i while j 0 j is an unsigned int with a start value of about N 36 000 000 float sub 0 i 1 unsig
  • 如何使用KDTrees实现最近邻搜索?

    所以 我正在实施一个KD Tree http en wikipedia org wiki Kd tree进行最近邻搜索 我已经构建了树部分 但我认为我没有完全理解搜索部分 关于遍历树来搜索邻居 维基百科文章如下 Starting with
  • 在无向图中查找强连通分量

    我想在无向图中找到强连接的组件 即如果我从节点开始A然后我会回到节点A并且每条边都被恰好访问一次 对于有向图可以使用Tarjan算法来寻找强连通分量 但是对于无向图怎么办 我认为您错过了强连通分量的含义 强连接组件 如果所有顶点对之间都存在
  • 哪种数据聚类算法适合检测时间序列事件中未知数量的聚类?

    这是我的场景 考虑在不同地点和时间发生的一组事件 例如 考虑有人在高空记录暴风雨期间城市中的雷击 就我的目的而言 闪电是瞬时的 只能击中某些位置 例如高层建筑 还可以想象每次雷击都有一个唯一的 ID 以便以后可以参考该雷击 这个城市大约有1
  • C 中的菱形数组排序

    我有以下 C 语言作业 我基本上需要一种方法而不是解决方案 我们有一个 13 x 13 的数组 在数组中 我们有一个需要考虑的菱形形状 该菱形之外的所有内容都初始化为 1 不重要 下面的 5 x 5 数组示例 x x 1 x x x 2 2
  • 如何在 GTX 560 及更高版本上使用 OpenGL 进行立体 3D?

    我正在使用在 Windows 7 上运行的开源触觉和 3D 图形库 Chai3D 我重写了该库以使用 Nvidia nvision 执行立体 3D 我将 OpenGL 与 GLUT 一起使用 并使用 glutInitDisplayMode
  • 在 Java 中实现排列算法的技巧

    作为学校项目的一部分 我需要编写一个函数 该函数将接受整数 N 并返回数组 0 1 N 1 的每个排列的二维数组 该声明看起来像 public static int permutations int N 该算法描述于http www usn
  • 在 O(n) 时间内找到 n x n 矩阵中的局部最小值

    所以 这不是我的家庭作业问题 而是取自 coursera 算法和数据结构课程的未评分作业 现已完成 You are given an n by n grid of distinct numbers A number is a local m
  • 编程 Pearls - 随机选择算法

    Programming Pearls 第一版第 120 页介绍了从 N 个整数总体中选择 M 个等概率随机元素的算法 InitToEmpty Size 0 While Size lt M do T RandInt 1 N if not Me
  • 如何高效地在屏幕上精确绘制N个点?

    这听起来是一个简单的问题 但我发现要获得良好的性能是非常棘手的 我提出的第一个算法是随机绘制点 从一组中检查是否已绘制 否则绘制 如果我们只绘制几个点 那么这种方法效果很好 但当我们接近填满屏幕时 速度会灾难性地减慢 我想出的最好的方法是构
  • 图中的后边

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

    我需要能够在大量压缩文件 txt 中搜索文本 压缩可能会改变为其他东西 甚至成为专有的 我想避免解压所有文件并压缩 编码 搜索字符串并在压缩文件中搜索 这应该可以通过对所有文件使用相同的码本使用霍夫曼压缩来实现 我不想重新发明轮子 所以 任
  • 我应该如何格式化 .dat 文件以便制作 3D 矢量图?

    我正在为大学做这个编程任务 我们必须写一个c 计算 3D 空间中某些线圈的磁场矢量的程序 我已经成功编写了这个程序 并且我认为它运行得很好 不过 我想添加一个特殊的东西 这是我的试卷 所以它必须特别好 我想绘制出向量 我习惯打电话gnupl
  • 最慢的计算复杂度(Big-O)

    在这些算法中 我知道 Alg1 是最快的 因为它是 n 平方的 接下来是 Alg4 因为它是 n 的立方 然后 Alg2 可能是最慢的 因为它是 2 n 这应该具有非常差的性能 然而Alg3和Alg5在我的阅读速度方面还没有遇到过 这两种算
  • 如何求小于给定数的最大2次方

    我需要找到小于给定数字的最大 2 次幂 我陷入困境 找不到任何解决方案 Code public class MathPow public int largestPowerOf2 int n int res 2 while res lt n
  • 在 C++ 中通过引用传递 std 算法谓词

    我正在尝试从 a 中删除元素std list并保留已删除元素的一些统计信息 为此 我使用列表中的remove if 函数 并且我有一个谓词 我想使用这个谓词来收集统计数据 这是谓词的代码 class TestPredicate privat
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已

随机推荐

  • Django:使用管理上下文扩展基于类的视图的上下文

    我有一个基于类的视图 它只显示配置列表 使用以下代码将此视图添加到 Django 管理站点 admin register ZbxHostConf class ZbxHostConfListViewAdmin admin ModelAdmin
  • MS Graph API:身份验证令牌无效

    我正在尝试使用 Microsoft Graph API 查询 Outlook O365 邮箱中的邮件 我注册我的应用程序 https graph microsoft io en us docs authorization app only在
  • 从 Intellisense 中隐藏(抽象)类

    我有几个抽象类是类库 想从 Intellisense 中隐藏 该怎么做 在类声明之前使用属性 Browsable false EditorBrowsable EditorBrowsableState Never edit 如果类代码在您的解
  • array[::-1] 的时间复杂度和空间复杂度是多少

    当在Python中反转列表时 我通常使用数组 1 进行反转 并且我知道更常见的方法可能是从列表的两侧进行交换 但我不确定这两种解决方案之间的区别 例如时间复杂度和空间复杂度 这两种方法的代码如下 def reverse array arra
  • 如何强制Delphi编译器显示所有提示和警告

    有没有办法强制Delphi编译器一直显示所有提示和警告 这是我目前在 Delphi 6 中看到的行为 从源代码管理中查看我的应用程序的最新副本 在Delphi中打开项目并编译 显示项目的所有提示和警告 更改一个单位 Compile 仅显示更
  • 图像交换按钮(Jquery)

    我有一个按钮 当单击它时 我想用图像替换该按钮 我怎样才能在 JQuery 中做到这一点 是否也可以替换图像的背景 按钮本身位于一个大 div 内 我不想在按钮周围添加另一个 div 因为它会弄乱以前的布局 如果你想替换按钮元素 the b
  • 在java中验证时间戳格式yyyy-MM-dd'T'HH:mm:ssZ?

    我正在尝试做一个时间戳验证使用乔达时间 1 6 2 请指出我的错误并帮助我 Code String timestamp 2014 09 23T23 03 11Z String datePattern yyyy MM dd T HH mm s
  • CreateProcess error=2 从 Ant 运行 javadoc

    谁能告诉我为什么会收到此错误消息 Buildfile C Users Tara workspace Testing build xml doc delete Deleting directory C Users Tara workspace
  • OS X 蓝牙编程

    我想创建 OS X 应用程序以通过蓝牙与 Lego Mindstorms NXT 2 0 配合使用 我尝试用 Objective C 和 Python 来实现 但是两者都存在一些问题 关于目标 C 我只发现this https develo
  • 如何在 R 中将多个文件 read.table() 放入单个表中?

    我有名为
  • nodejs mysql 错误:连接丢失 服务器关闭了连接

    当我使用node mysql时 在12 00到2 00之间出现错误 TCP连接被服务器关闭 这是完整的消息 Error Connection lost The server closed the connection at Protocol
  • 如何始终显示滚动条

    滚动视图中的滚动条仅在我开始滚动时才可见 我怎样才能始终显示它 目前最好的方法是使用android fadeScrollbars false 在 xml 中相当于ScrollView setScrollbarFadingEnabled fa
  • 如何获取 woocommerce 的所有产品?

    我已经建立了 Woo Commerce 其中有 1000 多种产品 使用 Woocommerce Rest api php 库我试图获取所有产品 但它给了我 10 个产品 如果我使用filter limit 它会给我大约 400 个产品 但
  • 验证失败/正常时禁用/启用 h:commandButton

    我有一个带有验证器和命令按钮的文本框 当文本框验证失败时 我想禁用命令按钮 否则应该启用它 我不想使用任何代码隐藏 因此它应该在 bean 中没有任何辅助属性的情况下工作 那么我如何根据验证器状态告诉命令按钮被禁用 启用
  • jQuery Mousemove:5px 变化时触发

    出于多种技术原因 我在 jQuery 上实现自己的 可拖动 功能 而不是使用 jQuery UI 并且我使用 mousedown 和 mousemove 事件来侦听尝试拖动元素的用户 到目前为止效果很好 我只是想每移动 5 像素 而不是逐像
  • 制作带有源子目录的文件

    我最新的项目是用 C 编写的 我使用的是 GNU Make 项目目录布局如下 project src subdir1 subdir2 containing tests doc bin 我希望能够致电make在顶级目录中 即项目目录中需要一个
  • 在 Java 中使用 lambda 表达式有运行时优势吗? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在阅读一些关于 Java 8 中提供的 lambda 表达式的博客和答案 我无法弄清楚单位 lambda 表达式是否有任何运行时优势 我
  • Jupyter笔记本,如何同时运行多个单元?

    我定义了一个运行 bash 脚本的 python 函数 假设该函数是 calc x y z 如果我在 python 中使用一些变量运行这个函数 gt gt gt calc 1 2 3 它生成一个 C 代码 使用变量来模拟某些东西 x 1 y
  • 使用 awk 读取串行输入,插入日期

    我正在尝试重新格式化串行输入 该输入由两个用逗号分隔的整数组成 从 Arduino 发送 1 2 3 4 0 0 0 1 我想在每行后面附加日期 用制表符分隔所有内容 到目前为止 这是我的代码 cat dev cu usbmodem3d11
  • 3d 表面的凸包算法 z = f(x, y)

    我有一个以一组三元组 x i y i z i 形式给出的 3D 表面 其中 x i 和 y i 大致位于网格上 并且每个 x i y i 都有一个关联的 z i 值 典型的网格是20x20 我需要在给定的公差范围内找到哪些点属于曲面的凸包