【发布时间】:2021-06-25 22:56:41
【问题描述】:
(我不能 100% 确定标题是否是最好的描述,如有必要,我会进行编辑)
我正在尝试创建一个 voronoi 区域以在游戏中实现分屏效果。我正在按照this PDF 中列出的步骤进行操作。据我了解:
- 沿着玩家之间的中点找到一条线
- 找到每个玩家各自线的交点,以相关区域为界
- 使用这些顶点的凸包为每个玩家创建一个区域。
我找到了第 3 步的算法,我遇到的困难是如何找到每个区域的顶点。以这张图片为例:
看着玩家 C,我发现我需要找到 A/C 线、B/C 线和 D/C 线的交点。很容易。我被卡住的地方是,如果一条线碰到边缘,那么我必须找到它碰到边缘的顶点,以及该区域中的任何角(如该图像中的左下角)。但我不能只将区域的边作为线扔进去,因为超过 4 个玩家,一个区域不能保证接触到屏幕的边缘,所以这些点需要被丢弃,我不是确定如何将其纳入流程。
如果有什么不同,我会在 C#/Unity 中这样做。
【问题讨论】:
标签: c# algorithm geometry computational-geometry voronoi