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

问题描述

我一直在寻找一些类似的问题,但没有一个能确切回答我的需求。在我发现的解决方案中,每个人都旋转图像而不移动,但是我需要的是使图像围绕初始位置旋转,而不是使其在位置旋转。

我正在使用的代码(找到的内容):

        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)

尝试仅传递旋转角度本身,它应该绕左上角旋转:

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...