我正在使用Java创建一个小游戏,其中有一张图片会被旋转。
如下面的两张图片所示,在游戏中有一艘巨大的船缓慢旋转,但当它到达某个点时,由于自己的小BufferedImage而被切断。
这是我的渲染代码:
如下面的两张图片所示,在游戏中有一艘巨大的船缓慢旋转,但当它到达某个点时,由于自己的小BufferedImage而被切断。
这是我的渲染代码:
public void drawImageRotated(BufferedImage img, double x, double y, double scale, double angle) {
x -= xScroll;
y -= yScroll;
BufferedImage image = new BufferedImage((int)(img.getWidth() * 1.5D), (int)(img.getHeight() * 1.5D), 2);
Graphics2D g = (Graphics2D)image.getGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.rotate(Math.toRadians(angle), image.getWidth() / 2, image.getHeight() / 2);
g.drawImage(img, image.getWidth() / 2 - img.getWidth() / 2, image.getHeight() / 2 - image.getHeight() / 2, null);
g2d.drawImage(image, (int)(x-image.getWidth()*scale/2), (int)(y-image.getHeight()*scale/2), (int)(image.getWidth()*scale), (int)(image.getHeight()*scale), null);
g.dispose();
}
回到正题,我该如何计算旋转后图像的最大 x 和 y 大小,以便可以根据缓冲图像的大小进行补偿?