如何围绕 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));
我一直在看一些类似的问题,但 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));