5、求绕平面上任意点旋转的变换矩阵。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5、求绕平面上任意点旋转的变换矩阵。相关的知识,希望对你有一定的参考价值。

(x,y)绕原点逆时针旋转a,
x'=xcosa-ysina;
y'=xsina+ycosa;
即(x',y')'=(cosa,-sina;sina,cosa)*(x,y)'
任意点(m,n),有:
(x'-m,y'-n)'=(cosa,-sina;sina,cosa)*(x-m,y-n)',
旋转变换矩阵为:
| cosa -sina |
| sina cosa |
参考技术A

diagram

参考技术B nnnn

旋转变换的理解

上图将向量(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} \\]


\\(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} \\]

以上是关于5、求绕平面上任意点旋转的变换矩阵。的主要内容,如果未能解决你的问题,请参考以下文章

我可以从旋转/平移向量创建变换矩阵吗?

计算机图形学实验二——二维图形几何变换及裁剪

矩阵变换:沿任意轴旋转及其推导

单应矩阵

史上最简SLAM零基础解读 - 旋转平移矩阵→欧式变换推导

旋转变换的理解