首页 / 知识
关于几何:如何给出给定点集和Delaunay三角剖分的Voronoi图?
2023-04-16 17:03:00

How do I derive a Voronoi diagram given its point set and its Delaunay triangulation?我正在开发一款随机创建省份地图(风险或外交政策)的游戏。 要创建该地图,我首先生成一系列半随机点,然后计算这些点的Delaunay三角剖分。 完成此操作后,我现在正在寻找创建这些点的Voronoi图,以作为省边界的起点。 我目前的数据(无双关)包括原始的一系列点和Delaunay三角形的集合。 我已经在网上看到了许多方法,但是大多数方法都与Delaunay的派生方式有关。 我很想找到不需要集成到Delaunay中的东西,但可以仅基于数据工作。 失败的是,我正在寻找相对于新几何学而不是最佳速度可以理解的东西。 谢谢! Voronoi图只是Delaunay三角剖分的对偶图。
请注意,确切的代码取决于您在两个图中使用的内部表示形式。 如果不考虑最佳速度,则以下伪代码将很难生成Voronoi图:
假设您具有"点"类或结构,如果为它们分配随机颜色,则在显示输出时会看到熟悉的voronoi模式。 在尝试使用该线程作为回答我自己的类似问题的答案的源之后,我发现Fortune的算法(可能是因为它最受欢迎,因此文档最多)是最容易理解的算法。 Wikipedia上有关Fortune算法的文章保留了指向C,C#和Javascript源代码的最新链接。所有这些都是一流的,并带有精美的例子。 您的每个Delaunay三角形都包含Voronoi图的单个点。 您可以通过找到每个三角形的三个垂直平分线的交点来计算该点。 您的Voronoi图将连接这组点,每个点与它的最近三个邻居相邻。 (每个邻居共享Delaunay三角形的一侧) 您如何应对极端情况? |
最新内容
相关内容
linux给定权限命令?
linux给定权限命令?,系统,权限,文件,数字,工作,命令,目录,用户,选项,其他用户,linux文件权限1、文件的权限表示在第一个字段,以10个字符表示。2如何在运行时实例化给定数组类型的
如何在运行时实例化给定数组类型的 Java 数组?,如何在运行时实例化给定数组类型的 Java 数组?,声明,接口,方法,集合框架,How to instan关于几何:如何将2D点反向投影到3D中
关于几何:如何将2D点反向投影到3D中?,关于几何:如何将2D点反向投影到3D中?,3D,2D,空间,反向投影,How do I reverse-project 2D points in在JSTL / JSP中,给定java.util.Date
在JSTL / JSP中,给定java.util.Date,如何找到第二天?,在JSTL / JSP中,给定java.util.Date,如何找到第二天?,对象,应用程序,中有,到该,In JS关于python:如何在给定完整路径的情
关于python:如何在给定完整路径的情况下导入模块?,关于python:如何在给定完整路径的情况下导入模块?,模块,文件系统,路径,加载,How to im关于C#:如何检查给定字符串在Window
关于C#:如何检查给定字符串在Windows下是否是合法/有效的文件名?,关于C#:如何检查给定字符串在Windows下是否是合法/有效的文件名?,批处关于php:如何发现给定URL的RSS feed
关于php:如何发现给定URL的RSS feed,关于php:如何发现给定URL的RSS feed,用户,提要,我要,如果没有,How To Discover RSS Feeds for a g关于.net:如何检查给定用户是否为内
关于.net:如何检查给定用户是否为内置Administrators组的成员?,关于.net:如何检查给定用户是否为内置Administrators组的成员?,检查,编关于不可知语言:如何检查给定的字符
关于不可知语言:如何检查给定的字符串是否回文?,关于不可知语言:如何检查给定的字符串是否回文?,单位,读取,数字,检查,How to check if t关于几何:如何知道直线是否与C#中的
关于几何:如何知道直线是否与C#中的平面相交?,关于几何:如何知道直线是否与C#中的平面相交?,计算,线段,矩形,我想,How to know if a line i关于算法:如何找到与给定整数对应的
关于算法:如何找到与给定整数对应的Excel列名称?,关于算法:如何找到与给定整数对应的Excel列名称?,点这里,最佳答案,访问,column,How do关于脚本:在SQL Server中,如何为给定
关于脚本:在SQL Server中,如何为给定表生成CREATE TABLE语句?,关于脚本:在SQL Server中,如何为给定表生成CREATE TABLE语句?,精神,在这里,