我正在用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