【发布时间】:2012-03-24 21:32:18
【问题描述】:
给定两个简单的多边形 P 和 Q,其中 P 是凸的,但 Q 不是凸的,如果 P 有 n 并且 Q 有 m 个顶点,那么计算 P 和 Q 之间的差 $P - Q$ 的速度有多快?
可以假设多边形是以顺时针方向排列的顶点列表形式给出的。
【问题讨论】:
标签: polygon computational-geometry convex-polygon
给定两个简单的多边形 P 和 Q,其中 P 是凸的,但 Q 不是凸的,如果 P 有 n 并且 Q 有 m 个顶点,那么计算 P 和 Q 之间的差 $P - Q$ 的速度有多快?
可以假设多边形是以顺时针方向排列的顶点列表形式给出的。
【问题讨论】:
标签: polygon computational-geometry convex-polygon
“多快”取决于很多参数,所以我认为,我们应该先从如何做开始。
首先,我假设多边形位于同一平面上。从计算 P 的每条线与 Q 的每条线的有限交点开始。如果交点存在并且交点位于相交线上(我的意思是在起点和终点之间,而不是在它们之上),则将线一分为二并继续有限线-线交叉点迭代。然后,通过使用多边形计算中的点和线段的中点对每个线段进行分类(现在我可以将它们称为线段,因为它们都被分割了)......内部,外部或 OnthePolygon...分类后构造一个来自位于 Q 外部的 P 线和位于 P 内部的 Q 线的新多边形。在这里,您的挑战将是处理彼此重叠的公差和线。乍一看,整体算法是这样的..
可以通过计算它们的范围(每个轴的最小值和最大值)来消除线条甚至多边形,从而改进该算法。除硬件、编程语言或数据处理参数外,此操作的速度取决于输入多边形及其方向。
【讨论】: