我有两个3D点(x,y,z)
,即 A
和 B
以及一堆其他3D点。 A点位于(0,0,0)
。
我想将 B
设置为(0,0,0)
,以便所有其他点包括 A
和 { {1}} 以适当的方式进行翻译和轮换(以便A不再位于B
)。
我知道有一些翻译和轮换,但仅此而已。
UPGRADE:
点 (0,0,0)
也受到三个向量的约束:B
,x'
,y'
代表z'
,x
,以及 y
坐标系的z
轴。我认为这些应该以某种方式考虑旋转部分。
答案 0 :(得分:0)
由于你给了两个点,一个(A)在原点,一个(B)在其他地方,并且你想将B转换(转换)到原点,我不知道任何旋转的必要性。
如果您没有任何其他约束,只需将所有坐标移动到B的初始坐标。
你可以构造一个给定的变换矩阵,例如,https://en.wikipedia.org/wiki/Transformation_matrix#Affine_transformations用于2D,但是如果你只是翻译,Params[""]
,其中R' = R + T
是变换后的向量,R'
向量之前和R
翻译向量。
对于包括旋转在内的更一般的变换,您必须指定旋转角度和轴。然后,您可以进行更一般的转换,请参见上面的链接。