rigid.m
来自「求刚体变换的刚体矩阵的开源程序」· M 代码 · 共 41 行
M
41 行
function [R,t]=rigid(P,Q)
u=size(P);N=u(2);
l=[0;0;0];m=zeros(u);
k=l;n=m;t=k;
for i=1:N
l=l+P(:,i);
end
l=l/N;
for j=1:N
m(:,j)=P(:,j)-l;
end
for i=1:N
k=k+Q(:,i);
end
k=k/N;
for j=1:N
n(:,j)=Q(:,j)-k;
end
R=round(m,n);
t=k-R*l;
function r=round(A,B)
u=size(A);N=u(2);
C=zeros(3,3);
for j=1:3
for i=1:N
C(:,j)=C(:,j)+B(j,i)*A(:,i);
end
end
[x,y,z]=svd(C);
r=z*x';
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?