可能重复:
A simple algorithm for polygon intersection计算两个四边形交点的方法?
我正在寻找如何快速计算两个任意取向四边形的交叉点的轮廓(没有预设角角或边长约束)。我是而不是只是简单地检查它们是否相交,但是希望获得组成相交区域的点。我知道一般来说多边形相交不是一个小问题,并且有可用的图书馆能够很好地工作。
但是,由于在这种特殊情况下,我只关注四个边形,我想知道是否有一个快速方法可以使用,而不需要在我的应用程序中包含整个额外的库。
到目前为止,所有我想的是:
- 运行在两个形状“多边形点”相对于每个多边形的相互
- 交叉边缘相互
通过上述两个步骤确定地获得组成交汇区域的所有点吗?有没有更好的方法来使用?
如果我能得到构成结果区域的点的正确排序,那么它也会是不错。这不是强制性的 - 如果你知道有什么聪明/快捷的方法来做这个(凸包?),我会很感激任何建议。
这是2D还是3D的问题? – Andrey
四边形是一种特殊情况(IIRC可以将它们分成两个三角形,即使是凹形),所以通用算法可能会过度。 – MSalters
请注意,结果不一定是四边形。如果输入是非凸的,则可能会得到两个未连接的四边形。如果它们是凸面的,你可能仍然会得到一个六边形。 – finnw