0 Daumen
729 Aufrufe

Ich habe einen Kreis in einem 2d Koordinatensystem - und möchte diesen drehen.

Die x und y Koordinaten verrechne ich zum drehen wie folgt:

x' = x * cos(alpha) - y * sin(alpha)

y' = x * sin(alpha) - y * cos(alpha)

um pi oder pi/2 kommt ein gutes Ergebnis aus, aber wenn ich den Kreis um 2,4rad drehen will, ist es eher ein Oval - was übersehe ich ?

Das Ziel ist es den Kreis in eine Richtung zu drehen um 2,4rad. drehung.JPG

momentanes Ergebnis: (oder werte ich das Ergebnis falsch aus?)

drehung2.JPG

Avatar von

1 Antwort

0 Daumen

Sicher, dass du zwei mal MINUS rechnen sollst?

x' = x * cos(alpha) - y * sin(alpha)

y' = x * sin(alpha) - y * cos(alpha)

https://de.wikipedia.org/wiki/Drehmatrix sagt: 

x' = x * cos(alpha) - y * sin(alpha)

y' = x * sin(alpha) + y * cos(alpha)

Avatar von 162 k 🚀

boah, vielen Dank... hab ich ein Tippfehler gehabt und diesen nur die ganze Zeit übersehen. Das hat auf jedenfall schonmal geholfen, danke.

OK somit rotiere ich um den Mittelpunkt des Koordinatensystems, wenn ich das richtig verstehe. Wenn ich z.B meinen Kreis bei (0,0) starten lasse, kann ich den auch da schön rotieren und das klappt.

Aber in meinem Falls ist der Kreis versetzt- also z.B. (0,32 ; -0,055), also wenn ich diesen um z.B. 2,4rad drehe landet dieser vom 4. im 2. Quadranten.  Ich möchte aber in dem Punkt (0,32 ; -0,055) drehen. ( Wie im ersten Post im ersten Bild - nur das dort der Pfeil ausversehen gegen den Uhrzeigersinn eingetragen ist)

Ich berechne mein phi(t), damit dann:

x = r * sin(phi(t)) +0,32 (start bei 0,32 ; bei phi(t)=0)

y = r* cos(phi(t)) - r -0,055  (start bei -0.055; bei phi(t)=0)

damit dann:

x' = x * cos(alpha) - y * sin(alpha)

y' = x * sin(alpha) + y * cos(alpha) 

alpha= 2,4;

Nun ist mein Ziel nach der Rotation auch bei phi(t)=0 bei den beiden Punkten zu starten.

Nur hab ich jetzt nach der Drehung für x bei phi(t)=0 -> -0.1988 und für y =0,2567

ich habs:

- ich beginne im Ursprung - drehe und dann folgt eine Translation auf meinen Punkt

Freut mich, dass es nun klappt. Die Verschiebung und die Drehrichtung kannst du ja am Resultat gut kontrollieren.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community