java - 在另一幅图像下旋转一幅图像

标签 java image rotation graphics2d

我目前正在尝试旋转图像,然后在未旋转的图像上绘制图像。但每当我使用: 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);

关于java - 在另一幅图像下旋转一幅图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7698030/

相关文章:

java劫持套接字可能吗?

java - 哈希表和属性有什么区别?

java - 无法使用 Spring : javax. mail.FolderClosedException 读取电子邮件正文

javascript - 在javascript中为图像创建新标签

java - 如何避免嵌套的 null 检查

ios - 在 Swift 中上传带有参数的图像

ios - 如何使用图像数据快速将图像上传到azure而不损失质量

html - 旋转图像边框

java - 将图像旋转 x 度? - java

c++ - 手动旋转 vector