# AffineTransform



## Kerberus (9. Feb 2004)

Noch mal eine Frage:
Wenn ich zum Beispiel ein Rechteck mit einem AffineTransform-Objekt drehen möchte, wie kann ich das bewerkstelligen.
Natürlich sollte das Rechteck nicht um den Ursprung sondern um seinen Mittelpunkt gedreht werden.
Muss ich zuerst mit trasnform(x,y) denn Ursprung zum Mittelpunkt verschieben?


----------



## BlueBook (17. Feb 2004)

hab zufällig den quelltext gefunden, auf der suche nach was anderem.
Danke das bringt dich weiter..


```
public void paint(Graphics g) {
AffineTransform rot30 = new AffineTransform();
rot30.setToRotation(30.0f * Math.PI / 180.0f);
Graphics2D g2 = (Graphics2D)g;
g2.setTransform(rot30);
Rectangle2D rect =
new Rectangle2D.Float(10.0f, 10.0f, 20.0f, 30.0f);
g2.setColor(color.red);
g2.draw(rect);
}
```


und ich denk schon das du es erst in den mittelpunkt verschieben musst,
teste es doch einfach :]

gruß
BB


----------



## Kerberus (23. Feb 2004)

Habe durch die API ein bessere Methode gefunden. Es gibt einen Konstruktor, bei welchem man angeben kann um welchen Punkt man drehen will. 
Man muss einfach beachten, dass man nach der Rotation das Koordinatensystem wieder zurück dreht, sonst werden alle folgenden Ojekte auch gedreht gezeichnet.


----------

