问题标签 [voronoi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1337 浏览

language-agnostic - 领土地图生成

是否有一种微不足道的或至少适度直接的方式来生成领土地图(例如风险)?

我过去看过,我能找到的最好的是对 Voronoi 图的模糊参考。Voronoi 图的示例如下:

这里.

这些有希望,但我想我还没有看到任何直接的渲染方式,更不用说将它们保存在某种形式的数据结构中以将每个区域视为一个对象。

另一种有希望的方法是洪水填充,但我再次不确定从这种方法开始的最佳方法。

任何建议将不胜感激。

0 投票
4 回答
26837 浏览

geometry - 鉴于其点集及其 Delaunay 三角剖分,我如何推导出 Voronoi 图?

我正在开发一个游戏,我创建了一张随机的省份地图(风险或外交)。为了创建该地图,我首先生成一系列半随机点,然后计算这些点的 Delaunay 三角剖分。

完成后,我现在正在寻找创建点的 Voronoi 图,作为省边界的起点。我此时的数据(不是双关语)由原始的一系列点和 Delaunay 三角形的集合组成。

我在网上看到了很多方法来做到这一点,但其中大多数都与 Delaunay 的派生方式有关。我很想找到一些不需要集成到 Delaunay,但可以仅根据数据工作的东西。如果做不到这一点,我正在寻找相对几何新手可以理解的东西,而不是最佳速度。谢谢!

0 投票
11 回答
15886 浏览

algorithm - 在球体上计算 Voronoi 图的算法?

我正在寻找一种简单的(如果存在)算法来找到球体表面上一组点的 Voronoi 图。源代码会很棒。我是一个德尔福人(是的,我知道......),但我也吃 C 代码。

0 投票
7 回答
5238 浏览

statistics - 如何制作 voronoi 树形图?

我想为统计数据制作 voronoi 树图,例如 替代文字 新闻摄影

你知道我如何在 Perl、PHP、Ruby 或 Python 中做到这一点吗?

0 投票
14 回答
91221 浏览

algorithm - 最容易实现的 Voronoi 图算法?

实现 Voronoi 图的简单算法有哪些?

我找不到任何特别以伪形式存在的算法。请分享一些Voronoi图算法、教程等的链接。

0 投票
6 回答
10025 浏览

algorithm - 对 Voronoi 图算法感到困惑(财富的扫描线)

我正在实施 Voronoi 图以直观地找出地图中最近的位置。现在我只想在画布中使用整数坐标 (x,y) 来做到这一点。

问题是 - 我对这个算法真的很困惑。我读了计算几何书,关于财富算法的更多理论。我现在真的很困惑。当我要进行编码时,这对我来说似乎很复杂。

请建议我非常简单地实现 voronoi 图(具有给定坐标)。请建议我使用简单的 java 或 python 或方案代码,最好不要使用哈希、多线程、Delaunay Traingulation、花哨的颜色等。

在没有多线程或哈希映射的情况下,是否可以使用 Fortune 算法实现 Voronoi 图?

0 投票
1 回答
11552 浏览

algorithm - 更改 FloodFill-Algorithm 以获得两个数据点的 Voronoi Territory?

我得到了一个有两点的网格。我想计算每个点可以在另一个之前达到的平方数量。目前我实现了一个 FloodFill-Algoritm,它可以计算一个点可以达到的正方形数量。

如何更改该算法以同时或至少一个接一个地对两个点进行“洪水”?

0 投票
1 回答
3563 浏览

java - 获得由 Voronoi 线段形成的凸多边形集的最快方法

我使用财富算法找到一组点的 Voronoi 图。我得到的是一个线段列表,但我需要知道哪些线段形成封闭的多边形,并将它们放在一个由它们周围的原始点散列的对象中。

找到这些的最快方法可能是什么?我应该从算法中保存一些关键信息吗?如果是这样呢?

这是我在 Java 中从 C++ 实现移植而来的财富算法实现here

(我知道它不会编译,需要初始化数据结构,并且它缺少导入)

我想要的是这样的:

我能想到的最直接的蛮力方法是创建图中点(边的端点)的无向图,每个点都有一个条目,每个边都有一个连接点(没有重复)然后去查找该图中的所有循环,然后对于共享 3 个或更多点的每组循环,丢弃除最短循环之外的所有循环。但是,这太慢了。

0 投票
2 回答
864 浏览

math - 使用自定义(大圆)距离的 Voronoi 图

我想在几对纬度/经度上创建一个 Voronoi 图,但想使用它们之间的大圆距离,而不是(不准确的)毕达哥拉斯距离。

我可以让 qhull/qvoronoi 或其他一些 Linux 程序这样做吗?

我考虑将点映射到 3D,让 qvoronoi 创建一个 3D Voronoi 图[1],并将结果与​​单位球体相交,但我不确定这是否容易。

[1] 我意识到两个纬度/经度之间的 3D 距离(“通过地球”路径)与大圆距离不同,但很容易证明这种变换保留了相对距离,这很重要对于 Voronoi 图。

0 投票
2 回答
1917 浏览

geometry - 如何从他们的 Voronoi 图中提取一组点的凸包

我需要一种算法来计算 O(n) 中点的 Voronoi 图的一组点的凸包。Voronoi 图包含在边界框中,并存储为双向连接的边列表。输入是一个半边,其原点在边界框上。

我知道两个点在凸包上是相邻的,如果它们共享一个无限长的 voronoi 边。