7.3 Concatenação de transformações
Podemos expressar uma sequência, composição ou concatenação de transformações através de um produto matricial.
Por exemplo, a transformação de um ponto (ou vetor) pp por AA, e em seguida por BB, e então por CC, pode ser escrita como:
p′=C(B(Ap)),p′=C(B(Ap)), Como a multiplicação entre matrizes é associativa, podemos remover os parênteses:
p′=CBAp.p′=CBAp.
Lembre-se que, em geral, o produto matricial não é comutativo:
CBA≠ABC.CBA≠ABC.
Na expressão p′=CBApp′=CBAp, a ordem de aplicação das transformações é determinada pela leitura da direita para a esquerda:
- Em 1º lugar, aplica-se a transformação representada pela matriz AA.
- Em 2º lugar, aplica-se a transformação representada pela matriz BB.
- Por último, a transformação representada pela matriz CC.
Se quisermos ler a ordem das transformações da esquerda para a direita, precisamos antes calcular a transposta da expressão:p′T=(CBAp)T=pTATBTCT.
Observe que, neste caso, pT é uma matriz linha multiplicada à esquerda (pré-multiplicação) da matriz de transformação. Como nossa convenção neste curso é usar representações de pontos e vetores como matrizes coluna multiplicadas à direita (pós-multiplicação), usaremos sempre a expressão original p′=CBAp.
No caso geral, se um ponto ou vetor é representado por uma matriz coluna p, então a expressão
p′=AkAk−1…A1p
representa a transformação do ponto/vetor por uma sequência de transformações na ordem
A1,A2,…,Ak.
Se for necessário aplicar uma mesma sequência de transformações a diferentes pontos ou vetores, é desejável primeiramente armazenar o resultado da multiplicação das matrizes de transformação em uma única matriz. Por exemplo,
M=AkAk−1…A1,
onde M representa as transformações na ordem A1,A2,…,Ak e pode ser utilizada para transformar quantos pontos/vetores forem necessários:
v′1=Mv1,v′2=Mv2,⋮
A malha de triângulos de um modelo geométrico pode ser composta por milhares de vértices, e a transformação de um modelo exige a transformação da posição de todos os seus vértices. Assim, a concatenação de transformações em uma única matriz aumenta a eficiência do processamento geométrico.