c++ - 确定从一个平面到另一个平面的旋转角度

  显示原文与译文双语对照的内容
0 0

我们在 3D 空间中有 2个向量 v1,v2. v1和v2属于 2个不同平面 P1,P2. v1和v2相交于点 p(xp,yp,zp) v1:p-> a 和 v2:p-> b,其中 a(xa,ya,za) 和 b(xb,yb,zb) 分别是P1和P2中的2个已知点。 在P1和P2之间的角度"θ"已知,可以用三点p,a,b 来计算。

下面是我的问题:我需要知道应该应用哪些旋转,以便与v2重合。 换句话说:v1是由起始点 p(xp,yp,zp) 和方向( 阿尔法,贝塔,伽玛) v1: [xp,yp,zp,alpha,beta,gamma] 定义的。 v2是由相同的起点 p(xp,yp,zp) 和方向( 。alpha1,,gamma1 ) v2.x 定义以便对 alpha 。beta和gamma进行修改以获得 alpha1,beta,然而,

先谢谢了

拉拉

时间: 原作者:

0 0

看起来你想找出旋转矩阵 [M],所以 {v2} = [M] {v1},其中 {v1} 和 {v2} 是 3 x1的单位向量,[M] 是 3 x3的矩阵。 你可以参考维基百科页面的旋转矩阵这里。 向下滚动到"从轴和角度旋转矩阵"部分,它的中显示给定轴上给定轴的旋转矩阵。 对于你的情况,轴将是交叉产品矢量,角度将是,和v2之间的角度,可以为 acos ( v1点 v2 ) 。

原作者:
...