首页 > 代码库 > 2d,3d中旋转推导
2d,3d中旋转推导
二维绕原点旋转,其实点为(x,y),旋转角度为黄色标注的角度。
推导过程如下:
x‘ = r cos(al+be);
y‘ = r sin(al+be);
x ‘= rcosalcosbe-rsinalsinbe;
y‘= rsinalcosb+rcosalsinbe;
又因为rcosal= x; rsinal=y;
所以x‘=xcosbe-ysinbe; y‘=xsinbe+ycosbe
即为求的的旋转后坐标为(xcosbe-ysinbe,xsinbe+ycosbe);
3d中旋转(摘自网络中博客)
开始的时候,自己很难推导出来,一是自己空间几何不怎么样,而是自己不会思考动脑。 以前看书不太懂,现在看其实自己在推导过程中对单位向量没有吃透,很多过程中都需要单位向量和长度来计算一个向量,以前没有意思到。3d推导确实复杂些,但也没有那没复杂的理解不了。
左手坐标系下,一点绕任意轴旋转θ角的右乘矩阵:
其中C为cosθ,S为sinθ,A为单位化的旋转轴
以下推导均为左手坐标
首先我们将P看成从原点出发的自由向量,将其分解为平行于轴A与垂直于轴A的分量A1,A2的形式:
(公式1)
如图2:
图2
(公式2)
(公式3)
由于平行分量A1在旋转过程中保持不变,问题就在于垂直分量A2。先将A2旋转θ度后(A3)再加上A1就可以得到最终的旋转结果。如图3:
图3蓝色的点为P点旋转θ度后的位值
旋转后的位置点P'为:
(公式4)
因为A2到A3的旋转是在垂直于A轴平面内进行的,所以可以将A3分解为A2与A2逆时针方向旋转90度的向量A4上的两个分量的形式。如图4:
图4
下面我们来求A4
A2可以看成φ的对边,如图5:
图5
A2的长度为:
(公式5)
我们想要的向量A4正好为:
(公式6)
(公式7)
因为A为单位向量所以(公式7)与(公式5)相等,这样长度相等并且同时垂直于A1,A2,所以就是我们要求的A4。
接下为求A3,我们用一个垂直于A的平面图来看一下,这样更直接,如图6:
图6
A2'与A4'分别为A3在A2与A4上的分量。
(公式8)
(公式9)
(公式10)
因为:A2,A3,A4的长度都相等所以上面的两式化简为:
(公式11)
(公式12)
将以上公式代入到(公式4)中计算最终结果:
整理后得:
(公式13)
设:
写成矩阵的形式为:
(公式14)
(公式15)
(公式16)
代入(公式13)得:
最终齐次的旋转矩阵为:
(公式17)
2d,3d中旋转推导