旋转角度
已知两向量a=(x1,y1,z1)和b=(x2,y2,z2),
两向量的旋转角度,可以通过点乘获得
a•b=|a|*|b|*cosθ
通过cosθ反转可求得旋转角度
旋转轴
两个(不平行)的向量,决定一个平面,
而平面内任意向量,都可以通过旋转角度θ获得,所以,该平面的法向量一定是旋转轴(旋转轴不一定是该平面的法向量)
而法向量可以通过两向量的叉乘得到,可参考
数学基础知识01
旋转矩阵
(旋转矩阵)是基于(旋转轴)和(旋转角度)推导出来的
具体推导公式,可参考前辈的以下网址
/xpvincent/archive//02/15/2912836.html
推导出来的(旋转矩阵)为
公式说明
假设(旋转轴)的向量n=(nx, ny, nz);
I是单位矩阵,A是向量n的反对称矩阵,即
反对称矩阵如何求,详情可看
数学基础知识01
而θ旋转角度
最后求出的旋转矩阵如下
通过旋转矩阵可以求出(向量a)绕(旋转轴)旋转(角度θ)得到的(向量b)
设3X3的(旋转矩阵)为R
v'= Rv
除此之外,在后面会遇到一种特殊的情况,(摄像机的移动)
已知(旋转轴向量n),已知(需要旋转的向量a),已知(需要旋转的向量a,逆时针旋转90度得到的向量b)
而且(向量n)是,(向量a)和(向量b),所在平面的法向量
通过旋转矩阵,我们可以得到
化简整合有
当(向量n)是法向量的时候,我们可以清楚地看见
所以
把vx2代入公式,有
同理,把新得到的向量,逆时针旋转90度,可以获得,向量b旋转同样角度后,得到的新向量
由x坐标变化,我们可以轻易获得向量变化之后的,y坐标 和 z坐标