如何围绕 Java 中的一个点旋转图像

How to rotate an image around a point in Java

我一直在看一些类似的问题,但 none 回答正是我需要的。在我找到的解决方案中,每个人都旋转图像而不移动,但我需要的是让这个图像围绕初始位置旋转,而不是让它旋转到位。

我使用的代码(我发现的):

        AffineTransform transform = new AffineTransform();
        transform.rotate(Math.toRadians(angle), img.getWidth() / 2, img.getHeight() / 2);
        AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
        img = op.filter(img, null);

        g.drawImage(img, getX(), getY(), null);

我需要图像相对于图像的第一个像素旋转。

您正在调用的 rotate 方法将锚点作为图像的中心传递: https://docs.oracle.com/javase/7/docs/api/java/awt/geom/AffineTransform.html#rotate(double,%20double,%20double)

尝试只传入旋转角度本身,它应该围绕 top-left:

旋转
transform.rotate(Math.toRadians(angle));