Das geht zum Beispiel mit Drehmatrizen.

Eine Variable in dem Programm enthält dann jeweis die Drehmatrix, die der aktuellen Lage entspricht. Der Startwert für diese Variable ist die Einheitsmatrix.

Man muss dann mehrmals pro Sekunde die Drehraten messen, daraus die Drehungen um die einzelnen Achsen (als Drehmatrizen) berechnen, und dann jeweils die Lagematrix mit den neuen Drehungsmatrizen multiplizieren.

Aus der Drehmatrix kann man Richtung, Roll- und Nickwinkel berechnen.
(Hier wird's beispielsweise erklärt: http://euclideanspace.com/maths/geom...ngle/index.htm )

Man kann auch einfach die Drehraten für jede einzelne Achse aufintegrieren und erhält einen Winkel - Das Ergebnis ist dann aber falsch.