2012-04-04 9 views
7

Ich versuche, mit 3D-Rotationen zu arbeiten, aber ich scheine nicht die Idee zu bekommen, wie das Framework die Berechnungen durchführt.Erklärung der iOS-Rotationsmatrix

Zum Beispiel I erhalten, diese Daten:

Gier -1,010544 0,508249 Pitch Roll 1,128918

Dann druckt man die entsprechende Rotationsmatrix

  • 0,599901 -0,128495 -0,789689
  • 0,740043 0,464230 0,486649
  • 0.304065 -0.876344 0.373584

Nachdem ich die API und das Wiki gelesen habe, bin ich mir ziemlich sicher, dass es eine allgemeine Möglichkeit geben muss, eine Rotationsmatrix aus Eulerwinkeln zu erstellen. Ich habe alle diese here, keine Ergebnisse versucht.

Vermisse ich etwas oder wie wird das gemacht?

+0

Shameless-Plug für die Funktionsweise von Rotationsmatrizen (allgemeiner oder grafisch bezogen): [Die Mathematik hinter Transformationen] (http://ronnqvi.st/the-math-behind-transforms/). Scrollen Sie nach unten zur Überschrift "Rotierend" –

Antwort

2

Nun, iOS oder CoreMotion bietet beides. RotationMatrix und Euler Angle Representation. Die Dokumentation ist here. Wenn Sie interessiert sind, wie diese Berechnung funktioniert, schauen Sie sich here an. Um es zusammenzufassen: Jeder Euler-Winkel kann durch eine Rotationsmatrix dargestellt werden, die eine Rotation um eine Einheitsachse beschreibt. Da es drei Winkel gibt, müssen Sie sie nur kombinieren. Aber achten Sie auf! Euler-Winkel sind nicht eindeutig, da es unterschiedliche Ordnungen gibt, in denen die Rotationsmatrizen multipliziert werden können.

BEARBEITEN: Sie sind mit einer Quaternionberechnung verknüpft. Oder liege ich völlig falsch?

+0

Danke, habe ich inzwischen gelöst! – GooKSL

+0

Schwerpunkt auf * "Achtung! Eulerwinkel sind nicht eindeutig" * – Jacksonkr