Euler-Winkel zwischen zwei 3d-Vektoren
Wie findet man die 3 Eulerschen Winkel zwischen 2 3D-Vektoren?
Wenn ich ein Vektor, und ich möchte, um seine Drehung, wird dieser link kann in der Regel verwendet: Berechnen Rotationen um auf einen 3D-Punkt?
Aber wie mache ich es, wenn die Berechnung nach einem anderen?
Ihre Frage ist nicht korrekt. Sie müssen drei Winkel, wenn Sie möchten, richten Sie zwei Referenz-frames. Wenn Sie nur zum ausrichten von zwei Vektoren, dann werden nur zwei Winkel benötigt.
Wie berechnen Sie die beiden Winkel? Und wie kommen die BVH-Datei-format (davedub.co.uk/bvhacker) hat 3 Winkel für die Bewegung der Knochen?
Wie berechnen Sie die beiden Winkel? Und wie kommen die BVH-Datei-format (davedub.co.uk/bvhacker) hat 3 Winkel für die Bewegung der Knochen?
InformationsquelleAutor tomyake | 2013-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als andere haben bereits darauf hingewiesen, deine Frage sollte überarbeitet werden. Nennen wir Ihre Vektoren
a
undb
. Ich gehe davon aus, dasslength(a)==length(b) > 0
ansonsten kann ich nicht beantworten die Frage.Berechnen Sie die cross-Produkt Ihrer Vektoren
v = a x b
;v
gibt die Achse der rotation. Durch die Berechnung der dot product, kann man den Cosinus des Winkel sollten Sie drehen mitcos(angle)=dot(a,b)/(length(a)length(b))
, und mitacos
können Sie eindeutig bestimmen, den Winkel (@Archie danke für den Hinweis auf meine früheren Fehler). An dieser Stelle haben Sie die Achse-Winkel-Darstellung Ihrer rotation.Die restlichen arbeiten zu konvertieren, das die Vertretung der Vertretung sind Sie auf der Suche nach: Euler-Winkel. Conversion-Achse-Winkel, Euler ist ein Weg, es zu tun, wie Sie es gefunden haben. Sie haben, um die degenerierten Fall, wenn
v = [ 0, 0, 0]
, das ist, wenn der Winkel ist entweder 0 oder 180 Grad.Ich persönlich glaube nicht, wie Euler-Winkeln, Sie versauen die Stabilität der app und Sie sind nicht geeignet für die interpolation, siehe auch
Seltsames Verhalten mit android-Ausrichtung sensor
Die Interpolation zwischen Drehung Matrizen
Was haltet Ihr von dieser Methode:euclideanspace.com/maths/geometry/rotations/conversions/...
Ja, richtig, fest. Tatsächlich ist die dot-Produkt-und
acos
ist genug.Ja, das scheint ein einfacher Weg, es zu tun.
InformationsquelleAutor Ali
Zunächst müssten Sie abziehen, ein Vektor von Vektoren, die zwei, um zu bekommen, Vektor, zwei relativ zum Vektor. Mit diesen Werten können Sie berechnen, Euler-Winkel.
Zu verstehen, die Berechnung von Vektor-zu Euler intuitiv, können sich vorstellen, eine Kugel mit dem radius 1 und den Ursprung in den Mittelpunkt. Ein Vektor repräsentiert einen Punkt auf der Oberfläche in 3D-Koordinaten. Dieser Punkt kann auch definiert werden, indem sphärische 2D-Koordinaten: breiten-und Längengrad, pitch und yaw jeweils.
In Ordnung "Rollen <- pitch <- yaw" - Berechnung kann wie folgt erledigt werden:
Zur Berechnung der Gier-Sie berechnen die Tangente der beiden planaren Achsen (x und z) unter Berücksichtigung der Quadranten.
Pitch ist ganz das gleiche, aber als sein Flugzeug ist gedreht, zusammen mit der Gier der 'angrenzenden' ist auf zwei Achsen. Um die zu finden, deren Länge wir verwenden den Satz des Pythagoras.
Hinweise:
InformationsquelleAutor Vectasus
Erste Rotation Matrix in MATLAB sehr einfach ist
z.B.
InformationsquelleAutor Sahil Kalra