2D坐标系平移原理(向量)

案例

已知 红色点在蓝色坐标系的位置为(4, 1)

蓝色坐标系的原点在黑色坐标系中的位置为(2,3)

求解: 红色点在黑色坐标系中的位置点?

分析计算

蓝色坐标系

红色点在蓝色坐标系中的位置为(4,1),其实我们可以用向量的方式来看待:

我们将蓝色坐标系的原点定义为B,将红色点定义为P。

红色点在蓝色坐标系的坐标点,我们可以看做是向量\vec {BP},那么: $$ \vec {BP} = (4, 1) $$

黑色坐标系

已知蓝色坐标系的原点B,在黑色坐标系中的位置(2, 3),我们用向量的方式看待:

我们将黑色坐标系的原点定义为A.

蓝色坐标系的原点B,我们可以看做是向量\vec {AB},那么:

\vec {AB} = (2, 3)

求解目标

我们要求解的是: 红色点在黑色坐标系中的位置点?

如果我们用向量方式思考,要求解的是\vec {AP}向量。

我们可以知道:

\vec {AP} = \vec {AB} + \vec {BP}

这里就回归到了向量的加法上来了,那么:

\vec {AP} = (2, 3) + (4, 1)
\vec {AP} = (6, 4)

分析抽象

由上面我们可以得到:

\vec {AP} = \vec {AB} + \vec {BP}

其中:

  • \vec {AP} 的含义是,P点在黑色坐标系中的位置
  • \vec {AB}的含义是,蓝色坐标系相对于黑色坐标系移动的位置
  • \vec {BP}的含义是,P点在蓝色坐标系中的位置

我们分别进行抽象化:

  • \vec {P_1}向量表达的是点在蓝色坐标系中的位置
  • \vec {P_2}向量表达的是点在黑色坐标系中的位置
  • \vec {\Delta P}向量表达的是坐标平移的距离

那么:

\vec {P_2} = \vec {P_1} + \vec {\Delta P}

则:

(x_2, y_2) = (x_1, y_1) + (\delta x, \delta y)
\left\{ \begin{aligned} x_2 = x_1 + \delta x \\ y_2 = y_1 + \delta y \end{aligned} \right.
\left\{ \begin{aligned} x_2 = 1 * x_1 + 0 * y_1 + \delta x \\ y_2 = 0 * x_1 + 1 * y_1 + \delta y \\ 1 = 0 * x_1 + 0 * y_1 + 1 \end{aligned} \right.

则:

\left[\begin{matrix} x_2 \\ y_2 \\ 1 \end{matrix} \right] = \left[\begin{matrix} 1 & 0 & \delta x \\ 0 & 1 & \delta y \\ 0 & 0 & 1 \end{matrix} \right] \cdot \left[\begin{matrix} x_1 \\ y_1 \\ 1 \end{matrix} \right]

公式总结

二维总结

根据以上推导我们可以得到以下的结论:

三维推导总结

\vec {P_2} = \vec {P_1} + \vec {\Delta F}
\left\{ \begin{aligned} x_2 = x_1 + \delta x \\ y_2 = y_1 + \delta y \\ z_2 = z_1 + \delta z \end{aligned} \right.
\left\{ \begin{aligned} x_2 = 1 * x_1 + 0 * y_1 + 0 * z_1 + \delta x \\ y_2 = 0 * x_1 + 1 * y_1 + 0 * z_1 + \delta y \\ z_2 = 0 * x_1 + 0 * y_1 + 1 * z_1 + \delta z \\ 1 = 0 * x_1 + 0 * y_1 + 0 * z_1 + 1 \end{aligned} \right.
\left[\begin{matrix} x_2 \\ y_2 \\ z_2 \\ 1 \end{matrix} \right] = \left[\begin{matrix} 1 & 0 & 0 & \delta x \\ 0 & 1 & 0 & \delta y \\ 0 & 0 & 1 & \delta z \\ 0 & 0 & 0 & 1 \end{matrix} \right] \cdot \left[\begin{matrix} x_1 \\ y_1 \\ z_1 \\ 1 \end{matrix} \right]