我正在用Java创建一个小游戏,我有一个旋转的图像。计算图像的最大尺寸?
正如你可以在下面的两张图片看,有慢慢在游戏中旋转的巨船,但是当它到达某个点它就会被切断(由于其自身的小的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的大小,所以我可以用我的缓冲图像尺寸补偿?
旋转图像将改变其大小,你需要考虑到这一变化。查看[this](http://stackoverflow.com/questions/12165977/java-image-rotation)和[this](http://stackoverflow.com/questions/4156518/rotate-an-image-in-java )例如 – MadProgrammer