简单凸和简单非凸多边形的区别

时间:2012-03-24 21:32:19

标签: polygon computational-geometry convex-polygon

给定两个简单的多边形P和Q,其中P是凸的而Q不是,如果P有n且Q有m个顶点,那么P和Q之间的差值可以多快计算$ P - Q $?

可以假设多边形是按顺时针方向排列的顶点列表。

1 个答案:

答案 0 :(得分:0)

“多快”取决于很多参数,所以我认为,首先应该从如何做到这一点开始。

首先,我假设多边形位于同一平面上。首先计算P的每条线与Q的每条线的有限交点。如果交点存在且交点位于相交线上(我的意思是在开始和结束之间,而不是在它们之间),将线分成两条并继续有限线 - 迭代地交叉线。然后,通过使用多边形计算中的点与段的中点来分类每个线段(现在我可以将它们称为段,因为它们都被分割,如果需要)..Inner,Outer或OnthePolygon ...分类后构造一个来自位于Q外部的P线和位于P内部的Q线的新多边形。这里,您的挑战将是处理相互之间的公差和线。乍一看,整体算法是这样的..

通过计算它们的范围(每个轴的最小值和最大值)来消除线条甚至多边形,可以改进该算法。除硬件,编程语言或数据处理参数外,此操作的速度取决于输入多边形及其方向。