我尝试在java GUI中旋转我的图像。除了我,这段代码似乎对所有人都有用。我做错了什么,我应该改变什么才能使图像旋转?
Graphics2D g2d = (Graphics2D)g;
AffineTransform a = AffineTransform.getRotateInstance(3.14159/4,xloc,yloc);
a.setToTranslation(xloc,yloc);
g2d.drawImage(horse,a,null);
翻译有效,但图像轮换无效。我该怎么办?
答案 0 :(得分:2)
你误解了setToTranslation
的作用。来自documentation:
public void setToTranslation(double tx, double ty)
将此变换设置为平移变换。表示此变换的矩阵变为:
[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]
所以你的旋转矩阵会被翻译矩阵覆盖。请考虑使用translate
代替。