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 + -
显示快捷键?