三维空间坐标系变换(旋转&平移)

在探究三维空间下的变换前,首先研究二位空间,因为比较直观,再推广到三维空间。
首先应该清楚的一点是:旋转平移对于坐标系下的以及坐标系本身而言都是相对的(运动的相对性)。

例如:

  1. X O Y XOY XOY坐标系不动,点 P ( x , y ) P(x, y) P(x,y)沿顺时针方向旋转 θ \theta θ,得到点 P ′ P' P,此时点 P ′ P' P X O Y XOY XOY坐标系的坐标为 ( x ′ , y ′ ) (x', y') (x,y)
  2. P ( x , y ) P(x, y) P(x,y)不动,坐标轴 X O Y XOY XOY沿着逆时针方向旋转 θ \theta θ,得到坐标轴 X ′ O Y ′ X'OY' XOY,此时点 P P P X ′ O Y ′ X'OY' XOY下的坐标为 ( x ′ , y ′ ) (x', y') (x,y)
    这两条命题是等价的。

因此,仅讨论坐标系变换

二维空间下的坐标系变换

平移:

旋转:

注:图片来源https://www.cnblogs.com/meteoric_cry/p/7987548.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以对于二维旋转来讲,旋转可描述为:设点 P P P X O Y XOY XOY坐标系下坐标为 [ x y ] \begin{bmatrix} x \\ y \end{bmatrix} [xy],将坐标系 X O Y XOY XOY顺时针旋转 θ \theta θ后, P P P点坐标为 [ x ′ y ′ ] \begin{bmatrix} x' \\ y' \end{bmatrix} [xy],则有:
[ x ′ y ′ ] = [ c o s θ − s i n θ s i n θ c o s θ ] [ x y ] \begin{bmatrix} x' \\ y' \end{bmatrix} =\begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [xy]=[cosθsinθsinθcosθ][xy]
旋转矩阵可记为: Q = [ c o s θ − s i n θ s i n θ c o s θ ] Q = \begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} Q=[cosθsinθsinθcosθ]

三维空间下的坐标系变换

平移:

旋转:

三维空间下,当固定轴选定后,旋转就等价于:其余两轴在其平面内的(二维)旋转。
假设以逆着固定轴正向的方向看去的顺时针为旋转的正向

  1. x x x轴旋转 α \alpha α(在 y z yz yz平面顺时针旋转):
    在这里插入图片描述
    则旋转前后的坐标变化可描述为:
    [ x ′ y ′ x ′ 1 ] = [ 1 0 0 0 0 c o s α − s i n α 0 0 s i n α c o s α 0 0 0 0 1 ] [ x y x 1 ] \begin{bmatrix} x' \\ y' \\ x' \\ 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & cos\alpha & -sin\alpha & 0 \\ 0 & sin\alpha & cos\alpha & 0 \\ 0 &0 & 0& 1\end{bmatrix} \begin{bmatrix} x \\ y \\ x \\ 1 \end{bmatrix} xyx1 = 10000cosαsinα00sinαcosα00001 xyx1

  2. y y y轴旋转 β \beta β(在 x z xz xz平面顺时针旋转):
    在这里插入图片描述
    则旋转前后的坐标变化可描述为:
    [ x ′ y ′ x ′ 1 ] = [ c o s β 0 s i n β 0 0 1 0 0 − s i n β 0 c o s β 0 0 0 0 1 ] [ x y x 1 ] \begin{bmatrix} x' \\ y' \\ x' \\ 1 \end{bmatrix} = \begin{bmatrix} cos\beta & 0 & sin\beta & 0 \\ 0 & 1 & 0 & 0 \\ -sin\beta & 0 & cos\beta & 0 \\ 0 &0 & 0& 1\end{bmatrix} \begin{bmatrix} x \\ y \\ x \\ 1 \end{bmatrix} xyx1 = cosβ0sinβ00100sinβ0cosβ00001 xyx1

  3. z z z轴旋转 γ \gamma γ(在 x y xy xy平面顺时针旋转):
    在这里插入图片描述
    则旋转前后的坐标变化可描述为:
    [ x ′ y ′ x ′ 1 ] = [ c o s γ − s i n γ 0 0 s i n γ c o s γ 0 0 0 0 1 0 0 0 0 1 ] [ x y x 1 ] \begin{bmatrix} x' \\ y' \\ x' \\ 1 \end{bmatrix} = \begin{bmatrix} cos\gamma & -sin\gamma & 0 & 0 \\ sin\gamma & cos\gamma & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 &0 & 0& 1\end{bmatrix} \begin{bmatrix} x \\ y \\ x \\ 1 \end{bmatrix} xyx1 = cosγsinγ00sinγcosγ0000100001 xyx1

综上,当坐标系沿着 X , Y , Z X,Y,Z X,Y,Z轴分别旋转 α , β , γ \alpha,\beta,\gamma α,β,γ后,旋转矩阵为3个沿单一坐标轴旋转的旋转矩阵的乘积,前后的坐标变化可描述为:

Reference:

  1. 旋转矩阵(Rotation Matrix)的推导及其应用
  2. Wolfram MathWorld: Rotation Matrix
  3. 3d变换基础:平移、旋转、缩放(仿射变换)详解——公式推导
  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三维坐标变换是指将一个点从一个坐标系统转换到另一个坐标系统的过程。在三维空间中,我们通常使用笛卡尔坐标系来描述点的位置。而三维坐标变换包括平移旋转、缩放等操作。 平移是指将点沿着坐标轴的方向移动一定的距离。在三维坐标系中,平移可以将点在x、y和z轴上分别移动指定的距离。如果将点(x, y, z)沿着(xt, yt, zt)方向平移,则新点的坐标为(x+xt, y+yt, z+zt)。 旋转是指将点围绕某个轴旋转一定的角度。在三维坐标系中,我们可以绕x、y和z轴进行旋转。以x轴为例,我们可以通过将点(x, y, z)绕x轴旋转一个角度θ,得到新的坐标(x, y cosθ - z sinθ, y sinθ + z cosθ)。 缩放是指将点沿着坐标轴方向改变其距离原点的大小。在三维坐标系中,我们可以分别对点在x、y和z轴上进行缩放。如果将点(x, y, z)在x轴上缩放一个比例因子sx,在y轴上缩放一个比例因子sy,在z轴上缩放一个比例因子sz,则新点的坐标为(sx*x, sy*y, sz*z)。 综合平移旋转和缩放,我们可以进行更复杂的三维坐标变换。例如,我们可以先将点进行平移,然后再对其进行旋转,最后再进行缩放。每一步变换都是相对原点进行的,因此在进行变换时需要考虑变换的顺序。 总之,三维坐标变换是将点从一个坐标系统转换到另一个坐标系统的过程,包括平移旋转和缩放等操作。通过变换,我们可以更方便地描述和处理三维空间中的几何问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值