Java Canvas - Rectangle2D 移动时缩放
Java Canvas - Rectangle2D Scales when Moving
我正在 Canvas 上绘制一系列矩形。矩形应该以一定角度移动。出于某种原因,当它们移动时,它们会放大:
xPos += xSpeed;
yPos += ySpeed;
updateBounds(xPos, yPos, width, height);
我的 UpdateBounds 方法:
public void updateBounds(double x, double y, double w, double h) {
bounds.setRect(x, y, w, h);
}
Bounds 是一个 Rectangle2D 对象。
还有我的作图方法:
g.fillRect((int) bounds.getX(), (int) bounds.getY(),
(int) bounds.getMaxX(), (int) bounds.getMaxY());
为什么我会出现这种行为?
Graphics.fillRect() 接受宽度和高度参数,而不是要绘制的矩形的最大 x 和 y 位置。
fillRect
的第三个和第四个参数应该是Rectangle2D的getWidth() and getHeight().
我正在 Canvas 上绘制一系列矩形。矩形应该以一定角度移动。出于某种原因,当它们移动时,它们会放大:
xPos += xSpeed;
yPos += ySpeed;
updateBounds(xPos, yPos, width, height);
我的 UpdateBounds 方法:
public void updateBounds(double x, double y, double w, double h) {
bounds.setRect(x, y, w, h);
}
Bounds 是一个 Rectangle2D 对象。 还有我的作图方法:
g.fillRect((int) bounds.getX(), (int) bounds.getY(),
(int) bounds.getMaxX(), (int) bounds.getMaxY());
为什么我会出现这种行为?
Graphics.fillRect() 接受宽度和高度参数,而不是要绘制的矩形的最大 x 和 y 位置。
fillRect
的第三个和第四个参数应该是Rectangle2D的getWidth() and getHeight().