grasp
All Data Structures Namespaces Functions Modules
axis2dcm.m
1 function R=axis2dcm(v)
2 
3 if (length(v)<4)
4  disp('failed');
5  R=[];
6  return;
7 end
8 
9 R=eye(4,4);
10 theta=v(4);
11 
12 if (theta==0)
13  return;
14 end
15 
16 c=cos(theta);
17 s=sin(theta);
18 C=1-c;
19 
20 xs =v(1)*s;
21 ys =v(2)*s;
22 zs =v(3)*s;
23 xC =v(1)*C;
24 yC =v(2)*C;
25 zC =v(3)*C;
26 xyC=v(1)*yC;
27 yzC=v(2)*zC;
28 zxC=v(3)*xC;
29 
30 R(1,1)=v(1)*xC+c;
31 R(1,2)=xyC-zs;
32 R(1,3)=zxC+ys;
33 R(2,1)=xyC+zs;
34 R(2,2)=v(2)*yC+c;
35 R(2,3)=yzC-xs;
36 R(3,1)=zxC-ys;
37 R(3,2)=yzC+xs;
38 R(3,3)=v(3)*zC+c;
39