javaawt矩形交集
我有两个矩形:javaawt矩形交集,java,awt,rectangles,intersect,Java,Awt,Rectangles,Intersect,我有两个矩形: Rectangle rectZR = new Rectangle(513, 163, 38, 39); //(x,y,width,height) Rectangle rectCorrect = new Rectangle(76, 206, 44, 44); 我确实: Rectangle intersect = rectZR.intersection(rectCorrect); 正如坐标所示,这两个矩形实际上并不相交,但Java仍然返回一个交点,intersect具有以下尺寸(
Rectangle rectZR = new Rectangle(513, 163, 38, 39); //(x,y,width,height)
Rectangle rectCorrect = new Rectangle(76, 206, 44, 44);
我确实:
Rectangle intersect = rectZR.intersection(rectCorrect);
正如坐标所示,这两个矩形实际上并不相交,但Java仍然返回一个交点,intersect
具有以下尺寸(x,y,width,height):
这是一个bug,还是我做错了什么?关于intersect方法状态:
计算此矩形与指定矩形的交点
矩形。返回一个新矩形,该矩形表示
两个矩形如果两个矩形不相交,则结果为
将是一个空矩形
而整个类的JavaDoc指定:
宽度或高度为负的矩形既没有位置也没有位置
沿具有负尺寸的轴标注尺寸。这样的长方形
被视为沿这些轴不存在这样的矩形也是
空关于安全壳计算和测试方法
如果它包含或相交一个点或矩形将始终返回
错。将这样一个矩形与一个点或
矩形将在生成结果时完全忽略矩形。
如果两个矩形对象组合在一起,并且每个对象都有一个负数
维度,则结果将至少有一个负维度
所以,由两个负维度的交集创建的矩形实际上意味着不存在交集。您可以使用intersects()
方法对此进行检查:
boolean intersects = rectZR.intersects(rectCorrect);
如果要知道矩形是否相交,请使用“相交”方法。无论矩形是否相交,intersection方法都返回一个矩形。如果宽度和高度都为负值,则矩形不相交。
boolean intersects = rectZR.intersects(rectCorrect);