Ich habe mich lange mit Rotationen und Translationen von Koordinatensystemen beschäftigt, jedoch
bin ich bis jetzt noch nicht auf einen grünen Zweig gekommen. Deshalb stelle ich meine Frage mal hier:
Das 2d-Koordinatensystem G beinhaltet das 2-d Koordinatensystem R, welches zu G sowohl verschoben, als auch
rotiert ist.
Nun möchte ich ausgehend von einem beliebigen Punkt im Koordinatensystem G, welcher den Ursprung des
Koordinatensystems R darstellt, einen Punkt, welcher im Koordinatensystem R liegt auf das Koordinatensystem G
abbilden (ich möchte am Schluss wissen, welche Koordinate dieser Punkt im Koordinatensystem G hat).
Um die Fragestellung anhand eines Beispiels zu Formulieren Folgendes:
Das Koord. System R ist zu G um 20° (im Uhrzeigersinn) verdreht und hat den Ursprung bei Punkt (2|1).
Nun hat R einen Punkt bei z.B. (5|2).
Wo ist nun die Koordinate (5|2) des Koordinatensystems R im Koordinatensystem G positioniert?
Wie gehe ich vor?
Kann die Verschiebung und die Rotation in einem Schritt erledigt werden?
Wie ein Punkt rotiert wird, ist unter folgendem Link mit code beispiel beschrieben.
https://stackoverflow.com/questions/225 ... r-point-2d
Jedoch weiß ich leider nicht, wie bzw. an welcher Stelle ich die Translation machen soll und wie ich den Weg retour wieder gehen soll.
Anbei ein Beispiel aus dem Link auf Python umgeschrieben:
Code: Alles auswählen
def rotate_point(cx,cy,angle, px, py):
s = math.sin(angle);
c = math.cos(angle);
# translate point back to origin:
px -= cx
py -= cy
# rotate point
xnew = px * c - py * s
ynew = px * s + py * c
# kann ich an dieser Stelle einfach zB sagen, ich möchte den oben genannten Punkt (5|2) addieren?
# also etwa so: xnew += 5
# und ynew += 2
# ??
# translate point back:
px = xnew + cx
py = ynew + cy
return px, py

Lg