0

给定 2D 空间中的两个凸多边形,您将如何构建线段,该线段在线上的任何点都与任一凸多边形的最近点等距?

我正在寻找凸多边形而不是点的 Voronoi 图的实现,但我不确定如何开始计算仅两个多边形的线。所以我想我会一步一步从这里开始。

编辑为了使问题更清楚一点,我想将平面(或其子集)一分为二。

假设我们在左边有多边形 A,在右边有多边形 B。会有一条平分线将平面分成左边的点和右边的点。线上的每个点与任一多边形的距离相等。直线左侧的每个点都比多边形 B 更接近多边形 A。直线右侧的每个点都最接近多边形 B。

这是由我编写的 Matlab 脚本生成的图像,该脚本强力逼近近似值:

近似二等分线

我相信,这个问题并不像检查两个多边形“之间”的空间那么简单,因为线必须直接延伸到两个形状之间的区域之外。理想情况下,我想找到一个可以推广到两个以上形状的解决方案,在我看来,这似乎使问题更加复杂。这是一个(显然非常粗略的)近似值:

更复杂的例子

4

2 回答 2

1

我是否正确理解您,但假设您想要有效平分 2 个凸多边形之间空间的线?如果是这样,那么...

  1. 找到连接 2 个多边形(P1 和 P2)的线
    • 通过计算平均 X 和 Y 坐标找到每个多边形中心(P1.centre & P2.centre)。
    • 在每个多边形上找到最接近对方中心的顶点(P1.vc 和 P2.vc)
  2. 假设 P1.vc & P2.vc 现在定义了连接 P1 & P2 的线
    • 找到 P1.vc 和 P2.vc 的中点 (mp)

二等分线 = 通过 mp 连接 P1.vc 和 P2.vc 的线的垂线

于 2011-11-15T19:11:57.117 回答
1

好吧,我会一步一步地查看多边形本身中最近的点。假设A中的a是离B最近的点,而B中的b是离A最近的点。您知道AB的中点在所需的段中。

a的可能性是什么?它可以是A的顶点,也可以是一侧的点。这同样适用于b。“等距段”会发生什么?如何在每种情况下构建它们?

由于这些线段与多边形的边等距,因此它们必须是平分包含相应边的线的角度的线的一部分。

于 2011-11-15T18:34:09.030 回答