Florian Strienz
Erfahrenes Mitglied
Hallo zusammen,
ich benutze folgende Funktion für ein Java-Game mit der ich ein Bild in einem bestimmten Winkel drehe.
Das funktioniert alles recht gut. Ich bin mir aber unschlüssig, ob diese Methode nicht sehr viel Performance frist, da ich jedesmal das Bild aufs neue drehe beim Zeichnen. Oder koste das drehen wenig Performance, da das Bild an sich ja schon im Speicher ist und nur dort gedreht wird (ähnlich wie bei directX)?
Hat hier jemand Erfahrung? Alternative wäre 360 Bilder vorab in den Speicher zu malen und dann auf diese zuzugreifen. Bin mir sehr unschlüssig, was hier sinnvoller ist.
ich benutze folgende Funktion für ein Java-Game mit der ich ein Bild in einem bestimmten Winkel drehe.
Code:
Image rotateImage(Image src, double degrees) {
AffineTransform affineTransform = AffineTransform.getRotateInstance(
Math.toRadians(degrees), src.getWidth(null) / 2, src
.getHeight(null) / 2);
BufferedImage rotatedImage = new BufferedImage(src.getWidth(null), src
.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = (Graphics2D) rotatedImage.getGraphics();
g.setTransform(affineTransform);
g.drawImage(src, 0, 0, null);
return rotatedImage;
}
Das funktioniert alles recht gut. Ich bin mir aber unschlüssig, ob diese Methode nicht sehr viel Performance frist, da ich jedesmal das Bild aufs neue drehe beim Zeichnen. Oder koste das drehen wenig Performance, da das Bild an sich ja schon im Speicher ist und nur dort gedreht wird (ähnlich wie bei directX)?
Hat hier jemand Erfahrung? Alternative wäre 360 Bilder vorab in den Speicher zu malen und dann auf diese zuzugreifen. Bin mir sehr unschlüssig, was hier sinnvoller ist.