[Mathe] Anhand von Kreiskoordinaten Winkel errechnen
Verfasst: 27.02.2011, 14:19
Hi,
Habe gerade ein Problem. Ich habe zwar auch eine Lösung, möchte aber wissen, ob es nicht einfacher geht.
Problem:
Ich habe eine Kugel, welche zum Ursprung einen gewissen Abstand hat. Nun möchte ich diese Kugel auf der y-Achse rotieren und zwar weiter rotieren, d.h. gemäß ihrer aktueller Position würde 0° Rotation nichts bewirken.
Idee
Um die Kugel weiter zu rotieren, brauche ich natürlich den Abstand zur y-Achse, also d = sqrt(dx^2 + dz^2), mit dx = Abstand auf x-Achse und dz = Abstand auf z-Achse. Nächster Schritt ist, dass ich den Winkel rausfinde, zu dem die Kugel gerade bereits rotiert ist. Das benötige ich, da ich vor hatte, die neue Position durch: x = sin(rotationswinkel) * abstand, z = cos(rotationswinkel) * abstand (y-Achse ist nicht verschoben) rauskriege.
Frage:
Kann ich das auch ohne Neuberechnung der Position machen, indem ich irgendetwas hinzuaddiere? Ist das besser?
Weiterführung Idee:
Ich hab erstmal angenommen (da ich kA hab), dass ich die Position neu berechnen muss und daher eben den Winkel rausfinden muss. Jetzt habe ich mit asin und acos rumgespielt. Resultat sind zwei Winkel, ich möchte aber einen haben, wobei 90° eine viertel Rotation, 180° eine halbe Rotation, 270° eine 3/4 Rotation etc. sind. Jetzt habe ich folgende Wertepaare rausgefunden:
Frage:
Wie kann ich das (f(dx,dz) -> rotationswinkel) in eine Formel packen ohne Fallunterscheidung machen zu müssen? Oder muss ich ne Fallunterscheidung machen? Mir kommt es vor, als ginge das besser.
Danke schon Mal!
Habe gerade ein Problem. Ich habe zwar auch eine Lösung, möchte aber wissen, ob es nicht einfacher geht.
Problem:
Ich habe eine Kugel, welche zum Ursprung einen gewissen Abstand hat. Nun möchte ich diese Kugel auf der y-Achse rotieren und zwar weiter rotieren, d.h. gemäß ihrer aktueller Position würde 0° Rotation nichts bewirken.
Idee
Um die Kugel weiter zu rotieren, brauche ich natürlich den Abstand zur y-Achse, also d = sqrt(dx^2 + dz^2), mit dx = Abstand auf x-Achse und dz = Abstand auf z-Achse. Nächster Schritt ist, dass ich den Winkel rausfinde, zu dem die Kugel gerade bereits rotiert ist. Das benötige ich, da ich vor hatte, die neue Position durch: x = sin(rotationswinkel) * abstand, z = cos(rotationswinkel) * abstand (y-Achse ist nicht verschoben) rauskriege.
Frage:
Kann ich das auch ohne Neuberechnung der Position machen, indem ich irgendetwas hinzuaddiere? Ist das besser?
Weiterführung Idee:
Ich hab erstmal angenommen (da ich kA hab), dass ich die Position neu berechnen muss und daher eben den Winkel rausfinden muss. Jetzt habe ich mit asin und acos rumgespielt. Resultat sind zwei Winkel, ich möchte aber einen haben, wobei 90° eine viertel Rotation, 180° eine halbe Rotation, 270° eine 3/4 Rotation etc. sind. Jetzt habe ich folgende Wertepaare rausgefunden:
Code: Alles auswählen
(a,b) -> rotationswinkel
mit a = asin(dx), b = acos(dz)
(0, 0) -> 0°
(180, 180) -> 90°
(0, 360) -> 180°
(-180, 180) -> 270°
Wie kann ich das (f(dx,dz) -> rotationswinkel) in eine Formel packen ohne Fallunterscheidung machen zu müssen? Oder muss ich ne Fallunterscheidung machen? Mir kommt es vor, als ginge das besser.
Danke schon Mal!