如何制作 voronoi 图的网格变化?

How can I make this grid variation of the voronoi diagram?

我有一个让我想起 Voronoi 的问题,但我希望我的变体能让我避免使用 Voronoi 算法,并更快地写一些东西。

这是我在 Paint 中制作的一张可怕的图像来说明我的问题:

假设我有一个地图区域。每个点代表一家商店。每个方块代表一个街区。 voronoi 图显示了离每家商店最近的区域。

如果其中一个区域占据了一个广场,那么整个广场就属于那家商店。

是否可以不用计算中间维诺图就可以确定哪些方格属于哪家商店?好像,因为这就像一个非常粗略的 voronoi 图近似值,所以应该有一个超快速的生成它的捷径。

也许我理解错了,你就不能只找到离每个正方形质心最近的顶点吗?

@user2615897 指出这通常是不正确的(见评论)。 None-the-less,我认为这将是一个 良好的近似值 对于一个看起来像你的例子的网格(具体来说:大致等面积单元格,间距与正方形大小相当)。

我的直觉是,如果不明确构建图表,任何方法都将只是一种近似...但我不确定。

配置的这个(片段)说明了这一点: 红色顶点最接近中央正方形的中心,而绿色顶点拥有最多的面积。