如何翻译和旋转坐标?

时间:2018-04-22 14:51:45

标签: graphics rotation translation linear-algebra coordinate-systems

我有两个3D点(x,y,z),即 A B 以及一堆其他3D点。 A点位于(0,0,0)

我想将 B 设置为(0,0,0),以便所有其他点包括 A { {1}} 以适当的方式进行翻译和轮换(以便A不再位于B)。

我知道有一些翻译和轮换,但仅此而已。

UPGRADE: 点 (0,0,0) 也受到三个向量的约束:Bx'y'代表z'x ,以及 y 坐标系的z轴。我认为这些应该以某种方式考虑旋转部分。

1 个答案:

答案 0 :(得分:0)

由于你给了两个点,一个(A)在原点,一个(B)在其他地方,并且你想将B转换(转换)到原点,我不知道任何旋转的必要性。 如果您没有任何其他约束,只需将所有坐标移动到B的初始坐标。 你可以构造一个给定的变换矩阵,例如,https://en.wikipedia.org/wiki/Transformation_matrix#Affine_transformations用于2D,但是如果你只是翻译,Params[""],其中R' = R + T是变换后的向量,R'向量之前和R翻译向量。

对于包括旋转在内的更一般的变换,您必须指定旋转角度和轴。然后,您可以进行更一般的转换,请参见上面的链接。