from_euler#
- classmethod Rotation.from_euler(cls, seq, angles, degrees=False)#
Initialisierung aus Euler-Winkeln.
Rotationen im 3-D können durch eine Sequenz von 3 Rotationen um eine Sequenz von Achsen dargestellt werden. Theoretisch reichen beliebige drei Achsen, die den 3-D Euklidischen Raum aufspannen. In der Praxis werden die Rotationsachsen so gewählt, dass sie die Basisvektoren sind.
Die drei Rotationen können entweder in einem globalen Bezugssystem (extrinsisch) oder in einem körperzentrierten Bezugssystem (intrinsisch) erfolgen, das an das rotierende Objekt angehängt ist und sich mit ihm bewegt [1].
- Parameter:
- seqstring
Gibt die Reihenfolge der Achsen für die Rotationen an. Bis zu 3 Zeichen aus der Menge {‘X’, ‘Y’, ‘Z’} für intrinsische Rotationen oder {‘x’, ‘y’, ‘z’} für extrinsische Rotationen. Extrinsische und intrinsische Rotationen können nicht in einem Funktionsaufruf gemischt werden.
- anglesfloat oder array_like, shape (N,) oder (N, [1 oder 2 oder 3])
Euler-Winkel, angegeben in Radiant (degrees ist False) oder Grad (degrees ist True). Für ein einzelnes Zeichen seq kann angles sein:
ein einzelner Wert
array_like mit shape (N,), wobei jedes angle[i] einer einzelnen Rotation entspricht
array_like mit shape (N, 1), wobei jedes angle[i, 0] einer einzelnen Rotation entspricht
Für 2- und 3-stellige seq kann angles sein:
array_like mit shape (W,), wobei W die Breite von seq ist, was einer einzelnen Rotation mit W Achsen entspricht
array_like mit shape (N, W), wobei jedes angle[i] einer Sequenz von Euler-Winkeln entspricht, die eine einzelne Rotation beschreibt
- degreesbool, optional
Wenn True, wird angenommen, dass die gegebenen Winkel in Grad angegeben sind. Standard ist False.
- Rückgabe:
- rotation
RotationInstanz Objekt, das die durch die Sequenz von Rotationen um gegebene Achsen mit gegebenen Winkeln dargestellte Rotation enthält.
- rotation
Referenzen
Beispiele
>>> from scipy.spatial.transform import Rotation as R
Initialisierung einer einzelnen Rotation um eine einzelne Achse
>>> r = R.from_euler('x', 90, degrees=True) >>> r.as_quat().shape (4,)
Initialisierung einer einzelnen Rotation mit einer gegebenen Achsenreihenfolge
>>> r = R.from_euler('zyx', [90, 45, 30], degrees=True) >>> r.as_quat().shape (4,)
Initialisierung eines Stacks mit einer einzelnen Rotation um eine einzelne Achse
>>> r = R.from_euler('x', [90], degrees=True) >>> r.as_quat().shape (1, 4)
Initialisierung eines Stacks mit einer einzelnen Rotation mit einer Achsenreihenfolge
>>> r = R.from_euler('zyx', [[90, 45, 30]], degrees=True) >>> r.as_quat().shape (1, 4)
Initialisierung mehrerer elementarer Rotationen in einem Objekt
>>> r = R.from_euler('x', [90, 45, 30], degrees=True) >>> r.as_quat().shape (3, 4)
Initialisierung mehrerer Rotationen in einem Objekt
>>> r = R.from_euler('zyx', [[90, 45, 30], [35, 45, 90]], degrees=True) >>> r.as_quat().shape (2, 4)