3d Beschleunigungsmesser berechnen die Orientierung
Ich habe Beschleunigungsmesserwerte für die 3-Achsen (normalerweise, wenn nur die Schwerkraft vorhanden ist, enthält sie Daten zwischen -1,0 und 1,0):
float Rx;
float Ry;
float Rz;
Ich mache Somaberechnungen, dann bekomme ich die Winkel für jede Achse.
float R = sqrt(pow(Rx,2)+pow(Ry,2)+pow(Rz,2));
float Arx = acos(Rx/R)*180/M_PI;
float Ary = acos(Ry/R)*180/M_PI;
float Arz = acos(Rz/R)*180/M_PI;
Dann setze ich die Werte für die Boxwinkel in opengl
rquad = Arx;
yquad = Ary;
Welche dreht meine Box:
glRotatef(yquad,1.0f,0.0f,0.0f);
glRotatef(rquad,0.0f,1.0f,0.0f);
s funktioniert auf der Hemisphäre. Ich möchte die volle Kugel verwenden und weiß, dass ich den Arz-Wert verwenden muss, damit er funktioniert, aber ich weiß nicht, wie ich das für diese Drehung verwenden kann. Kannst du mir helfen
Update: Die endgültige Antwort ist in meinem Fall:
rquad = -atan2(Rx/R, Rz/R)*180/M_PI;
yquad = -atan2(Ry/R, Rz/R)*180/M_PI;