У меня проблема с поворотом изображения в фиксированной позиции с помощью Graphcis2D и AffineTransform.
Идея состоит в том, чтобы вращать изображение в соответствии с вращением тела.
Вращение происходит правильно, так какугол поворота изображения совпадает с углом поворота тела.Однако, поскольку вращение происходит, изображение не отображается в том же положении, в котором должно быть нарисовано тело.Код метода рисования изображения следующий:
public void paintPicture(Graphics g, Body body) {
Graphics2D g2 = (Graphics2D) g;
Vector2f[] vertices = ((Box) body.getShape()).getPoints(body.getPosition(), body.getRotation());
Vector2f topLeftCorner = vertices[0];
AffineTransform oldTransform = g2.getTransform();
AffineTransform at = new AffineTransform();
at.rotate(body.getRotation());
g2.setTransform(at);
g2.drawImage(this.img, (int) topLeftCorner.x, (int) topLeftCorner.y, null);
g2.setTransform(oldTransform);
}
Есть идеи, что может вызвать движение изображения вместо его рисования в соответствии с координатами (topLeftCorner.x, topLeftCorner.y)?