Matlab 相对于不同坐标系的轴缩放和旋转三维点

Matlab 相对于不同坐标系的轴缩放和旋转三维点,matlab,math,3d,geometry,coordinate-systems,Matlab,Math,3d,Geometry,Coordinate Systems,我在坐标系B中有一组3D点,我想围绕坐标系B的每个轴旋转和缩放一定角度theta和一定比例因子scale,然后将它们转换到不同的坐标系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,

我在坐标系
B
中有一组3D点,我想围绕坐标系
B
的每个轴旋转和缩放一定角度
theta
和一定比例因子
scale
,然后将它们转换到不同的坐标系
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
将三维点从坐标系
B
转换为
A
。 但是,我想修改
Tr
(通过乘以其他矩阵),这样,在转换到
A
之后,这些点将围绕坐标系“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)

如果将
A
B
的4×4变换矩阵作为

      | R_A  t_A |           | R_B  t_B |
T_A = |          |     T_B = |          |
      |  0    1  |           |  0    1  |
然后从
A->B

T_AB = inv(T_B)*T_A

这被解释为本地-->global for
A
,然后是全局-->local for
B

,您能详细说明一下吗?也许可以举个例子?是否要将点变换为B,执行旋转和缩放,然后变换回A?3D点集是否为图像?您想在
x,y
轴还是
x,y,z
轴上旋转?如果你想在3D中旋转,你需要
θ1
θ2
@NicoSchertler我从B中的点开始。我想围绕B轴执行旋转和缩放,然后将点转换为A。我编辑了我的问题,以使这一点更清楚。