# Frage zu AffineTransforms



## vdrummer (16. Dez 2010)

Hallo zusammen,

ich habe folgende Frage:
Ist es möglich, mehrere AffineTransforms aneinanderzuhängen, so dass die zuerst angewendete oben steht und die danach angewendete darunter?

Bis jetzt hab ich das so gemacht

```
AffineTransform at1 = new AffineTransform();
at1.setToTranslation(-10, -10);
AffineTransform at2 = new AffineTransform();
at2.setToRotation(Math.PI / 2);
at1.preConcatenate(at2);
```

Ich weiß, dass man es auch so machen könnte:

```
AffineTransform at = new AffineTransform();
at.setToRotation(Math.PI / 2);
at.translate(-10, -10);
```
allerdings muss man dort von unten nach oben lesen, um die korrekte Reihenfolge der Transformationen zu erkennen, was ich ziemlich umständlich finde.

Ich habe Folgendes versucht:

```
AffineTransform at = new AffineTransform();
at.setToTranslation(-10, -10);
at.preConcatenate(new AffineTransform().setToRotation(Math.PI / 2));
```
dann bekomme ich aber folgenden Fehler angezeigt:

The method preConcatenate(AffineTransform) in the type AffineTransform is not applicable for the arguments (void)

Warum funktioniert das nicht bzw. gibt es noch eine andere Möglichkeit?

Vielen Dank im Voraus,

vdrummer


----------



## Marco13 (16. Dez 2010)

preConcatenate an sich ist schon richtig. Das Argument muss dann eine Instanz von einer AffineTransform sein. (setToRotation liefert aber keine Instanz, sondern eben "void").

Also sowas wie
AffineTransform at = new AffineTransform();
at.setToRotation(...);
other.preConcatenate(at);

Aber weil das umständlich ist, gibt es sowas wie das hier, womit es so gehen würde:
at.preConcatenate(AffineTransform.getRotateInstance(Math.PI / 2));


----------



## vdrummer (16. Dez 2010)

Marco13 hat gesagt.:


> preConcatenate an sich ist schon richtig. Das Argument muss dann eine Instanz von einer AffineTransform sein. (setToRotation liefert aber keine Instanz, sondern eben "void").
> 
> Also sowas wie
> AffineTransform at = new AffineTransform();
> ...



Danke Marco13!
Genau nach so etwas habe ich gesucht!


----------

