Wie finden Sie die rotationsmatrix zwischen den beiden Koordinatensystemen?
Gibt es zwei Koordinatensysteme. Wir kennen die 3D-Koordinaten des Ursprungs und der 3D-Vektoren, die die Achsen der zweiten Koordinatensystem mit Bezug auf das erste Koordinaten-system. Wie kann dann finden wir die drehmatrix, die es vermag, das erste Koordinatensystem in das zweite Koordinatensystem?
InformationsquelleAutor Udaya | 2015-12-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beschriebene problem kann wie folgt gelöst. Lassen Sie
bezeichnen die gewünschte rotation matrix. Wir benötigen
wo
t
bezeichnet die übersetzung; wir sehen, dass diese matrix Gleichheit gelöst werden kann durch Multiplikation von Links mit der Einheitsmatrix, die zu sich selbst invers ist; daher erhalten wir die folgende Gleichheit.Diese können neu angeordnet werden, indem
t
von beiden Seiten zu erhalten, um die gewünschte matrixM
wie folgt.Beachten Sie, dass dies war relativ einfach, da die erste matrix besteht aus der Basis-Vektoren der standard-Basis. Im Allgemeinen ist es schwieriger und erfordert eine basis transformation, was im Grunde kann getan werden, indem Gauß-elimination, aber kann numerisch schwierig.
Ich bin nicht vertraut mit der Schreibweise; tut
t
bezeichnen übersetzung beteiligt? Es macht Sinn, aber die ursprüngliche Frage verlangt für eine Drehung nur.Ich glaube ja, der Autor ist [R|t] impliziert rotation+translation (Hinweis: nicht-null-Ursprung). Die matrix M ist richtig für reinen Drehung Fall für die R+t ist es notwendig, verwenden Sie relative Koordinaten
Ja, [R|t] impliziert die rotation und translation. Müssen wir subtrahieren den translationsvektor (t) aus der matrix M. ich denke, es gibt keine Beziehung zwischen der 3D-Vektoren, die die drei Achsen und den Ursprung. (x_x, x_y, x_z) ist ein 3D-Vektor, der stellt nur die Richtung der X-Achse mit Bezug auf das Koordinatensystem 1. Dieser Vektor wird derselbe sein, auch gibt es keine übersetzung.
Die übersetzung muss gesorgt werden separat als übersetzung nicht wiedergegeben werden können, die durch matrix-Multiplikation (zumindest nt innerhalb der gleichen Dimensionen). Aus diesem Grund, in der Regel affine-transformation verwendet wird (in die eine zusätzliche dimension eingeführt wird künstlich, die später entfernt von Projektion) - als Konsequenz sind alle gewünschten Transformationen (rotieren, skalieren und zu übersetzen) kann dargestellt werden als-matrix-Multiplikation.
InformationsquelleAutor Codor
Habe ich einen Artikel geschrieben über es, das veranschaulicht, wie es zu tun, mit source-code. Die kurze Antwort ist, dass Sie bauen eine 3x3-matrix mit den Punkt-Produkte der verschiedenen Achsen
http://www.meshola.com/Articles/converting-between-coordinate-systems
InformationsquelleAutor John Mott
Ich glaube, dass die änderung der basis könnte Ihnen helfen,Wiki-Link. Seine Recht einfach zu implementieren.
InformationsquelleAutor JavaNullPointer
Lassen sich die 4x4-matrix definieren die Beziehung zwischen den beiden Koordinatensystemen.
Dann der Winkel zwischen den beiden ist:
θ = arcos(Spur(A)/2.0)
InformationsquelleAutor user10519046