在JavaAWT中旋转图像
我有一个小程序运行的游戏。在那里,有一枚导弹,它应该指向上、下、左或右。一种方法是创建4个图像(每个方向一个),但这太复杂了在JavaAWT中旋转图像,java,awt,java-2d,Java,Awt,Java 2d,我有一个小程序运行的游戏。在那里,有一枚导弹,它应该指向上、下、左或右。一种方法是创建4个图像(每个方向一个),但这太复杂了 有人知道在图像加载到程序中后旋转图像的方法吗?您可以使用java awt中的小程序来旋转图像 import java.applet.Applet; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.geom.AffineTransform
有人知道在图像加载到程序中后旋转图像的方法吗?您可以使用java awt中的小程序来旋转图像
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);
}
}
代码中最复杂的部分是仿射变换对象。根据Sun的AffineTransform API,“AffineTransform类表示二维仿射变换,该变换执行从二维坐标到其他二维坐标的线性映射,从而保持直线的“直线度”和“平行度”。“如果您对该类进行一点试验(或继续阅读API),您将看到它不仅可以用于旋转,还可以用于缩放、翻转和剪切图像。好的,我将根据您的问题编辑答案。您可以在代码末尾看到g.drawImage。。。为什么getURL()在那里?我在你的代码中找不到它的任何用途。请使用StackOverflow的搜索功能。以下是几种旋转图像的方法: