Ich implementiere derzeit einen Algorithmus für die 3D-Punktwolkenfilterung nach einer wissenschaftlichen Arbeit.Rotationsmatrix, Normierung, Determinante -1
Ich habe einige Probleme bei der Berechnung der Rotationsmatrix für bestimmte Werte. Ziel ist es, Punkte in das Koordinatensystem zu rotieren, das durch die Richtung des Normalenvektors (Z-Achse) definiert ist. Da die folgende Abfrage in X, Y-Achse rotationssymmetrisch ist, spielt die Orientierung dieser Achsen keine Rolle. R wird wie folgt definiert: Rotationmatrix
[1 1 -(nx+ny)/nz]
R = [ (row1 x row3)' ]
[nx ny nz ]
n normalisiert wird. Das Problem tritt auf, wenn n_z wirklich klein oder null wird. Daher zog ich in Betracht, Zeile 1 zu normalisieren, bevor das Kreuzprodukt für Zeile 2 berechnet wurde.
Trotzdem wird die Determinante -1. Wird die Rotationsmatrix zu korrekten Ergebnissen führen? R ist orthogonal, aber det | R | nicht +1
Dank für irgendwelche Vorschläge
thx, fand heraus, dass ich nach dem Papier eine Reflexionsmatrix bekomme. Da die Orientierung in der Z-Achse keine Rolle spielt, hat dies keinen Einfluss auf die Ergebnisse. – andysfd
Zum Vorteil anderer ist es in vielen Fällen problematisch, eine Transformation zu verwenden, die eine Reflexion enthält, wenn dies nicht beabsichtigt ist. Sofern nicht beabsichtigt, negiere ich zweitens einen der Vektoren, um rechtshändige Koordinaten zu erhalten. – sage