Given input:
r: angle to rotate, in rads
Axis: axis of rotation, defined as a 3point which connects to the origin.
Output:
3x3 Matrix R such that for an arbitrary point v, Rv is the point corresponding to v rotated around the Axis.
% example:
% rotate around a random direction a random amount and then back
% the result should be an Identity matrix
r = rand(4,1);
rotationmat3D(r(1),[r(2),r(3),r(4)]) * rotationmat3D(-r(1),[r(2),r(3),r(4)])
ans =
1.0000 0.0000 0.0000
0.0000 1.0000 0
0.0000 0 1.0000
%
% example2:
% rotate around z axis 45 degrees
Rtest = rotationmat3D(pi/4,[0 0 1])
Rtest =
0.7071 -0.7071 0
0.7071 0.7071 0
0 0 1.0000
|