Voronoi 图生成器
在线从一组种子点生成Voronoi 图。点击画布可添加或拖动点,在欧几里得(Euclidean)、曼哈顿(Manhattan)、切比雪夫(Chebyshev)和闵可夫斯基(Minkowski)距离度量之间切换,从精心挑选的调色板中进行选择,观看单元格动画就位,并将结果导出为SVG或PNG。包含Lloyd松弛、黄金螺旋和六边形种子预设,以获得清晰、均匀的单元格。
欧几里得 — 直线距离(经典) 离散随机 · 18 个种子点 · 极光 (青 · 紫 · 玫红)
检测到广告拦截,导致我们无法展示广告
MiniWebtool 依靠广告收入免费提供服务。如果这个工具帮到了你,欢迎开通 Premium(无广告 + 更快),或将 MiniWebtool.com 加入白名单后刷新页面。
- 或升级 Premium(无广告)
- 允许 MiniWebtool.com 显示广告,然后刷新
Voronoi 图生成器
Voronoi 图生成器计算器根据到一组种子点的接近程度将二维平面划分为不同的区域。平面中的每个点都属于距离其最近的种子,因此该图看起来像是输入点周围由单元格组成的拼接图案。该工具在您的浏览器中交互式地生成 Voronoi 图 —— 点击即可放置新种子,拖动任何种子可实时重新绘制单元格,在四种距离度量之间切换,并应用 Lloyd 松弛来使单元格大小均匀。可将结果导出为清晰的 SVG 或易于分享的 PNG。
工作原理:对于画布上的每个位置,该算法会找到最近的种子点,并用该种子的颜色绘制该位置。任意两个单元格之间的边界是连接这两个种子的线段的垂直平分线 —— 也就是说,到两点距离完全相等的点集。三个垂直平分线在每个单元格角点相交,该角点也是通过三个种子点的圆的圆心(空圆特性)。
四种距离度量 —— 可视化
每个 Voronoi 单元格的形状取决于您使用哪种距离度量。每种度量都定义了“圆”的样子 —— 而该圆的形状正是与邻居碰撞以形成单元格边界的形状。
圆 = 圆形
圆 = 菱形
圆 = 正方形
圆 = 超椭圆
这就是为什么 Manhattan 度量的单元格只有水平、垂直和 45° 的边缘,而 Chebyshev 单元格只有水平和垂直的边缘 —— 两个单元格之间的边界总是与这两个“圆”的形状相切。Euclidean 产生每个人都会联想到的经典直边 Voronoi 图。Minkowski p=3 是一种在计算设计中使用的数学上优雅的中间情况,其中 L1 的角显得过于尖锐,而 L2 的圆显得过于圆润。
是什么让这个生成器与众不同
Voronoi 图的应用场景
- 基站覆盖图 —— 手机会连接到距离其最近的基站,这正是该基站的 Voronoi 单元格。
- 约翰·斯诺 1854 年霍乱地图 —— 斯诺绘制了苏豪区(Soho)每个水泵周围的 Voronoi 单元格,并统计了每个单元格内的霍乱死亡人数,从而锁定了受污染的阔街(Broad Street)水泵。
- 程序化纹理 —— Worley 噪声(单元格噪声)被广泛应用于从皮肤着色器到《我的世界》(Minecraft)和《无人深空》(No Man's Sky)等游戏中的地形生成。
- 网格生成 —— 有限元求解器更倾向于使用近乎正三角形的网格,而 Delaunay 三角剖分(Voronoi 图的对偶)最大化了所有三角形中的最小角。
- 机器人路径规划 —— 障碍物点周围的 Voronoi 图边缘是机器人可以采取的最安全路径,因为它们最大化了与每个障碍物的距离。
- 点描画和半色调 —— 经过 Lloyd 松弛的 Voronoi 图产生视觉上令人愉悦的点分布,用于艺术点描画和打印机抖动。
- 天文学 —— 由于引力聚集,星系超星系团和宇宙网表现出类似于 Voronoi 的结构;Voronoi 镶嵌是星系密度估计中的标准工具。
- 晶体学 —— 维格纳-赛茨原胞(Wigner–Seitz 原胞,点阵中原子周围的 Voronoi 单元格)定义了固体物理学中每个晶胞的基元体积。
数学细节
单元格定义 —— 对于种子点的有限集 \(\{p_1, p_2, \dots, p_n\}\) 和任何度量 \(d(\cdot,\cdot)\),\(p_i\) 的 Voronoi 单元格为
\[ V_i = \{ x \in \mathbb{R}^2 \mid d(x, p_i) \le d(x, p_j),\ \forall j \neq i \} \]
因此每个单元格都是半空间(对于 Euclidean 度量)或半平面(对于 L1/L∞)的交集。单元格将平面划分至测度为零的边界集。
质心 Voronoi(Lloyd 不动点) —— 在 CVT 中,每个种子都与其单元格的质心重合:
\[ p_i = \frac{1}{|V_i|} \int_{V_i} x\, dA \]
Lloyd 算法交替迭代:分类像素 → 将每个种子移动到其单元格的质心 → 重复。它总是减少单元格内的平均二阶矩,因此它是收敛的。六角点阵是环面均匀密度的全局最小值 —— 这就是为什么蜂巢如此高效的原因。
如何使用本工具
- 选择预设或设置表单。 表单顶部的预设芯片是一键启用的起点 —— 经典单元格(Classic Cells)、蜂巢(Honeycomb)、城市街区(City Blocks)、国际象棋国王(Chess King)、黄金螺旋(Golden Spiral)、波纹(Ripples)、Lloyd松弛(Lloyd Relaxed)、线框(Wireframe)、点点水墨(Stipple Ink)、3个领地(3 Territories)。
- 选择距离度量。 Euclidean 用于经典外观,Manhattan 用于块状单元格,Chebyshev 用于轴对齐正方形,Minkowski p=3 用于圆角正方形的中间单元格。
- 点击生成。 图表将以单元格生长的动画形式展现,让您直观地看到每个种子如何“声称”其领地。
- 在画布上编辑。 点击空白区域可添加新的种子点。拖动任何种子点可移动它 —— 单元格会实时跟随您的手指。双击种子可将其删除。
- 使用 Lloyd 松弛进行精修。 点击 Lloyd 松弛按钮(或按 R)将每个种子推向其单元格的质心。几次迭代后即可获得视觉上均匀的镶嵌。
- 在不丢失点集的情况下切换度量。 使用画布上方的度量药丸按钮 —— 相同的种子,不同的距离规则,产生截然不同的单元格。
- 导出。 SVG 用于矢量用途,PNG 用于位图分享,或直接将 PNG 复制到剪贴板。
获得精美图表的技巧
- 若要获得视觉上均匀的单元格,请从随机(Random)或均匀(Uniform)布局开始,并进行 3-4 次 Lloyd 松弛迭代。您将看到单元格收敛为大小非常相似的六边形图案。
- 若要制作波普艺术海报,请使用集群(Cluster)布局和彩虹(Rainbow)调色板,并开启单元格边缘。这三个领地会产生极具视觉冲击力的色块层级。
- 若要获得具有科技感的图表,请在均匀(Uniform)布局上使用线框(Wireframe)样式 —— 白底黑线的干练线条看起来就像一张 CAD 图纸。
- 若要获得有机、手绘风格的图案,请使用点描(Stipple)样式 —— 该算法会将单元格边缘读取为点阵,从而产生用于科学插图的针笔水墨外观。
- 若要获得高数学清晰度,请在点数较少(8-12 个点)时切换到 Manhattan 或 Chebyshev。直角边缘使得手动追溯每个单元格为何具有该形状变得非常容易。
常见问题
什么是Voronoi 图?
Voronoi 图根据每个位置到一组种子点中哪一个最近,将平面划分为单元格。每个单元格由最靠近某一特定种子的所有位置组成。单元格边界到两个或多个种子的距离相等。
这个生成器是如何计算图表的?
它采用逐像素暴力分类:对于画布上的每个像素,它在选定的距离度量下找到最近的种子点,然后用该种子的颜色绘制该像素。其计算成本为 O(W·H·N),但它对退化输入完全鲁棒,并且能够轻而易举地支持任何距离度量。
四种距离度量分别是什么?
Euclidean 是提供经典 Voronoi 外观的直线距离。Manhattan 是轴对齐的城市街区距离。Chebyshev 是国际象棋国王步法距离。Minkowski p=3 是一种圆角正方形的中间度量。在相同的点集上切换度量会产生截然不同的单元格形状。
什么是 Lloyd 松弛?
Lloyd 算法反复将每个种子点移动到其当前 Voronoi 单元格的质心。经过几次迭代后,单元格在视觉上变得均匀,并趋向于六边形蜂巢结构 —— 这种结构被称为质心 Voronoi 镶嵌。
生成后我可以编辑这些点吗?
是的。点击画布上的任何位置即可添加新的种子点。拖动任何种子可移动它 —— 图表会持续重新绘制。双击种子可将其删除。“重置”按钮可恢复原始种子布局。
Voronoi 和Delaunay 之间有什么区别?
它们是图论中的对偶。Delaunay 三角剖分连接了其 Voronoi 单元格共享一条边的每对种子。等价地,当且仅当没有其他种子位于三角形的外接圆内部时,三个种子构成一个 Delaunay 三角形。
我可以两次制作相同的图表吗?
是的。在“随机种子”字段中输入任何字符串 —— 相同的字符串总是重现相同的初始点集。将其与其他表单字段结合使用,可以分享指向确切图表的永久链接。
我可以用导出的 SVG 或 PNG 做什么?
免费用于个人和商业用途 —— 本工具生成的图表没有水印或授权限制。可将它们用于幻灯片、博客插图、讲义、T 恤印花、生成艺术提示词,或者作为在 Illustrator 或 Inkscape 中进一步处理的底图。
引用此内容、页面或工具为:
"Voronoi 图生成器" 于 https://MiniWebtool.com/zh-cn//,来自 MiniWebtool,https://MiniWebtool.com/
由 miniwebtool 团队开发。更新时间:2026-05-20