【问题标题】:How to rotate rectangle?如何旋转矩形?
【发布时间】:2012-12-31 20:54:40
【问题描述】:

这里是一个绘制我的角色左腿的例子:

g2d.fillRect(pX + (headW - bodyW)/2, pY + headH + bodyH, legW, legH); //left leg

我知道如何使用AffineTransforms 旋转图像,如下所示:

AffineTransform tr = g2d.getTransform();
tr.rotate(Math.toRadians(rotAmount));
g2d.drawImage(playerI, tr, null);

如何使用AffineTransform 旋转这个矩形?我不能这样做:

g2d.rotate(Math.toRadians(rotAmount));

因为那会旋转我的整个人。我怎样才能只旋转腿?

【问题讨论】:

    标签: java graphics2d rectangles affinetransform


    【解决方案1】:

    没关系,我知道怎么做的。

    AffineTransform old = g2d.getTransform();
    g2d.rotate(Math.toRadians(lLegRot));
    g2d.fillRect(pX + (headW - bodyW)/2, pY + headH + bodyH, legW, legH); //left leg
    g2d.setTransform(old);
    g2d.rotate(Math.toRadians(rLegRot));
    g2d.fillRect(pX + headW - legW - (headW - bodyW)/2, pY + headH + bodyH, legW, legH); //right leg
    

    较新的旋转会覆盖较旧的旋转,同时保持先前旋转的对象不变。要重置轮换,只需执行g2d.setTransform(old);

    【讨论】:

      【解决方案2】:

      如果您决定使用 java.awt.geom,您可以使用 rotate(someAngle) 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-27
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多