从边界提取矩形有什么好方法? 我已经有了一些工作,但它有一些错误,有些东西处理得更先进,然后需要,所以我想重新开始。
这就是我想要的:
请注意,在右侧边界被切割成多种形状。
我的边界为float[][]
,如[nOfPoints] [xy]。
例如:
[0][0] = 10;
[0][1] = 10;
[1][0] = 100;
[1][1] = 10;
[2][0] = 100;
[2][1] = 100;
[3][0] = 10;
[3][1] = 100;
[4][0] = 10;
[4][1] = 10;
会形成一个矩形。如果任何其他格式更合适,那么我可以改变它。无论如何,我对抽象方法更感兴趣,然后详细描述它。
请帮忙。
答案 0 :(得分:0)
使用轴对齐的矩形会使一些细节更容易但不影响通用算法,因此我不会对轴对齐做出进一步的假设。
用于减去简单多边形的方法与所描述的用于查找描述here的多边形的一个小变化的交集相同。此外,该答案假设多边形是凸的(实际上是矩形),因此交叉点最多只有一个多边形。在当前情况下,可能会产生多个多边形。但是,找到多个多边形并不困难,请参阅下面的评论。
在交叉点问题中,多边形都是逆时针方向,这是一种指定(按照惯例)线的哪一边在多边形内的方法。如果我们反转要减去的矩形的方向,那么按照惯例,平面的全部是"内部"多边形,除了边缘右边的小区域。因此,减去多边形实际上是多边形的交叉点,其中要减去的多边形是从里面翻出来的!
<强>注释:强>