I have a set of 3D points in a coordinate system B
which I want to rotate and scale by certain angle theta
and certain scaling factor scale
about each axis of coordinate system B
and then transform them to a different coordinate system A
. I know the 4x4
transformation which transforms points in coordinate system B
to coordinate system A
.
For example,
I have a transformation matrix
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]
Currently, I use Tr
to transform 3D points from coordinate system B
to A
.
However, I want to modify Tr
(by multiplying additional matrices) such that, after transformation to A
the points are rotated and scaled by theta
, scale
about each axis of of coordinate system `B'.
Any idea if this is possible?
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)
With R_i(theta)
as defined by wikipedia