3D坐标系平移

案例

已知 红色点在蓝色坐标系的位置为(x_1, y_1,z_1)

蓝色坐标系的原点在黑色坐标系中的位置为(\delta x,\delta y, \delta z)

求解: 红色点在黑色坐标系中的位置点(x_2, y_2,z_2)?

分析与推导

蓝色坐标系

红色点在蓝色坐标系中的位置,我们采用向量的方式来看待:

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

红色点在蓝色坐标系中的坐标点,我们可以看做是向量\vec {O_1P}, 那么:

\vec {O_1P} = (x_1, y_1, z_1)

黑色坐标系

前面我们已经定义好了蓝色坐标系的原点为O_1,我们可以把蓝色坐标系原点坐标采用向量的方式来看待:

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

蓝色坐标系原点在黑色坐标系中的坐标点,我们可以看做向量\vec {O_2O_1},那么:

\vec {O_2O_1} = (\delta x, \delta y, \delta z)

综合求解

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

我们用向量方式进行思考,其实求解的就是向量\vec {O_2P}.

我们已知的是:

\vec {O_2P} = \vec {O_2O_1} + \vec {O_1P}

那么:

\vec {O_2P} = (\delta x, \delta y, \delta z) + (x_1, y_1, z_1)
\vec {O_2P} = (\delta x + x_1, \delta y + y_1, \delta z + z_1)

也就是:

(x_2, y_2, z_2) = (\delta x + x_1, \delta y + y_1, \delta z + z_1)

则:

\left\{ \begin{aligned} x_2 = \delta x + x_1 \\ y_2 = \delta y + y_1 \\ z_2 = \delta z + z_1 \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]

那么:

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