3 Stimmen

Drehen und Skalieren - Wie kann man beides machen und das richtige Ergebnis erzielen?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X