欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 坐标系变换总结

坐标系变换总结

2025/5/23 15:44:40 来源:https://blog.csdn.net/qq_50285142/article/details/142706300  浏览:    关键词:坐标系变换总结

二维情况下的转换

1 缩放变换

形象理解就是图像在x方向和y方向上放大或者缩小。
代数形式:
{ x ′ = k x x y ′ = k y y \begin{cases} x' = k_x x \\ y' = k_y y \end{cases} {x=kxxy=kyy
矩阵形式:
( x ′ y ′ ) = ( k x 0 0 k y ) ( x y ) \begin{pmatrix} x' \\ y' \end{pmatrix} = \begin{pmatrix} k_x & 0 \\ 0 & k_y \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} (xy)=(kx00ky)(xy)
k x = k y k_x = k_y kx=ky 时,是均匀缩放,两个方向同等比例地缩放。

k x = − 1 , k y = 1 k_x = -1, k_y = 1 kx=1,ky=1 ,是镜像变换,类似整个二维平面的图像以y轴为对称轴对称过去一样。

2 切变

平行力作用在物体上的形变
矩阵形式:
( x ′ y ′ ) = ( k x a 0 k y ) ( x y ) = ( k x x + a y k y y ) \begin{pmatrix} x' \\ y' \end{pmatrix} = \begin{pmatrix} k_x & a \\ 0 & k_y \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} k_x x + ay \\ k_y y \end{pmatrix} (xy)=(kx0aky)(xy)=(kxx+aykyy)
x方向上位置坐标整体向右平移。

3 旋转

旋转是指绕着 原点 逆时针旋转 θ \theta θ 的变换。
旋转矩阵如下:

R = ( c o s θ − s i n θ s i n θ c o s θ ) R = \begin{pmatrix} cos \theta & -sin\theta \\ sin \theta & cos \theta \end{pmatrix} R=(cosθsinθsinθcosθ)

( x ′ y ′ ) = ( c o s θ − s i n θ s i n θ c o s θ ) ( x y ) \begin{pmatrix} x' \\ y' \end{pmatrix} = \begin{pmatrix} cos \theta & -sin\theta \\ sin \theta & cos \theta \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} (xy)=(cosθsinθsinθcosθ)(xy)

旋转矩阵是正交阵(转置矩阵等于逆矩阵 R T = R − 1 R^T = R^{-1} RT=R1

正交矩阵性质:

  1. 转置等于逆,绕某个轴旋转 θ \theta θ 的旋转矩阵的逆,就是绕同一轴旋转 − θ -\theta θ
  2. 保持向量长度:作用于任何向量时,向量长度不变
  3. 列向量(行向量)正交且单位化

4 线性变换

线性变换的理解:参考 https://segmentfault.com/a/1190000041138293
线性映射是由向量空间 V → W V\rightarrow W VW 的映射,而线性变换是线性映射的一个特例,是由线性空间 V V V 到其自身的映射。
通俗理解线性变换就是 坐标轴经过 旋转,伸缩 等操作,原坐标轴上的点一同随着变化,然后这些点会在一个新的位置。
( x ′ y ′ ) = ( a b c d ) ( x y ) = ( a x + b y c y + d y ) \begin{pmatrix} x' \\ y' \end{pmatrix} = \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} ax + by \\ cy + dy \end{pmatrix} (xy)=(acbd)(xy)=(ax+bycy+dy)
其中 ( a , c ) , ( b , d ) (a,c),(b,d) (a,c),(b,d) 是新的坐标系下的基方向上的向量。

线性变换的特点:

  • 变换前是直线,变换后依然是直线
  • 原点保持固定不动

举个例子:
原坐标轴x轴和y轴,两个基为 i = ( 1 , 0 ) , j = ( 0 , 1 ) i=(1,0), j=(0,1) i=(1,0),j=(0,1) ,这个轴上的某个向量为 A → = ( 3 , 2 ) T = 3 i + 2 j \overrightarrow A = (3,2)^T = 3i+2j A =(3,2)T=3i+2j

在这里插入图片描述
现在坐标轴有一个线性变换,新的基为 i ′ = ( 1 , − 2 ) , j ′ = ( 3 , 0 ) i'=(1,-2), j'=(3,0) i=(1,2),j=(3,0) ,此时得到的新的向量,但是它相对于基的关系还是不变的,即 A → ′ = 3 i ′ + 2 j ′ \overrightarrow A' = 3i' + 2j' A =3i+2j

新的 A → ′ \overrightarrow A' A 在原坐标系(基)下的坐标可以通过矩阵乘法求得:

