在二维空间中给出两个凸多边形,你将如何构建线段,这些线段在线上的任何一点与任何凸多边形的最近点等距?
我正在寻找凸多边形而不是点的Voronoi图的实现,但我不确定如何开始只计算两个多边形的线。所以我想我会一步一步地从这里开始。
编辑为了让问题更加清晰,我想将平面(或其子集)平分。
假设我们左边是多边形A而右边是多边形B.将有一些二分线将平面划分为左侧的点和右侧的点。线上的每个点与任一多边形的距离相等。线的每个点都更接近多边形A而不是多边形B.线的每个点都最接近多边形B.
这是我写的一个Matlab脚本生成的图像,它强制逼近:
我认为,问题并不像检查两个多边形“之间”的空间那么简单,因为线必须延伸到两个形状之间的区域之外。理想情况下,我想找到一个可以推广到两种以上形状的解决方案,对我而言,这似乎使问题更加复杂化。这是一个(显然非常粗略)近似的外观:
答案 0 :(得分:1)
好吧,我一步一步地看着多边形中最近的点。假设 A 中的 a 是 B 和 b 的最近点 B 中的是 A 的最近点。您知道 AB 的中间点位于所需的细分中。
a 的可能性是什么?它可以是 A 的顶点,也可以是一侧的点。这同样适用于 b 。 “等距段”会发生什么?如何在每种情况下构建它们?
由于这些段与多边形的边等距,因此它们必须是包含相应边的线的line that bissects the angle的一部分。
答案 1 :(得分:1)
我是否正确理解你,但假设你想要有效地将两个凸多边形之间的空间一分为二的线?如果是,那么......
平分线=连接P1.vc&线的直线。 P2.vc通过mp