我目前正在尝试旋转图像,然后在不旋转的顶部绘制图像。但是每当我使用时:g2d.rotate(Math.toRadians(rot), (x+15), (y+15));
我随后绘制的每个图像也会旋转。有什么办法可以旋转一张图像而不旋转其余图像(这真的很难解释)。
这是我的绘画方法:
public void draw(Graphics2D g2d)
{
move();
if(bo.px==+1)rot--;
if(bo.px==-1)rot++;
g2d.rotate(Math.toRadians(rot), (x+15), (y+15));
g2d.drawImage(img, x, y, null);//this should rotate
g2d.drawImage(shine, x, y, null);//this shouldn't
}
提前致谢。
最佳答案
您可以保存原始变换,旋转并绘制第一个图像,然后在绘制第二个图像之前应用回原始变换。
尝试
AffineTransform originalTransform = g2d.getTransform();
g2d.rotate(Math.toRadians(rot), (x+15), (y+15));
g2d.drawImage(img, x, y, null);
g2d.setTransform(originalTransform);
g2d.drawImage(shine, x, y, null);