Is this the correct way to calculate a rotation matrix for a given angle around a unit vector, i am having problems verifying it.
function R = rot(k,fi)
% This is just to make it easier to read!
x = k(1);
y = k(2);
z = k(3);
% Create a 3x3 zero matrix
R = zeros(3,3);
% We use the formula for rotating a matrix about a unit vector k
R(1,1) = cos(fi)+x^2*(1-cos(fi));
R(1,2) = x*y*(1-cos(fi))-z*sin(fi);
R(1,3) = x*y*(1-cos(fi))+y*sin(fi);
R(2,1) = y*x*(1-cos(fi))+z*sin(fi);
R(2,2) = cos(fi)+y^2*(1-cos(fi));
R(2,3) = y*z*(1-cos(fi))-x*sin(fi);
R(3,1) = z*x*(1-cos(fi))-y*sin(fi);
R(3,2) = z*y*(1-cos(fi))+x*sin(fi);
R(3,3) = cos(fi)+z^2*(1-cos(fi));
end
I am using this algorithm
