有一个问题:我想计算两个几乎凸多边形的Minkowski和,其中几乎凸多边形 - 多边形,通过用弧替换一些边获得在凸多边形中有0到PI弧度。
我希望有O(n + m)解,其中n,m - 几乎凸多边形的椎体数。
对于凸形,这个问题很简单,但这个问题让我很困惑。任何人都可以帮助我任何建议/想法/解决方案。提前谢谢!
答案 0 :(得分:0)
首先,可视化Minkowski总和(help with that here)。接下来,了解弧和弦之间的区域(这是半硬部分here)。如果你的多边形是凸的,弧是凸的方向,那么它只会增加Minkowski和的面积。具体而言,它将精确地添加弧和弦所描述的区域。当且仅当您在凸方向上处理凸多边形和弧时,您可以简单地将您在多边形上使用的完全相同的弧替换为Minkowski和的相应边。请注意,Minkowski和的每个边都精确对应于一个相关多边形的边缘。
我从Minkowski链接制作了一张幻灯片的快速屏幕,以说明我的观点。请原谅我这是不准确的,但我想你会得到这个想法。紫色区域将被添加到Minkowski总和的区域。
如果您将其用于运动规划或类似操作,则可以轻松地调整传统算法以进行点遏制。
编辑: 我认为如果弧是在凹方向上,它只是区域减法而不是加法的问题。保持简洁性的重要一点是,其中一个多边形是凸的,并且在凸多边形或另一个凸包的边缘上发生弧替换。