查找包含任意坐标列表的 voronoi 区域

2024-03-25

我正在使用一种算法,对于每次迭代,都需要找到一组任意坐标属于 Voronoi 图的哪个区域。即每个坐标位于哪个区域内。 (我们可以假设所有坐标都属于一个区域,如果这有什么区别的话。)

我还没有任何可以在 Python 中运行的代码,但伪代码如下所示:

## we are in two dimensions and we have 0<x<1, 0<y<1.

for i in xrange(1000):
  XY = get_random_points_in_domain()
  XY_candidates = get_random_points_in_domain()
  vor = Voronoi(XY) # for instance scipy.spatial.Voronoi
  regions = get_regions_of_candidates(vor,XY_candidates) # this is the function i need

  ## use regions for something

我知道 scipy.Delaunay 有一个名为 find_simplex 的函数,它几乎可以完成我想要的 Delaunay 三角剖分中的单纯形,但我需要 Voronoi 图,并且构建两者是我希望避免的事情。

问题:

1.是否有某种图书馆可以让我轻松地做到这一点?

2. 如果没有,是否有一个好的算法可以让我有效地做到这一点?

Update

杰米的解决方案正是我想要的。我有点尴尬,虽然我自己没有想到这一点......


您不需要为此实际计算 Voronoi 区域。根据定义,集合中某个点周围的 Voronoi 区域由距离该点比集合中任何其他点更近的所有点组成。所以你只需要计算距离并找到最近的邻居。使用 scipy 的cKDTree你可以这样做:

import numpy as np
from scipy.spatial import cKDTree

n_voronoi, n_test = 100, 1000

voronoi_points = np.random.rand(n_voronoi, 2)
test_points = np.random.rand(n_test, 2)

voronoi_kdtree = cKDTree(voronoi_points)

test_point_dist, test_point_regions = voronoi_kdtree.query(test_points, k=1)

test_point_regions现在保存一个形状数组(n_test, 1)与点的索引voronoi_points最接近你的每一个test_points.

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

查找包含任意坐标列表的 voronoi 区域 的相关文章

