Last change
on this file since 37 was
37,
checked in by (none), 14 years ago
|
Added original make3d
|
-
Property svn:executable set to
*
|
File size:
653 bytes
|
Rev | Line | |
---|
[37] | 1 | function M = vgg_rotmat_from_exp(r)
|
---|
| 2 | % VGG_ROTMAT_FROM_EXP Convert from exponential to matrix rotation parameterization.
|
---|
| 3 | % R = vgg_rotmat_from_exp([r1, r2, r3]) generates the rotation
|
---|
| 4 | % matrix with axis along r, angle = norm(r).
|
---|
| 5 | % This is equivalent to expm(cross_matrix(r)) but more stable.
|
---|
| 6 |
|
---|
| 7 | % Andrew Fitzgibbon <awf@robots.ox.ac.uk>
|
---|
| 8 |
|
---|
| 9 | H = [0, -r(3), r(2); r(3), 0, -r(1); -r(2), r(1), 0];
|
---|
| 10 |
|
---|
| 11 | if 1
|
---|
| 12 | angle = norm(r);
|
---|
| 13 | if (angle < eps)
|
---|
| 14 | M=eye(3,3);
|
---|
| 15 | else
|
---|
| 16 | ef = sin(angle)/angle;
|
---|
| 17 | gee = (1.0 - cos(angle))/ (angle*angle);
|
---|
| 18 | M = (H*H)*gee + H*ef + eye(3,3);
|
---|
| 19 | end
|
---|
| 20 | else
|
---|
| 21 | M = expm(H);
|
---|
| 22 | end
|
---|
Note: See
TracBrowser
for help on using the repository browser.