Previous: Interpolation on Scattered Data, Up: Geometry [Contents][Index]

Also included in Octave’s geometry functions are primitive functions to enable
vector rotations in 3-dimensional space. Separate functions are provided for
rotation about each of the principle axes, `x`, `y`, and `z`.
According to Euler’s rotation theorem, any arbitrary rotation, `R`, of any
vector, `p`, can be expressed as a product of the three principle
rotations:

p' = Rp = Rz*Ry*Rx*p

`T`=**rotx***(*`angle`)-
`rotx`

returns the 3x3 transformation matrix corresponding to an active rotation of the vector about the x-axis by the specified`angle`, given in degrees, where a positive angle corresponds to a counterclockwise rotation when viewing the y-z plane from the positive x side.The form of the transformation matrix is:

| 1 0 0 | T = | 0 cos(

`angle`) -sin(`angle`) | | 0 sin(`angle`) cos(`angle`) |This rotation matrix is intended to be used as a left-multiplying matrix when acting on a column vector, using the notation

`v`=`T``u`. For example, a vector,`u`, pointing along the positive y-axis, rotated 90-degrees about the x-axis, will result in a vector pointing along the positive z-axis:>> u = [0 1 0]' u = 0 1 0 >> T = rotx (90) T = 1.00000 0.00000 0.00000 0.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 >> v = T*u v = 0.00000 0.00000 1.00000

`T`=**roty***(*`angle`)-
`roty`

returns the 3x3 transformation matrix corresponding to an active rotation of a vector about the y-axis by the specified`angle`, given in degrees, where a positive angle corresponds to a counterclockwise rotation when viewing the z-x plane from the positive y side.The form of the transformation matrix is:

| cos(

`angle`) 0 sin(`angle`) | T = | 0 1 0 | | -sin(`angle`) 0 cos(`angle`) |This rotation matrix is intended to be used as a left-multiplying matrix when acting on a column vector, using the notation

`v`=`T``u`. For example, a vector,`u`, pointing along the positive z-axis, rotated 90-degrees about the y-axis, will result in a vector pointing along the positive x-axis:>> u = [0 0 1]' u = 0 0 1 >> T = roty (90) T = 0.00000 0.00000 1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 0.00000 >> v = T*u v = 1.00000 0.00000 0.00000

`T`=**rotz***(*`angle`)-
`rotz`

returns the 3x3 transformation matrix corresponding to an active rotation of a vector about the z-axis by the specified`angle`, given in degrees, where a positive angle corresponds to a counterclockwise rotation when viewing the x-y plane from the positive z side.The form of the transformation matrix is:

| cos(

`angle`) -sin(`angle`) 0 | T = | sin(`angle`) cos(`angle`) 0 | | 0 0 1 |This rotation matrix is intended to be used as a left-multiplying matrix when acting on a column vector, using the notation

`v`=`T``u`. For example, a vector,`u`, pointing along the positive x-axis, rotated 90-degrees about the z-axis, will result in a vector pointing along the positive y-axis:>> u = [1 0 0]' u = 1 0 0 >> T = rotz (90) T = 0.00000 -1.00000 0.00000 1.00000 0.00000 0.00000 0.00000 0.00000 1.00000 >> v = T*u v = 0.00000 1.00000 0.00000

Previous: Interpolation on Scattered Data, Up: Geometry [Contents][Index]