当我画像下面的Java:矩形宽度和高度
drawRect(0,0,39,39);
一个矩形像素40两者的宽度和高度?当我在矩形上绘制一个我知道是40x40像素的图像并将该矩形放在它上面时,它完全适合。所以我有点困惑,因为java网站说第三和第四个变量指的是宽度和高度,但如果是这种情况,它并不真正指向真正的宽度,只是实际的宽度-1。我觉得我错过了一些东西或者犯了一个错误。 S
当我画像下面的Java:矩形宽度和高度
drawRect(0,0,39,39);
一个矩形像素40两者的宽度和高度?当我在矩形上绘制一个我知道是40x40像素的图像并将该矩形放在它上面时,它完全适合。所以我有点困惑,因为java网站说第三和第四个变量指的是宽度和高度,但如果是这种情况,它并不真正指向真正的宽度,只是实际的宽度-1。我觉得我错过了一些东西或者犯了一个错误。 S
它将是40x40。
http://developer.android.com/reference/android/graphics/Rect.html#Rect(int,INT,INT,INT)
public Rect (int left, int top, int right, int bottom)
Added in API level 1
Create a new rectangle with the specified coordinates. Note: no range checking is performed, so the caller must ensure that left <= right and top <= bottom.
Parameters
left The X coordinate of the left side of the rectangle
top The Y coordinate of the top of the rectangle
right The X coordinate of the right side of the rectangle
bottom The Y coordinate of the bottom of the rectangle
最后2个参数指示右侧和底部,所以因此,如果您从0开始,到39这40个像素。
不好意思问一下关于drawRect以及如何与Rectangle类相关的问题。我正在做碰撞,需要绘制一个矩形,但是我也需要创建一个矩形。所以我可以说drawRect(0,0,39,39),并为我创建了一个40x40的矩形。但是,我想知道当我创建矩形实例。它应该是矩形(0,0,39,39)或矩形(0,0,40,40)以匹配所绘制的矩形。我猜这是现在的第二个。谢谢 – user3630439
这是在这里记录的第二个:http://docs.oracle.com/javase/7/docs/api/java/awt/Rectangle.html#Rectangle%28int,%20int,%20int,%20int%29。公平地说,为什么Java开发人员会为一个方法选择一种格式,而为Rectangle类的构造函数选择不同的参数格式,这是令人困惑的。 – ajacian81
非常感谢。我很感激帮助。 – user3630439
你的问题是混淆两个类。
Java的java.awt.Rectangle
类有一个带参数的构造函数为你描述:Rectangle(int x, int y, int width, int height)
。
Android android.graphics.Rect
类有一个构造函数,它具有不同的参数:Rect (int left, int top, int right, int bottom)
。
Rect
没有记录在Java网站上,因为它不是Java的一部分。如果您已经在Java网站上找到了文档,则该文档适用于Rectangle
类......这是不同的。
如果错误提供Rect
论据,X,Y,宽度,高度,你很可能会引火烧身。为Rect
构造的Javadoc说:
“注意:不进行范围检查,所以调用者必须确保左< =右侧和顶部< =底部。”
如果你不那么期待奇怪的事情发生。
(注意Rect(0,0,39,39)
违反记录的约束...)
抱歉意味着询问drawRect以及它如何与Rectangle类相关。我正在做碰撞,需要绘制一个矩形,但是我也需要创建一个矩形。所以我可以说drawRect(0,0,39,39),并为我创建了一个40x40的矩形。但是,我想知道当我创建矩形实例。它应该是矩形(0,0,39,39)或矩形(0,0,40,40)以匹配所绘制的矩形。我猜这是现在的第二个。谢谢 – user3630439
停止猜测。这是一种糟糕的编程技术。阅读各自的javadoc,并假设他们所说的是正确的。这将回答你的问题。 –
感谢您的回复。 – user3630439
请加入更多内容和信息。这是什么'Rect'功能?它来自哪里,它有什么作用? – ApproachingDarknessFish
想着他的意思就是android – james
如果我要做drawRect(0,0,39,39)。这是否与矩形(0,0,39,39)相同或是否为矩形(0,0,40,40)。我认为这是在让我感到困惑的两者之间跳跃。谢谢你们的帮助。对不起,没有更明确。 – user3630439