首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生成具有特定长度和宽度的随机Voronoi图?

生成具有特定长度和宽度的随机Voronoi图?
EN

Stack Overflow用户
提问于 2020-06-22 19:14:57
回答 1查看 113关注 0票数 0

Voronoi图是一种对介质进行镶嵌的方法。

在此图中,平面上有许多点,这些点通过其平分线将介质划分为许多特定区域。任何区域都是凸的,并且都有一个外接矩形。

具有最小面积的凸形的外接矩形(我们有一个算法来想象特定边方向上的任何与边垂直的边,并找到具有最小面积的矩形)。

我想以一种创建随机凸多边形的方式放置这些点(随机均值具有不同数量的边)。

但是我想控制他们外接矩形的宽度和长度的大小。

所以我想知道有没有什么算法可以用来定位具有上述属性的点?

EN

回答 1

Stack Overflow用户

发布于 2020-06-29 15:35:47

尽管我不能完全理解您的问题,但请注意,Voronoi多边形具有强大的组合结构,因此您应该小心您对Voronoi多边形边的数量期望什么样的“随机性”。

更多细节:由于Voronoi图是一个包含V Voronoi节点、E Voronoi边和F Voronoi多边形的平面图,因此您可以

代码语言:javascript
运行
复制
V - E + F = 2

由于欧拉公式。(不过,有一些技术细节,在无限长的Voronoi边和无限的Voronoi多边形相交的地方有一个顶点。)接下来,除非四个或更多的输入点恰好位于一个圆上,否则我们通常会有三个Voronoi边在Voronoi结点相交,因此

代码语言:javascript
运行
复制
3V = 2E

这给了我们

代码语言:javascript
运行
复制
E = 3F - 6.

(同样,这里有无限Voronoi边/多边形的技术细节。如果您有三个以上的无限Voroni边/多边形,例如E',那么您应该将其更正为E = 3F - 3 - E'。)

不涉及太多细节,一个“典型的”Voronoi多边形实际上有6条边。(其对偶图是Delaunay三角剖分,因此对偶断言是Delaunay三角剖分中的顶点通常具有6条三角剖分边。)

如果你想在边的数量上更“灵活”,那么三条以上的Voronoi边需要在Voronoi节点上相交,因此需要三个以上的输入点是圆心的。请注意,这些圆以Voronoi节点为中心,在这种意义上,您甚至可以通过欧拉公式计算出您需要的此类圆的数量,给定Voronoi多边形的数量F和Voronoi边的数量E

代码语言:javascript
运行
复制
V = 2 + E - F.

我希望这有助于对Voronoi图的行为有一个感觉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62513170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档