【发布时间】:2019-12-21 14:24:00
【问题描述】:
对于Java中的个人项目,我必须确定线段是否与矩形内部相交。我使用了 java.awt.geom 中的 Rectangle2D.Double,但显然“intersectsLine”方法应该完全符合我的要求,但没有给出正确的结果。
这里是示例代码:
import java.awt.geom.Rectangle2D;
public class test {
public static void main(String[] args) {
Rectangle2D.Double r = new Rectangle2D.Double(2, 7, 5, 1);
System.out.println(r.intersectsLine(4, 8, 1, 8));
}
}
这令人惊讶地打印出“真实”。我无法理解这种行为。我检查了文档,矩形构造函数需要左上角的坐标,然后是宽度和高度。那么矩形“r”应该位于线(4,8)-(1,8)的下方,所以它们不能相交。
这是我的错误还是错误?
【问题讨论】:
-
说矩形的角是
(2,7)、(7,7)、(7,8)和(2,8)是否正确,或者我在这里遗漏了什么? -
Y轴是向下->向上还是向上->向下?这是非常重要的。换种方式问:你的坐标系的原点在哪里,在屏幕的底部还是右上角?高度是向上延伸还是向下延伸?如果它向上延伸,你的线是相交的(它正好位于上边界上)
-
我的意思当然是“左上角”facepalm
标签: java computational-geometry rectangles