一图详解仿射变换的旋转矩阵推导
如图所示,有三条线段OA,OS,OT,线段端点的坐标分别是O(0,0),A(b,0),S(j,k),T(m,n);
三条线段的关系如下:
OA顺时针旋转α度得到OS,OA顺时针旋转(α+β)度得到OT,OS顺时针旋转β度得到OT。
因为三条线段的长度相等,所以由三角函数可得到
1、OA顺时针旋转α度得到OS:
j=cos(α)*b
k=sin(α)*b
2、OA顺时针旋转(α+β)度得到OT:
m=cos(α+β)*b=(cosαcosβ-sinαsinβ)*b
n=sin(α+β)*b=(sinαcosβ+sinβcosα)*b
3、OS顺时针旋转β度得到OT:
由1得:
j/b=cos(α)
k/b=sin(α)
由2得:
m/b=cos(α+β)*b=(cosαcosβ-sinαsinβ)
n/b=sin(α+β)*b=(sinαcosβ+sinβcosα)
将j/b、k/b带入2中,可解得:
m=j*cosβ-k*sinβ
n=j*sinβ+k*sinβ
转化成矩阵形式如下: