贡献者: addis
1. 主动理解
主动理解即坐标系只有一个,$ \boldsymbol{\mathbf{r}} = (x, y)$ 变换后得到另一个向量 $ \boldsymbol{\mathbf{r}} ' = (x',y')$。
- 旋转矩阵(逆时针为正)为 $ \boldsymbol{\mathbf{R}} (\theta)$,即 $ \boldsymbol{\mathbf{r}} ' = \boldsymbol{\mathbf{R}} (\theta) \boldsymbol{\mathbf{r}} $ 把 $ \boldsymbol{\mathbf{r}} $ 关于坐标原点旋转 $\theta$ 弧度得到 $ \boldsymbol{\mathbf{r}} '$。
- 缩放常数 $s$ 可以把一点关于原点收缩:$ \boldsymbol{\mathbf{r}} ' = s \boldsymbol{\mathbf{r}} = (sx, sy)$。
- 平移向量 $ \boldsymbol{\mathbf{d}} = (d_x,d_y)$ 可以描述平移 $ \boldsymbol{\mathbf{r}} ' = \boldsymbol{\mathbf{r}} + \boldsymbol{\mathbf{d}} = (x+d_x,y+d_y)$。
如果三种变换依次作用在 $ \boldsymbol{\mathbf{r}} $ 上,但顺序不同,会导致最终结果相差一个平移。例如:
“平移,旋转,缩放” 为
\begin{equation}
\boldsymbol{\mathbf{r}} ' = s \boldsymbol{\mathbf{R}} ( \boldsymbol{\mathbf{r}} + \boldsymbol{\mathbf{d}} ) = s \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{r}} + s \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{d}} ~.
\end{equation}
“旋转,平移,缩放” 为
\begin{equation}
\boldsymbol{\mathbf{r}} ' = s( \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{r}} + \boldsymbol{\mathbf{d}} ) = s \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{r}} + s \boldsymbol{\mathbf{d}} ~.
\end{equation}
“缩放,平移,旋转” 为
\begin{equation}
\boldsymbol{\mathbf{r}} ' = \boldsymbol{\mathbf{R}} (s \boldsymbol{\mathbf{r}} + \boldsymbol{\mathbf{d}} ) = s \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{r}} + \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{d}} ~.
\end{equation}
可见使用
矩阵乘法分配律拆括号后,得到 “旋转,缩放,平移” 变换。第一项的旋转缩放都是相同的,只有平移常数不同。也就是说,
任何一种顺序都可以覆盖所有可能组合变换。
另外注意旋转和缩放都是线性变换,且二者顺序可交换,即 $s( \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{r}} ) = \boldsymbol{\mathbf{R}} (s \boldsymbol{\mathbf{r}} )$,但平移并不是线性变换。
2. 逆变换
容易发现,这三个变换的逆变换分别为 $ \boldsymbol{\mathbf{R}} ^{-1}$,$1/s$ 和 $- \boldsymbol{\mathbf{d}} $。组合变换的逆变换就是按照相反的顺序依次做逆变换。例如式 3 中 “缩放,平移,旋转” 的逆变换为 “逆旋转,逆平移,逆缩放”
\begin{equation}
\boldsymbol{\mathbf{r}} = \frac1s ( \boldsymbol{\mathbf{R}} ^{-1} \boldsymbol{\mathbf{r}} ' - \boldsymbol{\mathbf{d}} )~.
\end{equation}
3. 关于任意点旋转
一些初学者在学习旋转矩阵时会疑惑为什么只能关于原点旋转。因为矩阵只能表示线性变换,而关于任意点的旋转不是线性变换。
假设旋转中心为 $ \boldsymbol{\mathbf{c}} $,那么要关于该点旋转可以表示为(式 5 )
\begin{equation}
\boldsymbol{\mathbf{r}} ' = \boldsymbol{\mathbf{R}} ( \boldsymbol{\mathbf{r}} - \boldsymbol{\mathbf{c}} ) + \boldsymbol{\mathbf{c}} = \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{r}} + ( \boldsymbol{\mathbf{c}} - \boldsymbol{\mathbf{R}} \boldsymbol{\mathbf{c}} )~.
\end{equation}
第一个等号是说,要关于某点旋转,我们可以先用平移把旋转中心移动到原点,旋转完成后再移回去。而第二个等号告诉我们,
关于某点旋转等效于关于原点旋转再进行一个平移。这就是为什么我们在讨论三种变换的组合时只需要默认旋转是关于原点就可以包含所有情况。
4. 被动理解
被动理解的意思是,存在两个坐标系 $S,S'$,当 $S'$ 相对 $S$ 旋转,缩放或平移后,$S$ 中一个向量 $ \boldsymbol{\mathbf{r}} $ 在 $S'$ 中的坐标是什么。也就是同一个向量在不同坐标系中的坐标如何变换。
未完成:用 $ \boldsymbol{\mathbf{R}} ^{-1}$,$1/s$ 和 $- \boldsymbol{\mathbf{d}} $ 即可!
致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者
热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。