二维旋转变换推导

401655-20180226102742807-436666032.png

上图将向量(x,y)旋转到\((x_1,y_1)\),求旋转矩阵。即已知角度\(\theta\),问题表述为矩阵方程:
\[ \begin{bmatrix} x_1 \\ y_1 \end{bmatrix} = A* \begin{bmatrix} x \\ y \end{bmatrix} \]
求变换矩阵\(A\)

方法一

利用平面几何的方法。
\[ \begin{split} x_1 = {}&cos(\theta+\alpha)*r\\ = {}&cos(\theta)*cos(\alpha)*r - sin(\theta)*sin(\alpha)*r\\ = {}& cos(\theta)*x-sin(\theta)*y \end{split} \]

\[ \begin{split} y_1 = {}&sin(\theta+\alpha)*r\\ = {}&sin(\theta)*cos(\alpha)*r+cos(\theta)*sin(\alpha)*r\\ = {}&sin(\theta)*x + cos(\theta)*y \end{split} \]
这个线性方程组写成矩阵形式,可得
\[ A = \begin{bmatrix} cos(\theta) & -sin(\theta)\\ sin(\theta) & cos(\theta) \end{bmatrix} \]

方法二

利用线性变换的方法

\(R^2\)中的任意一点(x,y)经过旋转\(\theta\)后变为(x1,y1),求旋转矩阵。

这是一个线性变换,设变换为

\[ T(X) = AX \]
\(X\)为一个\(R^2\)的向量,按题意即是求变换矩阵\(A\)

\(I\)\(R^2\)的单位矩阵,\(e\)为单位列向量。即:

\[ I = \begin{bmatrix} 1&0\\ 0&1 \end{bmatrix} =(e1,e2) \]

按照直角坐标系理解,e1就是x轴上的(1,0)点,e2就是y轴上的(0,1)点。

\[ X = x*e1 + y*e2 \]

由于是线性变换,所以

\[ T(X) = T(x*e1 + y*e2) = x*T(e1) + y*T(e2) =\begin{bmatrix} T(e1)&T(e2) \end{bmatrix}* \begin{bmatrix} x\\y \end{bmatrix} \]

所以

\[ A =\begin{bmatrix} T(e1)&T(e2) \end{bmatrix} \]

401655-20180226152256166-1629365295.png
\(T(e)\)通过平面几何可以很容易求出来。三角形的斜边长度是1,角度是\(\theta\),那么对边是\(sin(\theta)\),即x坐标,邻边是\(cos(\theta)\),即y坐标。

\[ T(e1) = \begin{bmatrix} cos(\theta)\\ sin(\theta) \end{bmatrix} \]

同理求得:

\[ T(e2) = \begin{bmatrix} -sin(\theta)\\ cos(\theta) \end{bmatrix} \]
因为旋转到x轴的负方向,所以取负值。

所以

\[ A = \begin{bmatrix} cos(\theta)&-sin(\theta)\\ sin(\theta)&cos(\theta) \end{bmatrix} \]

转载于:https://www.cnblogs.com/WeyneChen/p/8471884.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值