在java awt中旋转图像

时间:2014-05-14 13:29:24

标签: java awt java-2d

我有一个在小程序中运行的游戏。在那里,有一个导弹,应该指向上,下,左或右。一种方法是创建4个图像(每个方向一个),但这太复杂了。

有人知道旋转图像的方法,一旦加载到程序中吗?

1 个答案:

答案 0 :(得分:0)

您可以使用java awt中的applet跟随此示例来旋转图像。

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.net.URL;

public class RotateImage extends Applet {

private Image image;

AffineTransform identity = new AffineTransform();

 private URL getURL(String filename) {
 URL url = null;
 try {
 url = this.getClass().getResource(filename);
 }
catch(Exception e){}
return url;
}

public void init() {
image = getImage(getCodeBase(), "image.jpg");
}

public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
AffineTransform trans = new AffineTransform();
trans.setTransform(identity);
trans.rotate( Math.toRadians(45) );
g2d.drawImage(image, trans, this);
}
}

代码中最复杂的部分是AffineTransform对象。根据Sun的AffineTransform API,“AffineTransform类表示2D仿射变换,它执行从2D坐标到其他2D坐标的线性映射,保留线条的”直线度“和”平行度“。如果你对这个类进行一些实验(或者只是继续阅读API),你会发现它不仅可以用于旋转,还可以用于缩放,翻转和剪切图像。

相关问题