我在坐标系 B
中有一组 3D 点,我想将其旋转和缩放一定的角度 theta
和一定的缩放因子 scale
关于坐标系B
的每个轴,然后将它们转换到不同的坐标系A
。我知道 4x4
转换,它将坐标系 B
中的点转换为坐标系 A
。
例如,
我有一个变换矩阵
Tr = [0.0065,0.9999,-0.0106,-5.0682
-0.0105,-0.0105,-0.9999,1.7843
-0.9999,0.0066,0.0105,8.6412
0.0000,0.0000,0.0000,1.0000]
目前,我使用 Tr
将 3D 点从坐标系 B
转换为 A
。
但是,我想修改 Tr
(通过乘以附加矩阵),以便在转换为 A
后,点按 theta
旋转和缩放,围绕坐标系“B”的每个轴进行缩放
。
知道这是否可能吗?
最佳答案
T_scale = [scale_x 0 0 0
0 scale_y 0 0
0 0 scale_z 0
0 0 0 1]
T_i(theta) = [R_i(theta) [0; 0; 0]
[0 0 0] 1 ]
T = Tr * T_scale * T_z(theta_z) * T_y(theta_y) * T_x(theta_x)
使用 wikipedia 定义的 R_i(theta)
关于matlab - 相对于不同坐标系的轴缩放和旋转 3D 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42656924/