Method: NMatrix.x_rotation
- Defined in:
- lib/nmatrix/homogeneous.rb
.x_rotation(angle_in_radians, opts = {}) ⇒ Object
call-seq:
x_rotation(angle_in_radians) -> NMatrix
x_rotation(angle_in_radians, dtype: dtype) -> NMatrix
y_rotation(angle_in_radians) -> NMatrix
y_rotation(angle_in_radians, dtype: dtype) -> NMatrix
z_rotation(angle_in_radians) -> NMatrix
z_rotation(angle_in_radians, dtype: dtype) -> NMatrix
Generate a 4x4 homogeneous transformation matrix representing a rotation about the x, y, or z axis respectively.
-
Arguments :
-
angle_in_radians-> The angle of rotation in radians. -
dtype-> (optional) Default is:float64
-
-
Returns :
-
A homogeneous transformation matrix consisting of a single rotation.
-
Examples:
NMatrix.x_rotation(Math::PI.quo(6)) # =>
1.0 0.0 0.0 0.0
0.0 0.866025 -0.499999 0.0
0.0 0.499999 0.866025 0.0
0.0 0.0 0.0 1.0
NMatrix.x_rotation(Math::PI.quo(6), dtype: :float32) # =>
1.0 0.0 0.0 0.0
0.0 0.866025 -0.5 0.0
0.0 0.5 0.866025 0.0
0.0 0.0 0.0 1.0
66 67 68 69 70 71 72 73 |
# File 'lib/nmatrix/homogeneous.rb', line 66 def x_rotation angle_in_radians, opts={} c = Math.cos(angle_in_radians) s = Math.sin(angle_in_radians) NMatrix.new(4, [1.0, 0.0, 0.0, 0.0, 0.0, c, -s, 0.0, 0.0, s, c, 0.0, 0.0, 0.0, 0.0, 1.0], {dtype: :float64}.merge(opts)) end |