绕任意向量旋转分解到坐标系旋转

如需转载请标明出处:http://blog.csdn.net/itas109

QQ技术交流群:129518033



一、原理解析

假设向量为(a,b,c),旋转角度为θ。

绕任意向量旋转的过程分解如下:

1. 绕x轴旋转角度α使指定的旋转轴在xOz平面上
2. 绕y轴旋转角度β使指定的旋转轴与z轴重合
3. 绕z轴旋转角度θ
4. 绕y轴旋转角度-β
5. 绕x轴旋转角度-α

最终我们要做的就是根据(a,b,c)和θ确定出αβ

2、αβ的求解

注意:这里使用的坐标系为右手坐标系

上述问题的求解可以转化为下述问题

变换AV,使过原点的向量V=(a,b,c)z轴的正向一致。

求解过程:

(1)Vx轴旋转到xz平面上;

绕任意向量旋转分解到坐标系旋转_第1张图片

(2)再绕y轴旋转使之与z轴正向重合。

绕任意向量旋转分解到坐标系旋转_第2张图片

旋转角度的确定:绕x轴旋转的角度α等于向量Vyz平面上的投影向量与z轴正向的夹角。

其实就是V1和V组成的面上的所有经过原点的向量要想通过X轴旋转到XOZ都是转的角度α。

也就是说这里找了一个这个由V1和V组成的面比较好求的向量来计算角度α,也就是下图中的V1向量。

绕任意向量旋转分解到坐标系旋转_第3张图片

根据向量的点乘和叉乘可以计算出α:


同理,可以计算出β:





参考:

http://www.cnblogs.com/graphics/archive/2012/08/10/2627458.html

http://www.cnblogs.com/yiyezhai/p/3176725.html

http://wenku.baidu.com/link?url=0Iqu_crCHoc8sXgDtSojpojn9MYzgUKucUHdG-K1r1WmR3W6W1_BDzuP0TxC8PcfR7SqJFNa0b1P4LsN86xHo6Z1hhztEI1F6p8_q30mJcm


如需转载请标明出处:http://blog.csdn.net/itas109

QQ技术交流群:129518033


你可能感兴趣的:(VTK)