Ich habe eine Reihe von Java2D-Aufrufen, die Vektoren auf einen Grafikkontext zeichnen. Ich möchte, dass das Bild in der Größe verdoppelt und dann um 90 Grad gedreht wird.
Ich verwende dazu den folgenden Code:
Graphics2D g2 = // ... get graphics 2d somehow ...
AffineTransform oldTransform = g2.getTransform();
AffineTransform newTransform = (AffineTransform)oldTransform.clone();
newTransform.concatenate(AffineTransform.getTranslateInstance(x1, x2));
newTransform.concatenate(AffineTransform.getScaleInstance((double)newW/(double)iconW, (double)newH/(double)iconH));
newTransform.concatenate(AffineTransform.getRotateInstance(Math.toRadians(rotationAngle), (double)iconW/2.0d, (double)iconH/2.0d));
// ... do my drawing ...
Es wird gedreht und skaliert, aber die Skalierung wird nicht so angewendet, wie ich es gerne hätte. Es ist, als ob es vor der Skalierung gedreht wird, wodurch das Bild auf der falschen Achse breiter wird.
Gibt es eine bessere Möglichkeit, dies zu tun?