Moin,
ich verzweifle hier so ein bisschen an der Rotationserkennung meines Gerätes.
Eigentlich™ will ich nur wissen, in welche Richtung das, was ich 'Oberkante' des Gerätes nenne (also die Seite mit dem Lautsprecher, an dem im Idealfall das Ohr beim Telefonieren klebt) gerade zeigt.
Nach längerem Hick-Hack mit den Sensoren bekomme ich tatsächlich auch mal so etwas wie eine Rotationsmatrix.
Problem: die ergibt einfach keinen Sinn – also für mich.
Im Prinzip dank OpenGL weiß ich ungefähr, was mir die Matrix so sagt. Nur leider halt nur 'so ungefähr'.
Ich habe beispielsweise folgende Rotationsmatrix bekommen:
[-0.18][0.984][0.004][0.000]
[0.983][0.178][0.028][0.000]
[0.027][0.010][-0.99][0.000]
[0.000][0.000][0.000][1.000]
Der Aufbau (natürlich nicht so wirklich dokumentiert...) sollte der Folgende sein:
R bezeichnet dann Rotationen im Raum, T die Transformationen, 1 ist immer 1 und u,v,w sind Projektionstransformationen.
Ich hätte jetzt gern, um weiter zu kommen, eine Art Einheitsmatrix. Oder überhaupt irgendeinen Anhaltspunkt, wie ich jetzt aus diesem Datenwust meine benötigten Infos bekomme.
Da absolut keine aussagekräftigen Daten vorliegen bin ich etwas ratlos.
- ich finde kein Skalierungselement mit Wert '1', so dass ich nicht davon ausgehen kann, dass nur um eine bestimmte Achse gedreht wurde.
- ich finde keine sinnvollen, aussagekräftigen Informationen über die Drehung
- es ist mir nicht mal möglich das Gerät so in eine Position zu bringen, dass ich die Einheitsmatrix bekomme. (quasi der 'Nullpunkt' der Geräterotation)
Nun hänge ich also daran, aus diesen Winkelsammlungen irgendwelche Rückschlüsse über den/die/das [lexicon]Vektoren[/lexicon] zu machen.
Oder, anders gesagt: welcher dieser neun verdammten Winkel ist jetzt der, den ich haben will, steht also stellvertretend für 'obere Kante des Geräts, die mit dem Lautsprecher zum hören'?