vrrotvec2mat, , , . , , . .
, , 2D 3D, , (.. y = A*x, x - , ), . . vector v, , 2D 3D .
- axis-angle, . k, , v right- .
, :

:
k , v 45 -. 180 , k, , , vrot - . v|| v_|_ - v k. , , . , .
, , , , , , x, y z.
, , , . , :

:
, vrrotvec2mat, , . / . , vrrotvec2mat vrrotmat2vec .
, , 4- , x, y z k, , theta, . vrrotvec2mat 4- , . , , theta .
, . k z, (0,0,1). 180 , pi... :
>> M = vrrotvec2mat([0 0 1 pi])
M =
-1.0000 -0.0000 0
0.0000 -1.0000 0
0 0 1.0000
180 z, z. , :

theta = pi , , M, vrrot2vec2mat. , , ... options. , Rotrigues Rotation , . options epsilon, - , , . 1e-12 IMHO.
epsilon, , epsilon, ... - :
>> options.epsilon = 1e-15;
>> M = vrrotvec2mat([0 0 1 pi], options);
, , , , v - - , (x,y,z) = (1,0,1). , xz , (x,y,z) = (-1,0,1):
>> M*[1;0;1]
ans =
-1.0000
0.0000
1.0000
, Rotrigues Rotation:
>> v = [1;0;1];
>> k = [0;0;1];
>> theta = pi;
>> vrot = v*cos(theta) + cross(k,v)*sin(theta) + k*(k.'*v)*(1-cos(theta))
vrot =
-1.0000
0.0000
1.0000
, , x, y z.