【问题标题】:How to translate and rotate coordinates?如何平移和旋转坐标?
【发布时间】:2018-04-22 14:51:44
【问题描述】:

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

我想将 B 点设置为 (0,0,0),以便所有其他点包括 AB以适当的方式平移和旋转(因此 A 不再位于 (0,0,0))。

我知道其中涉及一些平移和旋转,但仅此而已。

升级: 点 B 也受三个向量约束:x'y'z',它们分别代表 @987654337 的 xyz 轴@ 的坐标系。我认为这些应该以某种方式考虑用于轮换部分。

【问题讨论】:

  • 我不明白你的问题。你能详细说明一下吗?我知道您想找到一个将 B 映射到原点并映射到原点 A 的转换。 升级的三个向量是什么?如果这是坐标系的基础,只需将它们用作矩阵的列(或行)向量,B 用作第四列/行。这个矩阵的逆矩阵应该是你要找的。​​span>

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


【解决方案1】:

由于您给出了两个点,一个 (A) 在原点,一个 (B) 在其他位置,并且您想将 B 移动(平移)到原点,我认为没有必要进行任何旋转。 如果您没有任何其他约束,只需将所有坐标移动 B 的初始坐标即可。 您可以按照给定的方式构造一个变换矩阵,例如,https://en.wikipedia.org/wiki/Transformation_matrix#Affine_transformations 用于 2D,但如果您只是平移,R' = R + T,其中R' 是变换后的向量,R 是之前的向量,T 是平移向量.

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2011-12-20
    • 1970-01-01
    • 2021-08-12
    • 2020-08-26
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多