【发布时间】:2015-01-19 22:28:54
【问题描述】:
我正在设计一个程序化城市生成器,生成过程的第一步是创建城市街道。这些街道以直线延伸到一个点,然后它们可以分支、旋转或沿同一方向继续。如果一条街道会撞到另一条街道,它可以停止增长或连接到最近的路口。
我一直认为交叉点是顶点,街道是边。由此,我应该能够将网络分解为尽可能小的多边形的集合——即,一个被街道包围的空间。
死胡同可以侵入多边形,但如果街道两侧有 2 个路口,我希望将其作为多边形的边缘。在处理之前,我可以轻松地将“死角”(只有一条边连接到它们的顶点)的街道从考虑中移除,因此它们不是问题。
那么给定顶点和边的集合,有什么好的方法可以将它们分解成尽可能小的多边形?多边形是凸面还是凹面都没有关系,因为它主要用作加载城市的一部分并将一个区域标记为加载或卸载,并选择性地选择城市的一部分进行模拟。
【问题讨论】:
-
这里不允许问这个问题。
-
尝试在programmers.stackexchange.com或reddit.com/r/proceduralgeneration上询问
标签: c# polygons procedural-generation