二维坐标的旋转平移缩放

本文原来发布在cnblogs上,现在移动到我个人博客,并进行了一些修改。

1.坐标表达形式

可以将二维坐标表达为矩阵 \( p=[x,y,1]^T \)形式,其中,x,y为二维坐标,1为对二维坐标的三维扩充,即将二维坐标平面上的点移动到三维坐标面\(z=1\)上来,这样的变化并没改变图形的形状,这种变化叫做齐次变换。

2.平移

p点移动\((dx,dy)\) 可以用如下关系表示:$$pt’ = \begin{bmatrix} 1 & 0 & dx \\ 0 & 1 & dy \\ 0 & 0& 1\end{bmatrix}\begin{bmatrix}x \\ y\\ 1\end{bmatrix}=\begin{bmatrix}x+dx \\ y+dy \\ 1 \end{bmatrix}$$

3.缩放

p点x,y坐标分别缩放\(s_x,s_y\) 可用如下关系表示:$$pt’ = \begin{bmatrix} s_x& 0&0 \\ 0& s_y & 0 \\ 0 & 0& 1\end{bmatrix}\begin{bmatrix}x \\ y\\ 1\end{bmatrix}=\begin{bmatrix}s_x x \\ s_y y \\ 1\end{bmatrix}$$

4.旋转

p 点绕原点逆时针旋转角度t,可以用如下关系表示:$$pt’ = \begin{bmatrix} cos(t)& -sin(t)&0 \\ sin(t)& cos(t) & 0 \\ 0 & 0& 1\end{bmatrix}\begin{bmatrix}x \\ y\\ 1\end{bmatrix}$$

5.综合

当坐标点\(A(x,y)\)需要相对某一点\((x_1,y_1)\)旋转角度t时,首先要将坐标原点移动到此点,意即,首先将要旋转的点投影到以参考点为原点的坐标系,旋转后,再投影回原坐标系,两个坐标系存在平移关系。首先将点A移动\((-x_1,-y_1)\),然后旋转角度t,然后移动\((x_1,y_1)\),三者顺序不能颠倒。

$$A’ =  \begin{bmatrix}1 & 0 & x_1 \\ 0 & 1 & y_1 \\ 0 &0 &1 \end{bmatrix}\begin{bmatrix} cos(t)& -sin(t)&0 \\ sin(t)& cos(t) & 0 \\ 0 & 0& 1\end{bmatrix}\begin{bmatrix}1 & 0 & -x_1 \\ 0 & 1 & -y_1 \\ 0 &0 &1\end{bmatrix}\begin{bmatrix} x \\ y \\ 1\end{bmatrix}$$

注意:变换的顺序是从右到左的,和坐标最近的变换矩阵先执行。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注