首页 > 代码库 > 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中旋转推导