Как вращать картинку в java
Я писала код на java и мне понадобилась вращать объект вокруг своей оси, я догадываюсь, что это надо делать через метод rotate(), но не знаю как. Вот самая главная часть кода:
public void CreateOrganism() {
OrganismX = (int) (Math.random() * 1400 + 101);
OrganismY = (int) (Math.random() * 700 + 101);
loadImage();
}
public void loadImage() {
ImageIcon imageIcon = new ImageIcon("img/m0.png");
var_organism = imageIcon.getImage();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(var_organism, OrganismX, OrganismY, this);
}
Ответы (1 шт):
Автор решения: Denis Kukharenko
→ Ссылка
В начале нужно сделать приведение Graphics в Graphics2D:
Graphics2D g2d = (Graphics2D)g;
И примерно так указать аргументы rotate() как привел пример ниже. Переменную int degrees я в классе заранее создал со значением 1, но вы можете указывать то значение с какого угла вам нужно начать вращение.
g2d.rotate(Math.toRadians(degrees), var_organism.getWidth(this)/2, var_organism.getHeight(this)/2);
Метод drawImage() добавляйте в код после rotate().
И чтобы изображение вращалось запустите, где вам нужно будет, цикл с каждой итерацией изменяющий значение degrees и обновляющий графику.
Пример который я в метод поместил:
public void animation() {
for(int x = 0; x<1000; x++) {
panel.repaint();
this.degrees++;
try {
Thread.sleep(15);
}catch(Exception ex) {}
}
}