ncepudu 发表于 2011-1-27 23:43:09

到底是程序的问题还是思路的问题呢?

昨天想起之前考虑过标准正交基和旋转变换矩阵的问题,所以编了一个小程序,如下:
BRP = eul2r(pi/6,pi/4,pi/3);
L1P = [-0.866;0;-0.5]; L2P = ;
L1B = BRP*L1P; L2B = BRP*L2P;
B = Ortho_basis(L1B,L2B);
P = Ortho_basis(L1P,L2P);
R = B1*inv(P);

function A = Ortho_basis(a1,a2)
    beta1 = a1;
    beta2 = a2-(dot(a2,beta1)/dot(beta1,beta1))*beta1;
    a1 = beta1/norm(beta1);
    a2 = beta2/norm(beta2);
    a3 = cross(a1,a2);
    A = ;
end
本意是想给定一个欧拉旋转矩阵BRP和P坐标系中两个单位向量L1P和L2P
将这两个单位向量经BRP旋转变换后得到在B坐标系中相应的单位向量L1B=BRP*L1P和L2B=BRP*L2P,
然后想通过L1P与L1B,L2P与L2B,这两对向量之间的关系反求出其欧拉旋转变换矩阵R,
反求思路是由L1P和L2P得出P坐标系中的标准正交基P,由L1B和L2B得出B坐标系中的标准正交基B,然后由R*P=B   R=B*inv(P)算出R

如果这个思路没问题的话,应该是R=BRP的吧,但是为什么我得出的R不等于BRP呢?
请教下高手,是我的程序有错误,还是利用标准正交基来求欧拉旋转变换矩阵的思路就不对呢?
页: [1]
查看完整版本: 到底是程序的问题还是思路的问题呢?