如何有效地测试一个轴对齐的矩形 R 是否与一个漂亮的四边形 Q 相交?
- Nice 的意思是:Q 是凸的(不是 V 形)且非自相交的(不是领结,不是退化的)。
- 只是二维。
- 只是是/否。我不需要实际的交叉区域。
- 编辑: Q 和 R 可以打开或关闭,无论方便。
显然,对于 Q 的每个边,可以测试它是否与 R 相交。这将问题减少到 如何测试线段是否与二维中的轴对齐矩形相交?.
但是,就像 Liang-Barsky 利用 R 的轴对齐比 Cohen-Sutherland 更快一样,Q 的属性可能被利用来获得比多次运行 Liang-Barsky 更快的东西。
因此,多边形-矩形相交算法 Sutherland-Hodgman、Vatti 和 Greiner-Hormann,所有这些算法都让 Q 为非凸的,不太可能是最优的。
矩形-矩形相交的区域看起来很有希望,即使它没有利用 R 的轴对齐性。