此处推导只针对二维情况,三维情况肯定也是合适的,暂时没有推导
假设二维平面中有两条曲线,求一组变换矩阵,使得两条曲线的间距最小,自然而然大家第一个想到的就应该是最小二乘法,推导步骤如下所示

但是在求得theta后,因为有正负之分,可能会相差180°,此时,再需比较一下两次变换后的距离,即可求得所需旋转矩阵及平移量

###code:

sx1=sum(p1(:,1));sy1=sum(p1(:,2));
sx2=sum(p2(:,1));sy2=sum(p2(:,2));
sx1y2=sum(p1(:,1).*p2(:,2));
sy1x2=sum(p1(:,2).*p2(:,1));
sy1y2=sum(p1(:,2).*p2(:,2));
sx1x2=sum(p1(:,1).*p2(:,1));
theta =atan((sx1*sy2-len1*sx1y2-sy1*sx2+len1*sy1x2) /...
    (sy1*sy2-len1*sy1y2+sx1*sx2-len1*sx1x2))
M=[cos(theta) sin(theta) 0;-sin(theta) cos(theta) 0; 0 0 0];
offx=(sx1-cos(theta)*sx2-sin(theta)*sy2)/len1;
offy=(sy1-cos(theta)*sy2+sin(theta)*sx2)/len1;