Java Rectangle2D.contains()不工作?

Java Rectangle2D.contains()不工作?,java,awt,Java,Awt,这给了我错误的答案。为什么?该点应位于矩形的内部。也许我累了,这可能很琐碎,但我不明白 new Rectangle2D.Double(0, 2, 4, 2).contains(1, 1) 表示将矩形放置在点0,2处,并从点0,2处延伸。所以它不包括1,1,因为在y处它从2开始。您指定: Rectangle2D.Double(double x, double y, double w, double h) 因此,矩形将从0,2开始并延伸到4,4。1,1位于矩形之外,因为contains方法不是相

这给了我错误的答案。为什么?该点应位于矩形的内部。也许我累了,这可能很琐碎,但我不明白

new Rectangle2D.Double(0, 2, 4, 2).contains(1, 1)
表示将矩形放置在点0,2处,并从点0,2处延伸。所以它不包括1,1,因为在y处它从2开始。

您指定:

Rectangle2D.Double(double x, double y, double w, double h)
因此,矩形将从0,2开始并延伸到4,4。1,1位于矩形之外,因为contains方法不是相对于矩形的起始位置,而是基于绝对坐标空间


也许应该明确一点,contains函数用于绝对坐标空间,而不是相对坐标空间为什么Javadoc说x和y定义了左上角?我可以理解askers的混淆,因为你描述类的方式在我看来就像是左下角。@911IDBUSH实际上我的图像是通用的,从几何角度看,点在矩形之外。但是你是对的,为了清晰起见,我改变了图像以反映实际的坐标系。è@反斜杠在你的回答中注意到,contains函数不是相对于矩形的起始位置,而是相对于绝对坐标空间,因为我搜索它时,它不是用javadocs编写的。这需要时间来实现,但现在我记得,java.awt.geom使用屏幕左上角作为参考点。如果它是中心的话,它会更有意义,所以你有一个笛卡尔坐标系。@dámBozzay实际上,坐标系与此无关。坐标为1,1的点始终位于从0,2开始到4,4结束的矩形外,无论您选择什么坐标系。
new Rectangle2D.Double(
    0, //x
    2, //y
    4, //width
    2  //height
);