When applying transformations, for example rotation (R) then Translation (T) to a point P.. Would the correct matrix form be TRP or RTP? And what is the reason that matrixes are multiplied in the reverse order of the intended effect?
motoole2
Let's take a look at one of your transformation operation: T*R*p, where I'll denote vectors by a lower-case letter (e.g., p) and matrices by an upper-case letter (e.g., T). One way to compute the result of this transformation is to perform two matrix-vector operations: r = T*(R*p). That is, step 1: compute the result of a rotation operation on our vector p, which produces q = R*p; and step 2: translate the resulting vector by evaluating r = T*q. We apply these operations right to left, because that is the order in which the matrices are applied to our vector p.
Another way to think about this is that T(q) and R(p) are simply functions that take a vector as input. To rotate then translate a point p, we would evaluate the result of T(R(p)). When our functions are expressed in terms of matrix-vector operations, this is equivalent to T*R*p.
When applying transformations, for example rotation (R) then Translation (T) to a point P.. Would the correct matrix form be TRP or RTP? And what is the reason that matrixes are multiplied in the reverse order of the intended effect?
Let's take a look at one of your transformation operation:
T*R*p
, where I'll denote vectors by a lower-case letter (e.g.,p
) and matrices by an upper-case letter (e.g.,T
). One way to compute the result of this transformation is to perform two matrix-vector operations:r = T*(R*p)
. That is, step 1: compute the result of a rotation operation on our vectorp
, which producesq = R*p
; and step 2: translate the resulting vector by evaluatingr = T*q
. We apply these operations right to left, because that is the order in which the matrices are applied to our vectorp
.Another way to think about this is that
T(q)
andR(p)
are simply functions that take a vector as input. To rotate then translate a pointp
, we would evaluate the result ofT(R(p))
. When our functions are expressed in terms of matrix-vector operations, this is equivalent toT*R*p
.