Methoden Koordinaten relativ zur Rotation eines Bildes bestimmen

CptK

Bekanntes Mitglied
Hallo, ich habe eine Kanone, die durch die Bewegung der Maus rotiert. Die Kanonenkugel soll ihre Startposition immer vorne im Rohr haben also am Anfang:
Java:
int startX = p.getKanoneRohr().x() + p.getKanoneRohr().image().getWidth() - 15;
        int startY = p.getKanoneRohr().y() + (p.getKanoneRohr().image().getHeight() / 2 - 7);
Wenn man das Kanonenrohr aber rotiert, soll sich die Startposition dementsprechend auch verändern. Ich weiß leider nicht, wie man das mathematisch ausdrückt, wahrscheinlich irgendwas mit sinus und cosinus... Um mein Problem zu verdeutlichen, habe ich noch eine kleine Grafik erstellt (nicht maßstabsgetreu).
Ich würde mich freuen, wenn mir jemand bei der Berechnung helfen könnte.
 

Anhänge

  • Startpunkt Kanonenkugel.png
    Startpunkt Kanonenkugel.png
    28,4 KB · Aufrufe: 43
Kanonenrohröffnung soll sich im Kreis drehen?
Ich habe da nochmal eine Grafik zur Verdeutlichung.

Also: ich habe jetzt:
Den Mittelpinkt des Kreises: x = 73, y = 405
Den Radius: r = 40
Den Winkel w = 0°
Das heißt der Startpunkt der Kanonenkugel ist bei x = 113, y = 405

Wie aber berechne ich jetzt konkret den Startpunkt für z.B. w = 45°?
 

Anhänge

  • Rotation Kanonenrohr.png
    Rotation Kanonenrohr.png
    50,5 KB · Aufrufe: 41
Java:
double angle = Math.toRadians(w);
sy = y + Math.sin(angle)*r;
sx = x + Math.cos(angle)*r;
w = Winkel in Grad, (x,y) = Drehpunkt der Kanone, r = Abstand vom Drehpunkt zum Startpunkt der Kugel, (sx, sy) = Startpunkt der Kugel
 
Ja ich hatte das auch so gemacht, nur eben als ich mir das mit deinem Beitrag noch mal angeschaut habe, ist mir aufgefallen, das ich nen falschen Winkel verwendet hatte und es deswegen nicht ging
 
Hallo unbekannte Unschuld, man kann es glaub ich generisch immer genauso machen wie es @httpdigest beschrieben hat....
Also verschieben, drehen und verschieben.🙂
 

Neue Themen


Zurück
Oben