Вращение изображения, выходящее за видимые границы при использовании аффинного преобразованияJAVA

Программисты JAVA общаются здесь
Anonymous
Вращение изображения, выходящее за видимые границы при использовании аффинного преобразования

Сообщение Anonymous »

Я вращаю изображение с помощью аффинного преобразования, чтобы создать маятник, который движется вперед и назад. При повороте изображения влево оно выходит за видимые границы и исчезает. Как я могу переместить границы, чтобы изображение всегда было видно? Это код, используемый для поворота изображения, и изображение, которое я использую для поворота.
Изображение, которое качается:
Изображение

Код: Выделить всё

public void paintComponent(Graphics g) {
// if no image set, then just draw a rectangle
if (sprite == null) {
g.setColor(c);
g.fillRect(0, 0, (int) getBounds().getWidth(), (int) getBounds().getHeight());
} else {
try {
AffineTransform at = new AffineTransform();
if (spriteAngle != 0) {
at.rotate(spriteAngle, getWidth() / 2, getHeight() / 2);
}
at.scale(getWidth() * 1.0 / sprite.getWidth(), getHeight() * 1.0 / sprite.getHeight());
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(sprite, at, null);
} catch (Exception e) {
g.drawImage(sprite, 0, 0, getWidth(), getHeight(), this);
}
}
}
Я попробовал использовать класс Rectangle для создания временного преобразования для смещения границ и перевода объекта. Я также пробовал вращать вокруг центра и менять изображение на.
Изображение находится только в правом нижнем углу, поэтому оно всегда находится в границах:
Изображение

однако это не работает, так как мне нужно увеличивать длину изображения с течением времени.


Подробнее здесь: https://stackoverflow.com/questions/785 ... sformation

Вернуться в «JAVA»