问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

坐标系变换:从二维到三维的几何变换详解

创作时间:
作者:
@小白创作中心

坐标系变换:从二维到三维的几何变换详解

引用
CSDN
1.
https://blog.csdn.net/chaser30/article/details/137820868

坐标系变换是计算几何中的一个重要概念,广泛应用于机器人学、计算机图形学等领域。本文将从二维坐标系变换开始,逐步介绍旋转变换、平移变换以及旋转-平移变换,并延伸到三维坐标系的变换方式。

二维坐标系转换

旋转变换

假设已知基坐标系XOY中的一点P(x, y),坐标原点为O,绕点O旋转θ(逆时针旋转为正值,顺时针旋转为负值),旋转后P在新坐标系X'OY'中的坐标值为(x', y')。

旋转前后的坐标关系可表示如下:

  • x'坐标的求解
    根据投影关系,可以将OF分解为ΔAOD中的OD以及ΔPAC中的AC,根据三角形几何关系,有:
    $$
    OF = OD + DF = AO\cos\theta + AP\sin\theta = x\cos\theta + y\sin\theta
    $$

  • y'坐标的求解
    根据投影关系,旋转后的y'坐标为PF,根据三角形几何关系,有:
    $$
    PF = CP - CF = CP - AD = AP\cos\theta - AO\sin\theta = y\cos\theta - x\sin\theta
    $$

汇总表示为:
$$
\begin{cases}
x' = x\cos\theta + y\sin\theta \
y' = y\cos\theta - x\sin\theta
\end{cases}
$$

写成矩阵形式为:
$$
\begin{bmatrix}
x' \
y'
\end{bmatrix} =
\begin{bmatrix}
\cos\theta & \sin\theta \
-\sin\theta & \cos\theta
\end{bmatrix}
\begin{bmatrix}
x \
y
\end{bmatrix}
$$

如果是在机器人相关领域,也习惯简写为如下形式:
$$
\begin{bmatrix}
x' \
y'
\end{bmatrix} =
\begin{bmatrix}
c\theta & s\theta \
-s\theta & c\theta
\end{bmatrix}
\begin{bmatrix}
x \
y
\end{bmatrix}
$$

平移变换

假设已知基坐标系XOY中的一点P(x, y),坐标原点为O,将坐标系整体平移,假设点P随坐标系一起平移,平移后P在新坐标系X'OY'中的坐标值为(x', y')。

平移变化符合向量的加法,即:
$$
OP' = OP + PP' = OP + T(a, b)
$$

所以:
$$
\begin{cases}
x' = x + a \
y' = y + b
\end{cases}
$$

写成矩阵形式为:
$$
\begin{bmatrix}
x' \
y'
\end{bmatrix} =
\begin{bmatrix}
c\theta & s\theta \
-s\theta & c\theta
\end{bmatrix}
\begin{bmatrix}
x \
y
\end{bmatrix} +
\begin{bmatrix}
a \
b
\end{bmatrix}
$$

旋转-平移变换

旋转平移变换是以上两种情况的叠加,已知旋转平移后的坐标系X'O'Y'中的一点P'(x', y'),求P'在基坐标系中的坐标值。

可以先求出P'在旋转后的坐标系X'OY'中的坐标值,然后坐标系X'OY'平移变换到XOY上:
$$
\begin{cases}
x = x'\cos\theta + y'\sin\theta + a \
y = y'\cos\theta - x'\sin\theta + b
\end{cases}
$$

写成矩阵形式为:
$$
\begin{bmatrix}
x' \
y'
\end{bmatrix} =
\begin{bmatrix}
c\theta & s\theta \
-s\theta & c\theta
\end{bmatrix}
\begin{bmatrix}
x \
y
\end{bmatrix} +
\begin{bmatrix}
a \
b
\end{bmatrix}
$$

三维坐标系转换

旋转矩阵

  • 绕x轴旋转
    $$
    R(x,\theta) =
    \begin{bmatrix}
    \cos\theta & -\sin \theta & 0 \
    \sin\theta & \cos\theta & 0 \
    0 & 0 & 1
    \end{bmatrix} =
    \begin{bmatrix}
    c\theta & -s\theta & 0 \
    s\theta & c\theta & 0 \
    0 & 0 & 1
    \end{bmatrix}
    $$

  • 绕y轴旋转
    $$
    R(y,\theta) =
    \begin{bmatrix}
    1 & 0 & 0 \
    0 & \cos\theta & -\sin\theta \
    0 & \sin\theta & \cos\theta
    \end{bmatrix} =
    \begin{bmatrix}
    1 & 0 & 0 \
    0 & c\theta & -s\theta \
    0 & s\theta & c\theta
    \end{bmatrix}
    $$

  • 绕z轴旋转
    $$
    R(z,\theta) =
    \begin{bmatrix}
    \cos\theta & 0 & \sin\theta \
    0 & 1 & 0 \
    -\sin\theta & 0 & \cos\theta
    \end{bmatrix} =
    \begin{bmatrix}
    c\theta & 0 & s\theta \
    0 & 1 & 0 \
    -s\theta & 0 & c\theta
    \end{bmatrix}
    $$

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号