AffineTransform

Status
Nicht offen für weitere Antworten.

Kerberus

Bekanntes Mitglied
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

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

Code:
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

Bekanntes Mitglied
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.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben