我知道如何在 java 中旋转图像,但我找不到使用 Graphics2D.rotate 方法围绕其中心旋转图像的方法。这就是我所拥有的。
public void rotateLeft(Graphics2D g) {
rotateLeft++;
g.rotate(Math.toRadians(rotateLeft), charX, charY);
}
顺便说一句,charX 和 charY 是坐标...那么,有人可以帮我吗?
我知道如何在 java 中旋转图像,但我找不到使用 Graphics2D.rotate 方法围绕其中心旋转图像的方法。这就是我所拥有的。
public void rotateLeft(Graphics2D g) {
rotateLeft++;
g.rotate(Math.toRadians(rotateLeft), charX, charY);
}
顺便说一句,charX 和 charY 是坐标...那么,有人可以帮我吗?
您可以使用:
g.rotate(angle, (imageWidth / 2) + 1, (imageHeight / 2) + 1);
这就是我的做法:
AffineTransform oldTrans = g2d.getTransform();
g2d.rotate(-theta,xNow+bufferedBox.getWidth()/2, this.getHeight() - groundY - yNow - bufferedBox.getHeight()/2);
g2d.drawImage(bufferedBox, xNow, this.getHeight() - groundY - yNow - bufferedBox.getHeight(), null);
g2d.setTransform(oldTrans);
xNow 和 yNow 是我的盒子所在的坐标。“this”指的是 jPanel,groundY 是偏移量(它在地面上)。bufferedBox 指的是我的图像