7.2 Coordenadas homogêneas

A expressão

v=Av,v=Av,

onde

v=[xyz],A=[a11a12a13a21a22a23a31a32a33],v=[xyz],v=xyz,A=a11a12a13a21a22a23a31a32a33,v=xyz,

representa uma transformação linear do vetor vR3vR3.

Podemos considerar que vv também representa um ponto no frame padrão do espaço euclidiano tridimensional: é o ponto resultante do deslocamento da origem pelo vetor vv. Com isso podemos aplicar transformações lineares sobre pontos. Entretanto, essa notação não permite diferenciar o que é a representação de um ponto e o que é a representação de um vetor. Além disso, a matriz de transformação linear no R3R3 não é capaz de representar transformações que envolvem deslocamento de pontos. A simples operação

p=p+t,p=p+t,

onde pp é um ponto e tt é um vetor, não pode ser representada como uma matriz de transformação linear na forma

p=Ap[xyz]=[a11a12a13a21a22a23a31a32a33][xyz].

Felizmente, podemos contornar essas dificuldades se representarmos pontos e vetores do R3 em um sistema de coordenadas homogêneas no espaço R4.

Como vimos na definição de combinação afim (seção 6.2), podemos considerar que é válido multiplicar um escalar a por um ponto P, de modo que

0P=0,1P=P.

Um ponto P=(x,y,z) no frame {P0,v1,v2,v3} é definido unicamente como

P=xv1+yv2+zv3+P0.

Em coordenadas homogêneas, P pode ser representado pela matriz coluna de coeficientes

p=[xyz1],

uma vez que

P=xv1+yv2+zv3+P0=[xyz1][v1v2v3P0].

De forma semelhante, um vetor v no mesmo frame,

v=xv1+yv2+zv3,

pode ser definido em coordenadas homogêneas pela matriz coluna de coeficientes

v=[xyz0],

uma vez que

v=xv1+yv2+zv3=[xyz0][v1v2v3P0].

Na expressão

p=Ap,

onde

p=[xyzw],A=[a11a12a13a14a21a22a23a24a31a32a33a340001],p=[xyzw],

a matriz A representa uma transformação linear no R4 e uma transformação afim no R3.

A transformação afim preserva a operação de combinação afim, isto é,

T(aP+(1a)Q)=aT(P)+(1a)T(Q)

para quaisquer pontos P e Q, e qualquer escalar a[0,1].

Assim como a transformação linear transforma espaços vetoriais, a transformação afim de um ponto p equivale à transformação do frame de p em outro frame (frame de p).

Com a matriz de transformação afim, conseguimos representar tanto as transformações de espaços vetoriais quanto as transformações que envolvem deslocamento de pontos.

Como mostra a figura 7.1, a parte 3×3 superior de A representa uma ou mais transformações lineares em R3 (como a rotação, escala e reflexão, abordadas na seção 7.4). A parte 3×1 da última coluna ([a14a24a34]T) representa uma translação (deslocamento de ponto).

Parte de transformação linear e translação em uma matriz na notação homogênea.

Figura 7.1: Parte de transformação linear e translação em uma matriz na notação homogênea.

Agora podemos representar o deslocamento p=p+t através de uma operação matricial:

p=Ap[x+txy+tyz+tz1]=[100tx010ty001tz0001][xyz1].

Observe como, de fato, os fatores de deslocamento estão na parte 3×1 da última coluna.

Em p=[xyzw]T, a coordenada w é chamada de coordenada homogênea.

A escolha de fazer w=1 para pontos e w=0 para vetores permite diferenciar, sem ambiguidades, as operações de adição de vetor com vetor, diferença entre pontos, e adição de ponto com vetor:

  • Na adição de vetor com vetor, o resultado é um vetor (coordenada w=0):

    u+v=w,[uxuyuz0]+[vxvyvz0]=[ux+vxuy+vyuz+vz0].

  • Na diferença entre pontos, o resultado é um vetor (coordenada w=0):

    pq=u,[pxpypz1][qxqyqz1]=[pxqxpyqypzqz0].

  • Na adição de ponto com vetor, o resultado é um ponto (coordenada w=1):

    p+u=q,[pxpypz1]+[uxuyuz0]=[px+uxpy+uypz+uz1].

Coordenadas homogêneas (x,y,z,w) podem ser convertidas de volta para coordenadas cartesianas (x,y,z) do espaço euclidiano 3D através da divisão de x, y, z por w:

(x,y,z)=(xw,yw,zw).

Assim, um ponto p em coordenadas homogêneas,

p=[xyz1],

corresponde, em coordenadas cartesianas, ao ponto

p=[xyz]=[x/1y/1z/1].

Em transformações afins expressas de forma homogênea, o valor de w será sempre 0 ou 1. Entretanto, em matrizes de transformação projetiva, w poderá assumir outros valores.

Transformações projetivas serão abordadas no próximo capítulo. Entretanto, perceba que a divisão por w faz com que um ponto (x,y,z) do espaço euclidiano 3D corresponda a infinitos pontos no espaço de dimensão extra (4D). Em particular, os pontos (sx,sy,sz,sw), onde s0 e w0, correspondem ao mesmo ponto (x,y,z) do espaço euclidiano:

(x,y,z)=(sxsw,sysw,szsw)=(xw,yw,zw).

Em outras palavras, os pontos (sx,sy,sz,sw) do R4 são projetados em um mesmo ponto (x,y,z) do R3. Esse comportamento será útil para simular o efeito de diminuição do tamanho de objetos em uma projeção perspectiva. Em particular, note que:

  • Se um objeto é formado por pontos com coordenada homogênea w>1, o objeto diminui de tamanho após a conversão para o espaço euclidiano;
  • Se um objeto é formado por pontos com coordenadas homogênea 0w<1, o objeto aumenta de tamanho após a conversão para o espaço euclidiano.