Winkel aus einem normalsierten kartesischem Vector?
-
Hallo,
ich komme einfach nicht auf die dritte Formel
Input ist ein Einheitsvector mit xyz, rauskommen sollen die Winkel.void TestDlg::vector3ToDegree(float *degree, float cartesianvector[3]) //Roll, Pitch, yaw { //Kreiszahl von -3.14 bis 3.14 degree[0] = ??; //roll degree[1] = atan2(long double(cartesianvector[1]),long double(sqrt(cartesianvector[0]*cartesianvector[0] + cartesianvector[2]*cartesianvector[2] ))); //pitch degree[2] = atan2(cartesianvector[0], cartesianvector[2]); //yaw //Convert to degree *57.29577951 degree[0]*=57.29577951; degree[1]*=57.29577951; degree[2]*=57.29577951; }
Wie errechnet man sich den roll Winkel?
Grüße
TheNoName
-
Keine Ahnung, was in deinem Code-Beispiel berechnet wird oder werden soll. Roll-Nick-Gier-Winkel beschreiben die Drehung zweier Koordinatensysteme zueinander, sind also allenfalls durch eine 3x3-Matrix beschrieben, nicht durch einen einfachen Vektor.
http://de.wikipedia.org/wiki/Roll-Nick-Gier-WinkelSolltest du wirklich einen Vektor in Winkel "umrechnen" wollen, würde ich mal ein Skalarprodukt mit Einheitsvektoren versuchen.
MfG