来自java中的Rectangle.contains()的错误结果

问题描述 投票:-1回答:1

似乎contains()中的Rectangle方法不包含在右下角。

例如,以下代码返回“false”;

Rectangle r = new Rectangle(0,0,100,100);
System.out.println(r.contains(100, 100));
java awt rectangles java-2d
1个回答
2
投票

引自Rectangle API(Java 8):

public Rectangle(int x,int y,int width,int height) 构造一个新的Rectangle,其左上角指定为(x,y),其宽度和高度由同名的参数指定。

使用宽度和高度与(0,0)的起始Point意味着Rectangle具有从(0,0)到(99,99)的点 - 宽度为100像素,高度为100像素,基于给定的起始像素( 0,0)总是包含在Rectangle中。

这意味着(100,100)确实不会包含在构造的Rectangle中。根据上面的逻辑,(100,100)将包含在下面(使用online java compiler验证):

Rectangle r = new Rectangle(1,1,100,100);

参考文献:

© www.soinside.com 2019 - 2024. All rights reserved.