【问题标题】:How to rotate an image around a point in Java如何在Java中围绕一个点旋转图像
【发布时间】:2020-09-14 02:26:24
【问题描述】:

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

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

        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);

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

【问题讨论】:

    标签: java image-rotation


    【解决方案1】:

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

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

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

    【讨论】:

    • bruh... 这很简单。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    相关资源
    最近更新 更多