Skip to contents

An vector of orientations, each represented by a vector of numbers. Each of these types stores orientations as rows of a matrix in slot x.

The eulerzyx class uses 3 Euler angles in the roll-pitch-yaw scheme (rotation about Z axis, then Y axis, then X axis).

The eulerzxz class uses 3 Euler angles in the X system scheme (rotation about Z axis, then X axis, then Z axis again).

The rotvector class uses the 9 components of a 3 x 3 rotation matrix, stored in column-major order.

The quaternion class uses the 4 components of a unit quaternion.

The skewvector class uses the 3 non-zero components of a skew-symmetric matrix, where (x,y,z) stores the matrix ((0, -z, y), (z, 0, -x), (-y, x, 0)).

Objects from the Class

Objects of each class can be created by calls to the corresponding constructor functions: eulerzyx, eulerzxz, rotvector, quaternion, skewmatrix and skewvector.

Slots

x:

An n x m matrix object holding the vector representations, where m is 3, 4, or 9.

Extends

Class "orientation", directly. Class "vector", by class "orientation".

Methods

[, [<-

Extract or assign to subvector

[[, [[<-

Extract or assign to an entry

length

The length of the orientation vector

coerce

Coerce methods are defined to convert all orientation descendants from one to another, and to coerce an appropriately shaped matrix or array to a rotmatrix

Author

Duncan Murdoch

See also

Constructor and coercion functions rotmatrix, eulerzyx, eulerzxz, rotvector, quaternion, and skewvector.

Classes matrix-classes, orientation-class.

Examples

x <- eulerzyx(0,pi/4,0)
x
#> An object of class "eulerzyx"
#> Slot "x":
#>      psi     theta phi
#> [1,]   0 0.7853982   0
#> 
eulerzxz(x)
#> An object of class "eulerzxz"
#> Slot "x":
#>           phi     theta       psi
#> [1,] 1.570796 0.7853982 -1.570796
#> 
rotmatrix(x)
#> An object of class "rotmatrix"
#> Slot "x":
#> , , 1
#> 
#>           [,1] [,2]       [,3]
#> [1,] 0.7071068    0 -0.7071068
#> [2,] 0.0000000    1  0.0000000
#> [3,] 0.7071068    0  0.7071068
#> 
#> 
rotvector(x)
#> An object of class "rotvector"
#> Slot "x":
#>           [,1] [,2]      [,3] [,4] [,5] [,6]       [,7] [,8]      [,9]
#> [1,] 0.7071068    0 0.7071068    0    1    0 -0.7071068    0 0.7071068
#> 
quaternion(x)
#> An object of class "quaternion"
#> Slot "x":
#>      q1        q2 q3        q4
#> [1,]  0 0.3826834  0 0.9238795
#> 
skewvector(x)
#> An object of class "skewvector"
#> Slot "x":
#>      [,1]      [,2] [,3]
#> [1,]    0 0.7853982    0
#>