A → ′ = ( 1 3 − 2 0 ) ( 3 2 ) \overrightarrow A' = \begin{pmatrix} 1 & 3 \\ -2 & 0 \end{pmatrix} \begin{pmatrix} 3 \\ 2 \end{pmatrix} A =(1230)(32)

在这里插入图片描述
也就是说这个线性变换矩阵是由新的基向量(说基可能不准确,因为基要求模长为1)组成的列向量。

二维线性变换不涉及到平移变换,即二维下的仿射变换不是线性变换。

5 齐次坐标变换

平移变换无法用单独的矩阵相乘的形式表示,因此引入齐次坐标,增加一维。

二维坐标一般被表示为 ( x , y , w ) (x,y,w) (x,y,w) ,w是一个非零的缩放因子,一般情况下取w=1

平移矩阵:平移(tx, ty)的齐次变换矩阵

T = ( 1 0 t x 0 1 t y 0 0 1 ) ( x ′ y ′ 1 ) = ( 1 0 t x 0 1 t y 0 0 1 ) ( x y 1 ) T = \begin{pmatrix} 1 & 0 & tx \\ 0 & 1 & ty \\ 0 & 0 & 1 \end{pmatrix} \\ \begin{pmatrix} x' \\ y' \\ 1 \end{pmatrix} = \begin{pmatrix} 1 & 0 & tx \\ 0 & 1 & ty \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ 1 \end{pmatrix} T= 100010txty1 xy1 = 100010txty1 xy1

6 仿射变换

一个向量空间进行一次线性变换并接上一个平移,变换到另一个向量空间。
( x ′ y ′ 1 ) = ( a b t x c d t y 0 0 1 ) ( x y 1 ) \begin{pmatrix} x' \\ y' \\ 1 \end{pmatrix} = \begin{pmatrix} a & b & t_x \\ c & d & t_y \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ 1 \end{pmatrix} xy1 = ac0bd0txty1 xy1

7 组合变换

可以通过矩阵相乘,将多种变换组合在一起,只需将齐次坐标与最终的变换矩阵相乘即可。注意矩阵是从右向左计算的,矩阵是左乘。

可以将一个变换分解:让矩阵按照某一点进行旋转(先将旋转点平移到原点,然后再平移回去)

三维情况下的转换

1 线性齐次变换

变换矩阵如下:
T = ( x 1 x 2 x 3 0 y 1 y 2 y 3 0 z 1 z 2 z 3 0 0 0 0 1 ) T= \begin{pmatrix} x_{1} & x_2 & x_{3} & 0 \\\ y_{1} & y_2 & y_{3} & 0 \\\ z_{1} & z_2 & z_{3} & 0 \\\ 0 & 0 & 0 & 1 \end{pmatrix} T= x1 y1 z1 0x2y2z20x3y3z300001
( x 1 , y 1 , z 1 ) , ( x 2 , y 2 , z 2 ) , ( x 3 , y 3 , z 3 ) (x_1,y_1,z_1),(x_2,y_2, z_2),(x_3,y_3,z_3) (x1,y1,z1),(x2,y2,z2),(x3,y3,z3) 是新的基向量,即要变换到的坐标系。
将点坐标左乘一个线性变换矩阵,通俗讲就是将原坐标系下的点通过旋转伸长等操作(转到新的坐标系下),求在新坐标系下点的坐标,这个坐标是相对于原坐标系而言的。

同时还可以附加平移操作,新的变换矩阵就是

T = ( x 1 x 2 x 3 t x y 1 y 2 y 3 t y z 1 z 2 z 3 t z 0 0 0 1 ) T= \begin{pmatrix} x_{1} & x_2 & x_{3} & t_x \\\ y_{1} & y_2 & y_{3} & t_y \\\ z_{1} & z_2 & z_{3} & t_z \\\ 0 & 0 & 0 & 1 \end{pmatrix} T= x1 y1 z1 0x2y2z20x3y3z30txtytz1

2 旋转变换

在这里插入图片描述

任何一个3D旋转都可以表示成绕x轴,y轴,z轴旋转的组合

R x y z ( α , β , γ ) = R x ( α ) R y ( β ) R z ( γ ) R_{xyz}(\alpha, \beta, \gamma) = R_x(\alpha)R_y(\beta)R_z(\gamma) Rxyz(α,β,γ)=Rx(α)Ry(β)Rz(γ)

α β γ \alpha \beta \gamma αβγ 分别代表物体绕x、y、z旋转的角度,它们也被称为欧拉角

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词