# Wie kann ich bei g.rotate() auch die Koordinaten anpassen?



## .basti (4. Nov 2022)

Servus,
ich hab folgendes Problem: Ich drehe in meinem Spiel die Map mit g.rotate() aber die Koordinaten werden mir trotzdem immer nur beim Ausgangspunkt ausgegeben. Z.B. wenn ich die obere linke ecke eines Rectangle bei P(100/100) habe und dann um PI/2 drehen (also 180°) dann ist mein Rechteck zwar gedreht gezeichnet aber die Linke Ecke wird mir immer noch bei 100/100 ausgegeben wenn ich die Koordinaten von dem Rectangle ausgeben lasse. Wie kann ich das ändern, also dass dann der Punkt P auch wirklich die Koordinaten ausgibt wo die Obere Linke Ecke ist?
Ich arbeite mit Swing, hab ein Frame, darauf ein JPanel und zeichne mit paintComponent().


----------



## Robert Zenz (4. Nov 2022)

Du drehst ja nicht das `Rectangle`, du drehst den Grafikkontext in welchem gezeichnet wird. Also um das in in einem Beispiel zu sagen, du drehst ja die Leinwand, nicht die Form welcher auf der Leinwand liegt. Wenn du wissen willst wo der Punkt ist nach der Rotation musst du das selbst ausrechnen, soweit ich weisz.


----------



## .basti (4. Nov 2022)

Hast du irgendwelche Lösungen? Vielleicht wie ich nur das Rectangle drehe oder wie ich Koordinaten ausrechnen kann?


----------



## Blender3D (9. Nov 2022)

.basti hat gesagt.:


> Hast du irgendwelche Lösungen? Vielleicht wie ich nur das Rectangle drehe oder wie ich Koordinaten ausrechnen kann?


Die Klasse Polygon. Da kannst Du die vier Koordinaten um einen Mittelpunkt rotieren und hast gleichzeitig Zugriff auf alle Koordinaten.
In meinem Asteroidclone verwende ich zu diesem Zweck eine Klasse Polygonsprite.

https://www.java-forum.org/thema/spielesammelthread.123839/#post-1288802


----------