随机推荐

  • Magento:如何在管理面板中使用 JS 显示标准错误/成功消息?

    我可以从服务器端将错误 成功消息添加到 Magento 管理面板 例如 Mage getSingleton core session gt addError 但是如何使用 JS 在客户端显示相同的消息呢 我的意思是标准方式 当然我可以创建相
  • React 路由器和任意查询参数:页面加载时无意刷新?

    过去几周我一直在使用 React Router 取得了巨大成功 但我刚刚遇到了一个我似乎无法找到解决方案的问题 每当将任意查询参数附加到 URL 时 在我们的例子中 用于从电子邮件进行 URL 跟踪 您登陆的页面就会加载 然后自动刷新 而不
  • 开发支持 Web 应用程序的移动应用程序的方法

    我的公司构建了自己的项目管理 Web 应用程序 这就像打了类固醇的大本营 该应用程序的核心功能是 创建任务列表 将任务分配给团队成员 跟踪任务项目的工时 我希望构建移动应用程序作为网络应用程序的扩展 移动应用程序必须 重现上述功能 连接到与
  • Visual Studio 2008 崩溃日志在哪里? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我安装了带有 SP1 的 Visual Studio 2008 当我在 Moq 框架中使用 lambda 表达式时 它崩溃了 起初我以为是Reshar
  • 无法通过 SSH 连接到曾经正常工作的 GCP 虚拟机实例

    我昨天创建了几个 GCP 虚拟机实例 所有实例都使用相同的配置 但运行不同的任务 我可以通过 GCP 控制台通过 SSH 连接到这些实例 它们都工作正常 今天我想检查任务是否已完成 但我无法再通过浏览器 SSH 到任何这些实例 错误消息如下
  • Angularjs ng-attr-title 在 Chrome 浏览器中不起作用

    我正在使用 ng table 在表网格视图中显示所有值 我想在用户将鼠标悬停在单元格上时显示一些消息 所以我使用 ng attr title 作为工具提示 它在 firfox 中工作 但在 google chrome 网络浏览器中不起作用
  • 将 WPF 控件居中

    我有一个窗口 我可以在其中添加新的UserControl到 使用图像 我只想将控件置于屏幕中间 垂直和水平 我只能让垂直的工作 我要交换内容DockPanel来自我的 CodeBehind 并希望在开始制作幻灯片 UI 之前显示此启动屏幕
  • 选择添加按钮时需要显示额外的文本输入,还需要删除字段

    我有一个表格 要求用户输入他们的项目结果 他们需要输入至少一个结果 并且每个结果都需要至少 2 个与其相关的度量 因此 我需要能够向用户呈现初始结果字段 以及与其关联的两个度量字段 并能够向其相关结果添加更多度量 I sketched up
  • MS Access VBA 代码编辑器字符编码和复制/粘贴

    Access 的 VBA 编辑器中实际使用的编码是什么 我已经寻找具体答案很长一段时间了 但没有运气 我以为它是UTF 8 但我不太确定 我的主要问题是 在 VBA 中编写查询时 有时需要在 Access 的查询编辑器中测试它 然而 当复制
  • 将本地 jar 文件声明为库项目的传递依赖项

    我有一个 Android 应用程序 App1 它依赖于一个库项目 Lib1 该库项目有几个远程依赖项 例如 guava android 支持库等 和两个本地依赖项 它们是存储在 Lib1 libs 中的 JAR 文件 Lib1 的 buil
  • Android - CardView 背景始终为灰色

    我正在尝试以编程方式更改 CardView 颜色 这是我的卡片视图
  • Silverlight - 绑定使用 https 的图像

    我存储了一个图像 可以使用 http 和 https 在浏览器中查看该图像 然而 当我将这些 url 绑定到我的图像源时 我只能看到使用 http 的 URL silverlight 有什么办法支持 https 图像吗 似乎是Silverl
  • FSharp.Data Csv.Load() 失败,仅支持 Web 位置

    我有以下代码 r packages FSharp Data 2 0 9 lib portable net40 sl5 wp8 win8 FSharp Data dll open FSharp Data let trainData CsvFi
  • Go 之旅练习#10:爬虫

    我正在经历 Go Tour 我觉得除了并发之外 我对这门语言有了很好的理解 slide 10 https tour golang org concurrency 10是一个要求读者并行化网络爬虫的练习 并使其不覆盖重复 但我还没有做到这一点
  • Keras:如何将学习率输出到张量板上

    我添加了一个回调来衰减学习率 keras callbacks ReduceLROnPlateau monitor val loss factor 0 5 patience 100 verbose 0 mode auto epsilon 0
  • Sonata 管理仪表板:配置每个实体的操作

    我正在使用SonataAdminBundle作为 Symfony2 v2 0 x 支持的网站管理界面的基础 默认情况下 添加到 SonataAdmin 仪表板的实体具有以下操作 add list 这对于大多数实体来说效果很好 但是该网站有一
  • 如何禁用文本区域的可调整大小属性?

    我想禁用 a 的可调整大小属性textarea 目前 我可以调整大小textarea通过单击右下角textarea并拖动鼠标 我怎样才能禁用这个功能 以下 CSS 规则禁用调整大小行为textarea http www w3 org wik
  • elm:读取文件内容

    有没有办法读取文件elm 我想要一个xml设置文件 我将在其中保留不同的设置并用 elm 读取它 我已经看过这个parser https github com toburger elm xml parser 但它期望xml内容 而不是路径
  • 解决方案构建顺序的保存位置

    我有一个包含多个项目 csproj 和 btproj 的解决方案 我实际上正在运行 BizTalk 2013 R2 因此我在 Visual Studio 2013 下进行开发 我有许多 powershell 脚本来部署我的应用程序 我必须增
  • 查找包含任意坐标列表的 voronoi 区域

    我正在使用一种算法 对于每次迭代 都需要找到一组任意坐标属于 Voronoi 图的哪个区域 即每个坐标位于哪个区域内 我们可以假设所有坐标都属于一个区域 如果这有什么区别的话 我还没有任何可以在 Python 中运行的代码 但伪代码如下所示