Computação Gráfica
Conteúdo
Objetivo do Curso
• Proporcionar o aprendizado de técnicas e
conceitos básicos de computação gráfica
2D e 3D, para o desenvolvimento,
avaliação ou uso de aplicativos gráficos.
Ementa
•
•
•
•
•
•
•
Introdução à computação grafica
Hardware: arquiteturas de terminais gráficos
Projetos de pacotes gráficos
Padrões
Interface Humano/Computador
Aspectos Geométricos: gráficos 2D e 3D
Aspectos Humanos:
. realismo na apresentação
. Intensidade e coloração
• Modelos e hierarquia de objetos
• Representação de superfícies 3D e de sólidos
• Uso de computador para projetos e ensaios de pacotes
Tópicos
• Conceituação de computação gráfica e áreas de
aplicação
• Dispositivos gráficos e arquiteturas de terminais gráficos
• Conceituação de aplicativos gráficos
• Portabilidade e evolução de bibliotecas gráficas
• Algoritmos de transformação de primitivas gráficas 2D e
3D (coordenadas homogêneas, rotação, translação,
escalamento, e projeções)
• Curvas Bezier e Spline
• Biblioteca OpenGL para o desenvolvimento de gráficos
Bibliografia
• Foley,J.D.; van Dam,A.; Feiner,S.K.; Hughes,J.F.- Computer
Graphics – Principles and Practice, 2.ed. Addison Wesley
Pub.Co.,USA, 1992
• Hearn,D. & Baker, M.P. – Computer Graphics, 2.ed. Prentice Hall,
NJ,1997
• Gomes,J.& Velho, L. – Computação Gráfica – Volume 1.IMPA, RJ,
1998
• Jacobs, J.Q. – Delphi Developer’s Guide to OpenGL. Wordware
Pub., Texas, 1999
• Tori,R.; Arakaki,R.; Massola,A.M.A.; Filgueiras,L.V.L. –
Fundamentos de Computação Gráfica. LTC, RJ, 1987
• Mason Woo, Jackie Neider, Tom Davis & Dave Shreiner – OpenGL
Programming Guide, 3rd. Ed. Addison-Wesley, 1999.
Avaliação
• Nota final = 0.5 x Prova + 0.5 x Trabalho
Prova: escrita, sobre a parte teórica
Trabalho: criação, implementação e
visualização de um gráfico 3D com animação
- em grupo de no máximo 4 alunos
- apresentação do trabalho em sala de aula
Introdução
• Computação gráfica – conjunto de algoritmos, técnicas e
metodologias para o tratamento e a representação
gráfica de informações através da criação,
armazenamento e manipulação de desenhos, utilizando
computadores e periféricos gráficos.
• Em termos de aplicação, ela pode ser dividida nas
seguintes áreas:
–
–
–
–
–
–
CAD (Computer Aided Design)
Gráficos Ilustrativos
Arte por Computador
Entretenimento
Educação e Treinamento
Visualização Científica
Interação com outras áreas
Física
Outras ...
Matemática
Computação
Gráfica
Medicina
Psicologia
Eng.
Eletrônica
Artes
Conceito de Aplicativo Gráfico
Aplicativo Gráfico: um sistema composto de um ou mais programas, para a
geração de uma determinada apresentação gráfica que pode ser composta de
recursos 2D e/ou 3D e/ou imagem.
Data
Base
Application
Program
Metafile
Device - Independent
Graphics Package
Device
Driver
Device
Driver
Metafile
Reader
Virtual
Device
Interface
Metafile
Writer
Virtual
Device
Metafile
Current
Terminal
Future “VDI”
Terminal
Current
Plotter
Biblioteca Gráfica
A biblioteca gráfica contem as funções que o aplicativo aciona para a
geração de primitivas gráficas.
Portabilidade – independência em relação aos dispositivos gráficos
Device Drivers – comunicação da biblioteca gráfica com os dispositivos
Exemplos de bibliotecas gráficas: Core, Dore, XFDI, Starbase, GKS,
PHIGS, GL, OpenGL e DirectX
OpenGL – evolução do GL (Silicon Graphics)
- grandes produtores de software e hardware tem priorizado o
seu uso
DirectX – suportada pela Microsoft
Conceitos de CAD
CAD (Computer Aided Design) - utilizar o computador para auxiliar nos
projetos tais como: edifício, automóvel, navio, espaçonave,
eletrodoméstico, tapete, roupa, etc.
São envolvidos conceitos de computação gráfica, com recursos de interação,
técnicas de gráficos 2D ou 3D, rendering, animação, etc.
Os sistemas CAD podem funcionar de forma integrada aos sistemas CAM
(Computer Aided Manufacturing), quando os dados do projeto resultantes
do CAD podem ser incorporados no controle da fabricação do produto
com o auxílio do computador.
Atualmente os sistemas CAD/CAM sofisticados fazem parte de um conjunto
maior de programas denominado de sistema de Informação gerencial MIS
(Management Information System), cuja função é gerenciar todas as etapas
de produção, o que envolve controle de estoque, controle de máquinas de
montagem, controle de inspeção de qualidade, etc.
Dispositivos de Visualização Gráfica com o uso de
CRTs (Cathode Ray Tubes)
Antigamente, o modo de operação destes dispositivos era semelhante a um osciloscópio.
A exibição no CRT era feita na sequência e posição dos pontos correspondentes às
primitivas gráficas a serem exibidas.
Essas primitivas eram contidas numa memória denominada de Refresh Buffer .
CPU
.
.
.
MOVE
10
15
LINE
400
300
.
.
.
Controlador
de Exibição
Refresh
Buffer
Teclado
Mouse
Terminal
de Vídeo
Terminais de Vídeo Vetoriais
Devido a sequência de traçado de primitivas gráficas ( na maioria - linhas) , os
primeiros terminais de vídeo foram chamados de terminais vetoriais.
Devido a persistência luminosa do material que reveste a tela do tubo de raios
catódicos – CRTs, a imagem se mantinha até o próximo ciclo de
redesenho.
Os refresh buffer continha os comandos de primitivas que indicavam ao
controlador de exibição onde traçar as linhas.
Problemas: - o tempo de geração de uma imagem completa é proporcional ao
número de primitivas. Isso faz com que uma imagem complexa leva um
tempo excessivo para o próximo ciclo do redesenho, e a imagem começa a
piscar (flicker).
Fisiologia
É necessária uma frequência maior que 16 Hz para que o redesenho
possibilite sensação de continuidade de movimento, em animação.
Porém, para evitar a sensação tremeluzente (flicker) é necessária uma
frequência bem maior.
Nos filmes: a frequência de quadros é de 24 Hz, porém, cada quadro é
iluminada duas vezes, dando uma sensação de 48 Hz para a
exibição.
Na televisão (brasileira/americana ): A frequência de quadros
completos é de 30 Hz, porém, cada quadro completo é composto de
campo de linhas impares e de linhas pares, que são entrelaçados,
dando uma sensação de 60 Hz para exibição.
Televisão européida: 25 Hz para quadro completo, 50 Hz para
campos.
Terminais de Vídeo por Varredura (Raster)
Frame Buffer
0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0
0 0 1 0 0 1 0 0
0 1 0 0 0 0 1 0
0 1 0 1 1 0 1 0
0 1 0
CPU
Controlador
de Exibição
Teclado
Mouse
1 1 0 1 0
Controlador
de Vídeo
Terminal
Arquitetura Simples
Dispositivos
Periféricos
CPU
BUS
Memória
do Sistema
Frame Buffer na
Memória do Sistema
Controlador
de Vídeo
Monitor
Arquitetura Comumente Usada
Dispositivos
Periféricos
CPU
BUS
Memória
do Sistema
Frame
Buffer
Controlador
de Vídeo
Monitor
- Para animação é importante a existência de mais um
frame buffer (double buffer).
- Enquanto o controlador exibe o conteúdo de um frame
buffer, o conteúdo do outro é atualizado pela CPU
Arquitetura com uso do Processador Gráfico
Dispositivos
Periféricos
CPU
Arquitetura
com Proces.
Gráfico
BUS
Processador
Gráfico
Memória do
Processador
Gráfico
Memória
do Sistema
Frame
Buffer
Controlador
de Vídeo
Monitor
Processador Gráfico:
- scan conversion – determinação de endereço de memória de um pixel
- traçado de primitivas gráficas – linhas, arcos, linhas com anti-aliasing,
rendering, etc.
Operação com tabela de cores (LUT - Look Up Table)
Organização da Look-Up
Table de um Terminal
Ymax
Frame
Buffer
Monitor
Pixel -> 67
(x’,y’)
0
Xmax
0
Pixel exibido
em (x’,y’)
01000011
Red
255
67
0
Green
Blue
1001 1010 0001
100110100001
Look-up Table
Olho Humano
Retina:
- 6 a 7 milhões de cones – sensíveis a
níveis altos de luminosidade e cores
- 75 a 150 milhões de bastonetes –
sensíveis a níveis baixos de luminosidade
Percepção do olho humano:
- Terminais gráficos de 1280 x 1024 pixels
- Para a transição suave de tons num
dégradé, sem distinção das linhas da
mudaça de tons é necessário no mínimo
100 tons.
- Para satisfazer essa exigência, os
terminais modernos permitem a exibição
simultânea de 128 ou 256 cores
Transformações Afins
•
Uma transformação de coordenadas é denominada uma transformação afim, se em:



v  A v  b
as coordenadas (x’,y’,z’) do vetor v’, que definem um ponto no espaço, são uma
função linear de (x,y,z) do vetor v, e aij e bi são constantes que determinam a
transformação
x / 
 a11
 /
a
y

 
 21
z/ 
a 31
 
a12
a 22
a 32
a13 
a 23 
a 33 
x
 b1 
 y   b 
 
 2
 z 
b3 
Transformações afins
• Transformações afins tem a função de modificar a posição dos
pontos no espaço, ou de objetos contidos no espaço.
• Tem a característica de transformar linhas paralelas em linhas
paralelas e mapear pontos finitos em pontos finitos.
• O grupo de transformações afins do espaço define a geometria
afim, que estuda as razões e proporções entre objetos geométricos.
• Note-se que em geometria afim, paralelismo é um conceito
importante, sendo relações entre linhas paralelas uma parte
substancial da geometria e os teoremas da geometria afim são
idênticos aos da geometria euclidiana.
• Rotação, translação, escalamento, espelhamento e cisalhamento
são exemplos de transformações afins detalhados a seguir.
Translação de um ponto
z
. (x,y,z)
b
v
. (x',y',z')
v'
y
x'
x
y'
z'
=
1
0
0
x
0
1
0
y
0
0
1
z
b1
+
b2
b3
Translação
• A translação –
alteração da posição dos pontos através da soma do vetor de
deslocamento às suas coordenadas.
É aplicada sobre todos os pontos da figura para a sua translação
no espaço.
O exemplo clássico em computação gráfica de aplicação desta
transformação é a função pan, disponível em vários sistemas
gráficos.
• Em termos de transformação afim, a translação
corresponde à soma de um vetor de deslocamento b ao
vetor que define o ponto que se deseja deslocar.
Mudança de Escala (Scaling)
A Mudança de Escala corresponde à multiplicação das
coordenadas de um ponto por valores iguais ou
distintos.
É normalmente aplicada sobre todos os pontos de uma
figura com o objetivo de ampliar ou reduzir a sua
dimensão ou então distorcer a sua forma geométrica.
O uso clássico desta operação em computação gráfica é
a função zoom in (ampliação) ou zoom out (redução).
x'
y'
z'
=
ex
0
0
x
0
ey
0
y
0
0
ez
z
Rotação
• A rotação é o giro de um determinado ângulo
de um ponto em torno de um ponto de
referência, sem alteração da distância entre
eles.
• Esta operação é aplicada normalmente sobre
todos os pontos de uma figura, o que
possibilita que ela seja rotacionada sem sofrer
deformação.
Rotação em torno do eixo z
z
y
.
P' = (x',y',z')
y
D

x
.

.
P = (x,y,z)

.
P' = (x',y',z')
z
.

P = (x,y,z)
x  D cos( )
y  D sen( )
x /  D cos(   )
y  D sen(   )
/
x
cos(a  b)  cos(b)  cos(a)  sen(b)  sen(a)
sin(a  b)  cos(b)  sen(a)  sen(b)  cos(a)
x /  D cos(   )
y /  D sen(   )
x /  x cos( )  y sen( )
y /  x sen( )  y cos( )
cos (  ) - sen ( )
x'
y'
z'
=
sen ()
0
cos ( )
0
1
0
x
0
y
z
Rotação em torno do eixo x
z
.
P' = (x',y',z')
D

.
z
P = (x,y,z)

.
P' = (x',y',z')
y
.
P = (x,y,z)

x
.

y
x
y  D cos( )
y
/
z  Dsen(  )
 D cos(   ) z /  Dsen(   )
y/
 D cos(   )
z
/
 Dsen(   )
y/

y cos( )  zsen( )
z/

ysen( )  z cos( )
x'
y'
z'
1
=
0
0
0
cos ( )
-sen ( )
0
sen (  ) cos( )
x
y
z
Rotação em torno do eixo y
z
.
P = (x,y,z)


x
.
P' = (x',y',z')
y
.
D
.
P = (x,y,z)

P' = (x',y',z')
y
.

z
x
x  Dsen(  )
x/
 Dsen(   )
z  D cos( )
z
/
 D cos(   )
x/
 Dsen(   )
z
/
 D cos(   )
x/
 x cos( )  zsen( )
z/
  xsen( )  z cos( )
x'
y'
z'
=
cos ()
0
0
1
-sen (  ) 0
sen ( )
0
cos( )
x
y
z
Rotação em torno de um eixo
genérico
• A matriz de rotação em torno de um eixo genérico não é complexa,
porém trabalhosa em termos de dedução, assim, será apresentado
apenas a matriz MGR que permite esta operação.
• Sendo N um vetor unitário de coordenadas (x,y,z) e  o ângulo de
rotação, tem-se:
 tx 2  c txy  sz txz  sy 


2
MGR  txy  sz ty  c tyz  sx 
txz  sy tyz  sx tz 2  c 
Onde:
x,y,z = coordenadas de N
t = 1 - cos()
s = sin()
c = cos()
y, y*

j


n
N

Q


i

S

O
z, z*
k
P

P*
x, x*
Espelhamento
• Uma operação bastante conhecida em
computação gráfica é o espelhamento, a
qual consiste em rotacionar um objeto
em torno de um eixo de tal maneira que
os pontos do objeto na posição original
e na rotacionada mantenham a mesma
distância em relação a um linha de
referência, caso bidimensional, ou a um
plano de referência, caso tridimensional.
• As figuras mostram o espelhamento de
um objeto:
a) em torno do eixo y em relação ao
plano xy e
b) em torno do eixo z em relação ao
plano xz.
z
y
x
z
y
x
Cisalhamento (shear)
•
•
•
•
Outra transformação afim importante de ser estudada é o cisalhamento (shear), cujo
exemplo clássico para o sistema de coordenadas bidimensional que explica a sua
função é o da italização de um caracter.
Neste caso, há uma variação no valor da coordenada x em função do valor da y,
sendo MTS_1 a matriz de transformação correspondente.
Pode-se associar uma outra transformação a de cisalhamento, como, por exemplo,
o escalamento da coordenada y, conforme exemplificado em MTS_2.
A matriz MTS_3 ilustra o uso desta transformação para o caso tridimensional.
MTS_1 =
MTS_2 =
MTS_3 =
i_1
i_2
i_3
1 sh x 
0 1 


1 sh x 
0 e 
y 

1 0 s x 


0
1
s
y

0 0 1 
Exemplo de cisalhamento no caso 3D
y
y
x
x
z
z
Composição das transformações
• Uma importante questão que sempre deve ser considerada com
relação as transformações afins se refere a sua composição.
• Neste caso, a ordem em que elas são executadas pode alterar o
resultado final esperado.
• Considere-se então duas transformações afins, uma somente de
rotação de 45 em torno do eixo z e outra somente de translação de
valor x ao longo do eixo x.
• A aplicação primeiro da rotação e depois da translação tem
resultados distintos.
y
x
z
y
y
x
x
z
z
• Neste sentido, caso se deseje rotacionar um objeto no espaço em
torno de um ponto interno a ele, deve se primeiramente deslocar o
centro de rotação (origem dos eixos) para este ponto, proceder a
rotação e posteriormente voltar o centro de rotação à sua posição
inicial.
• Note-se que isto equivale a deslocar o objeto para o centro de
coordenadas.
y
y
y
y
y
x
x
z
z
z
x
x
z
z
x
Projeções
Projeções Planares
• Dado que a exibição de um objeto 3D em uma tela de
computador ou em uma folha de papel exige o
mapeamento de um sistema de coordenadas 3D em um
2D, operações de projeção são requeridas. Em geral,
entende-se como projeção, o processo de mapear um
sistema de coordenadas de dimensão “n” em um de
dimensão menor ou igual a “n-1”.
• O objetivo deste curso é conceituar projeções planares
(para um plano, 2D), apresentando a sua classificação e
formas algébricas de manipulá-las. Com base nestes
conceitos, será ilustrado o funcionamento do esquema
de transformações em bibliotecas e sistemas gráficos
que manipulam primitivas tridimensionais.
HISTÓRICO
2150 A.C. - desenho de planta de um prédio da cidade de Lagash na Mesopotâmia.
500 AC. - o pintor Agatharchus foi o primeiro a usar perspectivas em larga escala e
escreveu um livro sobre “pintura de cenas”, o que inspirou os filósofos Anaxagoras e
Demócrito a escrever sobre perspectiva.
14 AC - primeira evidência real do uso de desenhos para guiar edificações foi
encontrado nos textos de Vitruvius, um arquiteto e engenheiro romano.
1300 - formalização destas técnicas surgiu na Renascença. Os pintores
Duccio, de “A Última Ceia”, e Giotto empreenderam esforços no sentido de
representar a terceira dimensão através da perspectiva.
1400 - Filippo Brunelleschi foi o primeiro artista a desenvolver um sistema
matemático para a perspectiva.
1435 - publicação do primeiro tratado sobre perspectiva, Della Pittura, por
Leone Battista Alberti. No mesmo período, a técnica da perspectiva continuou a ser
aperfeiçoada por Piero della Francesca através do texto De Prospettiva Pingendi e
por Leonardo da Vinci que pintou a sua versão de “A Última Ceia”.
1801 – publicação do livro Geometrie Descriptive, de Gasparad Monge, um
desenhista de fortificações militares francesas. Foi o primeiro a descrever de forma
organizada o uso de projeções em engenharia, o que lhe valeu o título de
“pai da geometria descritiva”.
As técnicas de projeções continuaram a ser estudadas e aperfeiçoadas e se
popularizaram entre profissionais e estudantes de engenharia, artes e
arquitetura.
Com o surgimento da computação gráfica e com a popularização de sistemas e
bibliotecas gráficas, o número de interessados nas técnicas de projeções se
ampliou acentuadamente.
Geralmente, os usuários de sistemas ou bibliotecas gráficas se deparam com
operações relacionadas a posicionamento e especificação de câmeras, ou
então, a ajuste de transformações que permitam o correto posicionamento de
um objeto em uma cena.
Outro problema nesta mesma linha é o transporte dos objetos criados em um
determinado sistema gráfico para outro.
Projeções em superfícies planares,
cilíndricas e cônicas
Proj.
Planar
Proj.
Cilindrica
Proj.
Cônica
Projeções em superfícies planares
Proj. Planares
Paralelas
Ortográficas
Planta
Perspectivas
Oblíquas
Dois-Pontos
Cabinet
V. Frontal
Cavalier
V. Lateral
Axonométricas
Isométricas
Dimétricas
Trimétricas
Um-Ponto
Três-Pontos
Projeções paralelas e perspectivas
As projeções planares paralelas e perspectivas diferem com relação a
distância do plano de projeção ao centro de projeção:
- se a distância é finita, a projeção é perspectiva, e
- se a distância é infinita, a projeção é paralela
C. de Projeção
no Infinito
A
A’
A
B’
A’
B
C. de Projeção
no Finito
Raios Projetores
B’
B
Projeções planares paralelas
• Projeções planares paralelas são subclassificadas em ortográficas e
oblíquas dependendo da relação entre a direção dos raios projetores e a
normal ao plano de projeção.
- projeções ortográficas, as direções são as mesmas
(raios perpendiculares ao plano de projeção).
- projeções oblíquas, são diferentes.
(a) Ortográfica

r

N
(b) oblíqua

r

N
Projeções ortográficas: vistas lateral, frontal e planta
•
•
•
As projeções ortográficas vista lateral, vista frontal e planta constituem as
projeções normalmente utilizadas em desenho técnico.
Os vetores normais aos planos de projeção coincidem com a direção dos eixos
cartesianos, e a direção dos raios de projeção.
Elas oferecem uma visão parcial do objeto, no entanto, mantém sem alteração
as relações de dimensões e ângulos do objeto projetado. Estas projeções são
geralmente utilizadas em conjunto, contando também com uma projeção
axonométrica ou perspectiva.
Planta
Vista
Lateral
Vista
Frontal
Projeções ortográficas axonométricas
• As projeções paralelas ortográficas axonométricas tem a direção dos
raios projetores e a normal ao plano de projeção coincidentes, porém
distintas da direção dos eixos cartesianos. Permitem a visualização
de várias faces paralelas aos planos cartesianos de uma única vez.
Projeções ortográficas axonométricas: dimétricas,
isométricas e trimétricas
•
Projeções axonométricas distorcem os objetos, alterando as relações de
ângulos e dimensões de lados dos objetos, no entanto, mantém as
relações de paralelismo entre eles.
•
A alteração da dimensão dos lados é relacionada com a alteração da
dimensão dos versores (vetores unitários) em cada um dos eixos x, y e z,
quando projetados no plano.
•
Assim, projeções axonométricas se subdividem em:
dimétricas, quando dois versores variam a dimensão igualmente
quando projetados no plano;
isométricas, quando três versores variam na mesma proporção; e
trimétricas, os três versores variam de forma diferenciada.
Exemplos de projeções ortográficas
axonométricas
y
Dimétrica
Isométrica
x
y’
z
x’
y’
x’
Projeções paralelas oblíquas
• As projeções paralelas oblíquas tem a direção da normal ao plano de
projeção distinta da direção dos raios projetores.
Projeções paralelas oblíquas: cavalier e cabinet
As projeções paralelas oblíquas se subdividem em cavalier e cabinet.
Na cabinet há um encolhimento na dimensão do versor perpendicular ao plano de
projeção para corrigir a ilusão de que o objeto exibido é maior na direção deste
versor.
Cavalier
Cabinet
Cavalier
Cabinet
Projeções planares perspectivas
• O efeito visual de uma projeção perspectiva é bastante
realista, pois as dimensões de um objeto projetado
variam inversamente com relação ao centro de projeção,
o que está de acordo com o modo de funcionamento do
sistema visual humano.
• Como as projeções axonométricas, elas permitem a
visualização conjunta de várias faces normais aos eixos
x, y, e z, de um objeto.
• As projeções perspectivas não são úteis para
documentar precisamente as formas de um objeto, dado
que as dimensões e os ângulos dos seus lados podem
sofrer alterações após a projeção.
• Em especial, pode haver perda do paralelismo entre as
linhas.
Projeções perspectivas: ponto de fuga
•
Como a projeção perspectiva tem o centro de projeção localizado em
um ponto finito, ocorre uma distorção no objeto projetado que faz com
que qualquer conjunto de linhas que sejam paralelas ao plano de
projeção convirjam para um mesmo ponto denominado ponto-de-fuga.
O surgimento do ponto-de-fuga pode ser melhor compreendido
observando-se as figuras.
z
B
z
l_A
p
A
RP
l_B
pf
l_B
pXY
RP1
RP2
l_A
CP
pXY
pf
CP
• Na figura à esquerda, um raio projetor parte do centro de projeção e
incide sobre um ponto p da linha l_A. Quando p tende ao infinito, o raio
projetor vai encontrar este ponto no infinito, o que significa que a linha
RP vai ficar paralela a linha l_A, cruzando, assim, o plano x sempre no
mesmo ponto pf. Nota-se que um ponto sobre a linha l_B, paralela a
linha l_A, vai ser alcançado no infinito de forma similar ao ponto sobre a
linha l_A, ou seja, o raio projetor corta o eixo x no mesmo ponto pf.
• Quando o raio projetor incide sobre uma linha paralela ao eixo de
projeção, não tem ponto-de-fuga. A explicação para este caso é simples.
Considere o ponto A da figura à direita que está sobre a linha l_A,
paralela ao plano xy. Assim, quando A tender a infinito, o raio projetor
RP1 vai encontrá-lo no infinito e, neste caso, estará paralelo ao plano xy,
o que evita o surgimento do ponto-de-fuga. Ao contrário, o raio projetor
RP2 que incide sobre o ponto B sobre a linha l_B, perpendicular ao
plano xy, vai tender à origem quando B tender a infinito. Neste caso, a
projeção perspectiva do retângulo vai apresentar apenas um ponto-defuga.
• Para que a projeção deste retângulo apresente mais de
um ponto-de-fuga basta rotacioná-lo, o que faz com que
as suas linhas paralelas fiquem inclinadas em relação
ao plano xy.
z
A
B
pf_2
pf_1
CP
pXY
• Para melhor se
compreender a relação
entre os pontos-de-fuga e o
centro de projeção, a figura
abaixo apresenta a forma
de se obter a projeção
perspectiva de um
paralelepípedo com lados
paralelos ao eixo x e centro
de projeção sobre o eixo z.
• O objeto é projetado do
sistema de coordenadas
3D xyz no sistema de
coordenadas 2D x’y’.
• Dado que a dimensão dos
lados AB, CD, EF e GH não
são visíveis, a dimensão
dos lados A’B’, C’D’, E’F’ e
G’H’ foram definidas
arbitrariamente.
z
C,D
A,B
E,F
G,H
PF_1
PF_2
y
CP
C’
A’
E’
G’
F’
B’
y’
H’
x’
Tipos de projeções perspectivas
• Nota-se que cada conjunto de linhas paralelas no
espaço pode ter associado um ponto-de-fuga. Assim,
com o objetivo de definir um critério de classificação,
somente as linhas paralelas aos eixos são
consideradas.
• Em função do número de pontos-de-fuga associados às
linhas paralelas aos três eixos cartesianos, as projeções
perspetivas se subdividem em projeções de um pontode-fuga, de dois pontos-de-fuga e de três pontos-defuga.
• Projeções perspectivas de três pontos-de-fuga são
usadas menos frequentemente, dado que elas
acrescentam pouco realismo ao já alcançado pelas
projeções de dois pontos-de-fuga.
Projeção perspectiva com um
ponto de fuga
y
y
x
z
x
Projeção perspectiva com dois
pontos de fuga
PF-1
PF-2
Projeção perspectiva com três
pontos de fuga
PF-1
PF-2
PF-3
Coordenadas Homogêneas
Uma transformação afim segue a forma:

v 


M v  b
(eq. 3.1)
Esta formulação é, em termos de cálculo, bastante inconveniente para se
determinar as coordenadas do vetor final, após uma série de transformações de
um vetor inicial.
A formulação da equação 3.4 é muito mais conveniente porque permite que o
cálculo de múltiplas transformações seja realizado calculando-se a matriz de
transformação resultante e aplicando-se esta matriz sobre o vetor (eq. 3.5).

v1 

M1 v

v2 
M2

v 
M

v

Mn

 b1

M1 v
(eq. 3.2)



M 2 b1  b 2
(eq. 3.3)
(eq. 3.4)

v
M n1
...

M1 v
(eq. 3.5)
A solução usual para este problema é a alteração do espaço de
coordenadas de dimensão 3 para 4, de forma controlada, de maneira
que a dimensão da matriz M se altere de 3x3 para 3x4 e, assim, ela
possa incorporar a transformação de translação (eq. 3.6).
Como é inconveniente operar uma matriz não quadrada por não permitir,
por exemplo, o cálculo da inversa, a matriz MT pode ser novamente
modificada pela inserção de mais uma linha que não altere o resultado
final (eq. 3.7).
(eq. 3.6)
 x
x
 xl 


1 0 0 l  
 y 
 y  m
y

   0 1 0 m    



 z 
z
zn


 


0 0 1 n   1 
1
 
 1 
(eq. 3.7)
MT =
1
0

0

0
0
1
0
0
0
0
1
0
l
m

n

1
Considerando-se uma matriz M genérica de dimensão 4x4, quando ela é


aplicada sobre o vetor v , em coordenadas homogêneas, gera o vetor v *

Para se calcular o vetor desejado, normaliza-se o vetor v *
.

Assim, supondo-se H  0 , tem-se v  .
x
 y

v*  M  
z
1 
 
X
Y 
  
Z
H
 

 X / H
Y / H 


v  
Z / H


1


Neste contexto, uma propriedade interessante e bastante útil das coordenadas
homogêneas se refere a representação de um ponto no infinito.

Considere o ponto sobre o eixo x indicado pelo vetor v * e
 A
 0

v*   
 0
 
H 
quando
H0 ,

A/ H 

v 

v :
 A / H
 0 


 0 


1


A aplicação de uma matriz de transformação em coordenadas homogêneas

resulta em um ponto no infinito quando o seu vetor posicional for do tipo v *
descrito a seguir.
 A
 B

v*   
C 
 
0
Os pontos no infinito dos eixos x,y e z, seriam representados respectivamente
por:
0
1
0
0
0
1



z *   
y *   
x *   
1
0
0
 
 
 
0
0
0
 
 
Estes vetores infinitos serão, em especial, usados na determinação de pontosde-fuga no caso de projeções planares perspectivas.
A matriz de transformação M de dimensão 4x4, pode ser particionada em 4
quatro partes:
3x3 3x1
M  

1
x
3
1
x
1


onde
1x3:
produz projeção perspectiva
1x1:
produz escalamento global
3x3:
produz uma transformação afim do tipo rotação e mudança de escala
3x1:
produz translação
Álgebra das projeções planares paralelas
Para que as projeções possam ser geradas em
computador é necessário se definir matrizes de
transformações que, aplicadas ao conjunto de pontos de
um objeto tridimensional, permita a obtenção da figura
projetada do objeto.
Assim, a seguir, para cada tipo de projeção serão
determinadas as matrizes de transformação.
Este capítulo cobre a álgebra das projeções planares
paralelas.
Álgebra das Projeções
Planares Paralelas
Ortográficas
Álgebra das Projeções Paralelas Ortográficas:
vista lateral, frontal e planta
As projeções planares ortográficas vista lateral, frontal e planta são obtidas
através de transformações ortogonais, de acordo com as regras abaixo, e
projeção no plano xy através de raios projetores perpendiculares a este
plano.
vista lateral- rotação de -90 no eixo x, eliminação da coordenada z
vista frontal- rotação de -90 no eixo z, rotação de –90 no eixo x, e eliminação da
coordenada z
vista superior (planta)- rotação de -90 no eixo z, translação no eixo y no maior
valor na coordenada x, e eliminação da coordenada z .
A seguir é detalhada a geração da vista lateral. Assim, partindo-se da
equação de rotação em torno do eixo x,
RX
0
0
1
0 cos( )  sen( )
 
0 sen( ) cos( )

0
0
0
0
0

0

1
determina-se a matriz de projeção da vista lateral Mpvl
MP
VL
1
0
 
0

0
0
0
0
0
0
1
0
0
0
0
0

1
sendo  = -90 e considerando-se a projeção no plano x’y’, coincidente
com o plano xy.
Álgebra das projeções planares paralelas
ortográficas axonométricas
As projeções vista lateral, frontal e planta permitem uma observação
parcial do objeto projetado, em especial, caso se observe apenas uma
delas, não é possível se conceber corretamente a forma do objeto.
Isso acontece principalmente quando as faces do objeto
posicionadas paralelamente aos planos cartesianos xy, yz e xz.
são
De forma a solucionar este problema, é usual a folha de projeto de um
objeto conter as projeções vista lateral, frontal e planta, mais uma
projeção axonométrica, a qual permite que se tenha uma visão mais
integrada do objeto.
As projeções paralelas ortográficas axonométricas tem a direção de
projeção e a normal ao plano de projeção não coincidentes com a direção de
um dos eixos principais.
Isto é equivalente a se rotacionar adequadamente o objeto e considerar a
direção de projeção e a normal ao plano de projeção coincidentes com a
direção de um dos eixos principais.
Nas projeções axonométricas há uma alteração da dimensão das faces do
objeto quando projetadas sobre o plano.
O tipo de rotação do objeto e as considerações sobre a alteração das
dimensões permitem que se determine as matrizes de projeção.
Neste sentido, o cálculo destas matrizes vai partir de uma rotação do objeto
em torno do eixo y e posteriormente do eixo x.
RX
0
0
1
0 cos( )  sen( )
RY  
0 sen( ) cos( )

0
0
0
0
0

0

1
 cos( )
 0

 sen( )

 0
0 sen( ) 0
1
0
0

0 cos( ) 0

0
0
1
RX
cos( )
0
sen( )

 sen( ) sen( ) cos( )  cos( ) sen( )
RY  
 sen( ) cos( ) sen( ) cos( ) cos( )

0
0
0

0
0

0

1
Aplicando-se esta matriz sobre os vetores unitários (1,0,0), (0,1,0) e
(0,0,1), versores nos eixos x, y, e z respectivamente, tem-se:
xX 
y 
X
 
 R X RY
 z X 


 1 
cos( )
1


0
 sen( ) sen( ) 
   

0
 sen( ) cos( ) 
 


1
1



u Y
 x Y 
 y 
Y
    R X RY
 z Y 
 
 1 
0
 0 
1
cos( ) 
   

0
sen( ) 
 


1
 1 

uZ
xZ 
 y 
Z
    R X RY
 zZ 
 
 1 
sen( )
0


0
 cos( ) sen( ) 
   

1
 cos( ) cos( ) 
 


1
1



uX
Considerando-se apenas as componentes x e y dos versores
rotacionados, tem-se as projeções destes vetores sobre os plano
xy.
De forma a se estipular condições para o encolhimento da
dimensão destes vetores, são calculados os seus módulos, como
ilustrado a seguir.
Assim, para o caso da projeção do versor sobre o eixo x tem-se:
 

u x XY 
 x  x

u x XY 
cos2 ( )  (sen 2 ( ) sen 2 ( ))
2
 y x
2
Similarmente, para os versores sobre os eixos y e z tem-se:

u y XY  cos( )

u z XY 
(sen 2 ( )  cos2 ( ) sen 2 ( )
Considerando-se que no momento da projeção de um objeto 3D sobre o
plano xy, ocorra um encolhimento por igual das coordenadas x e y dos
pontos deste objetos, tem-se:


u x XY  u y XY
cos2 ()  sen2 ()sen2 ( )  cos2 ( )
Como da trigonometria tem-se a equação:
cos2 ( )  sen2 ( )  1
aplicando-se esta relação, tem-se:
sen2 ()sen2 ( )  sen2 ()  sen2 ( )
e finalmente,
sen2 ()  sen2 ( ) / (1  sen2 ( ))
Uma maneira simples de se calcular os ângulos  e  é considerar um
valor fixo para o encolhimento no eixo z. Assim, inicialmente será suposto
que a dimensão do versor projetado será 1/2, ou seja, encolherá pela metade.
Logo, da equação

u z XY 
(sen 2 ( )  cos2 ( ) sen 2 ( )
tem-se que
sen2 ()  cos2 ()sen2 ( )  1 / 2
2
Aplicando-se a equação anteriormente obtida
sen2 ()  sen2 ( ) / (1  sen2 ( ))
e rearranjando, tem-se:
8 sen4 ( )  9 sen2 ( )  1  0
2
Fazendo-se sen ( )  x , tem-se:
8x 2  9 x  1  0
Resolvendo-se essa equação, tem-se x=1/8 e x=1. A segunda
raiz é inválida porque origina valor zero no denominador da
equação anteriormente obtida
sen2 ()  sen2 ( ) / (1  sen2 ( ))
Usando-se a primeira raiz tem-se:
sen2 ( )  1 / 8

sen2 ( )  1 / 7
  20.705
  22.208
e
Desta maneira aplicando-se os valores obtidos, tem-se a seguinte
matriz:
R X RY
0.
0.377964
 0.925820
 0133631
.
0.935414  0.327321


 0.353553 0.353553 0.866025

0.
0.
0.

0
0

0

1
que zerando os valores da coordenada z, tem-se a matriz de projeção
axonométrica dimétrica:
MP D
0.
0.377964
0.925820
 0133631
.
0.935414  0.327321
 

0.
0.
0.

0.
0.
0.

0
0

0

1
Projeção axonométrica isométrica
A projeção isométrica permite o encolhimento por igual de todas as
coordenadas. Logo:



u x XY  u y XY  u z XY
Isso significa que , além da equação
resultante de
sen2 ()  sen2 ( ) / (1  sen2 ( ))


ux  uy
XY
XY
tem-se a seguinte equação:
sen2 ()  cos2 ()sen2 ( )  cos2 ( )
resultante de
o que resulta em:

uz

XY

uy
XY
sen2 ( )  (1  2 sen2 ( )) / (1  sen2 ( ))
 sen2 ( )  1  2 sen2 ( )
e
sen2 ( )  1 / 3
Portanto sen( )  1 / 3  sen( )  1 / 2 e
  35.26429
  45.0
,
Substituindo os valores, tem-se a matriz
R X RY
0.
0.707107
 0.707107
 0.408248 0.816597  0.408248
 
 0.577353 0.577345 0.577353

0.
0.
0.

0
0

0

1
que permite a projeção isométrica, após se zerar a coordenada “z”:
0.
0.707107
0.707107
0.408248 0.816597  0.408248
MP I  

0.
0.
0.

0.
0.
0.

0
0

0

1
Um fato interessante advém da análise do ângulo  que o versor no eixo
x faz com o eixo x’, quando projetado no plano x’y’ .
Tem-se:
 cos( ) 

uX  

sen( )sen( )
 tan( )  (sen( )sen( )) / cos( )
tan( )  ( 1 / 2 1 / 3) / 1 / 2  3 / 3
Este resultado é bem conhecido de desenhistas, pois é com um esquadro
de 30 e 60 que eles desenham a projeção de um objeto em uma folha
de projeto.
Uma outra consideração importante sobre projeções isométricas se
refere ao fato que:
sen ( )  1 / 3
   35.26 ou   144.74
sen ( )  1 / 2

2
2

. 
  45.00 ou   13500
Logo, a projeção isométrica pode ser estruturada de outras formas.
Exemplo
A seguir é esboçado um exemplo de obtenção de uma projeção
Axonométrica de um objeto, cujos vértices estão explicitados

através da matriz PI

PI  M I
1
0

0

1
 A
1 1 1 0 0 0 0
1 1/ 2 0 0 1 1/ 2 0 

0 1 1 0 0 1 1

1 1 1 1 1 1 1
B C D E F G H 
Álgebra das Projeções
Planares Paralelas Oblíquas
• As projeções paralelas oblíquas tem a direção
do plano de projeção distinta da direção dos
raios projetores.
• As projeções paralelas obliquas se subdividem
em cavalier e cabinet, sendo que na projeção
cabinet há uma distorção na dimensão do
versor perpendicular ao plano de projeção, em
geral, um encurtamento de 1/3 ou de 1/2.
• Além disto, em ambos os casos, o ângulo ()
que este versor forma com o eixo x pode ser de
30 ou 45.
Ângulo  formado pela linha P1-P1’ com o plano xy - determina o grau de
encurtamento ou de dilatação da dimensão do versor ( =45.0 não há
alteração de dimensão e se =60 há um encurtamento pela metade ).
Ângulo  formado pela projeção da linha P1-P1’ com o eixo x - não tem
influência sobre o tamanho do versor e o seu valor é arbitrário.
P1  (0,0, z1 )  P1  (d cos( ), d sen( ))
P2  (0,0, z2 )  P2  (( z2 / z1 ) * d )cos( ),(( z2 / z1 ) * d )sen( ))
A generalização da formulação para qualquer ponto pode também ser feita
facilmente. Assim, supondo-se z1 igual a 1 e z2 igual a z, tem-se:
P2  (0,b, z)  P2  ( z * d cos( ),b  ( z * d )sen( ))
P3  (a,0, z)  P3  (a  ( z * d )cos( ),( z * d )sen( ))
d
Em representação matricial:
 x 
1
 y 
0
   
 z 
0
 

1
 
0
0 d cos( )
1 d sen( )
0
0
0
0
0
0

0

1
x
 x  (( z * d ) cos( )) 
 y
 y  (( z * d ) sen( )) 
   

z


0
 


1
1
 


Para exemplificar a aplicação da matriz de projeção oblíqua, seja d=1,
sem alteração da dimensão do versor, o que significa (=45.0), e
=45.0, o que define uma matriz de projeção obliqua cavalier.
MO
1

0


0

0
0
1
0
0
2 /2
2 /2
0
0
0

0
0

1
Exemplo:
MO
1

0
 
0

0
0
1
0
0
2 /2
2 /2
0
0
0

0
0

1
Y
Y'
F
B
C
G
F
B
H
D

PO  M O

PO 
1

0
0

1
A

1
0

0

1
 A
1 1 1 0 0 0 0
1 1/ 2 0 0 1 1/ 2 0 

0 1 1 0 0 1 1

1 1 1 1 1 1 1
B C D E F G H 
1 (2 
1 (1 
0
1
B
2) / 2 ( 2  2) / 2
2) / 2
2 /2
0
0
1
1
C
D
G
H
E
C
A
D
Z
0
0
0
1
E
0
2 /2
1 (1  2 ) / 2
0
0
1
1
F
G
2 / 2

2 / 2
0 

1 
H 
X
E
A
X'
Álgebra das Projeções Planares
Perspectivas
O ponto P (x,y,z) é projetado no ponto P’ (x’,y’,0), contido no plano xy, a partir de
um centro de projeção localizado no ponto C (0,0,k).
Aplicando-se a semelhança de triângulos e considerando-se que a coordenada z
tem valor negativo obtém-se:
x  / k  x / (  z  k )  x   x / ((  z / k )  1)
y  / k  y / (  z  k )  y   y / ((  z / k )  1)
X 
1
Y 
0
   
Z 
0
 

H
 
0
0 0
1 0
0 1
0 1/ k
0
0

0

1
x
x


 y


y
   

z


z
 


1
(

z
/
k
)

1
 


P
Y
y
 x 
 X / H
 x / ((  z / k )  1) 
 y 
Y / H 
 y / ((  z / k )  1) 
   
  

 z 
Z / H 
 z / ((  z / k )  1) 
 




1
1
1
 




y'
k
Z
CP
P’
x
z
x'
X
 x 
 X / H
 x / ((  z / k )  1) 
 y 
Y / H 
 y / ((  z / k )  1) 
   
  

 z 
Z / H 
 z / ((  z / k )  1) 
 




1
1
1
 




•
•
•
Quando se adota o plano xy como o plano de projeção, desconsidera-se o
valor de z’.
Nota-se que nesta equação se k   , então x   x e y   y , o que
origina uma projeção paralela, com raios projetores perpendiculares ao
plano de projeção xy.
Considerando-se x = at, y = bt e z = -ct, com a, b, e c maiores que zero:
 x    at / (( ct / k )  1) 
 y    bt / (( ct / k )  1) 
  

 z    ct / (( ct / k )  1) 
  

1
1
  

e se t 
 x    ka / c
tem-se:  y    kb / c 
  

 z    k 
  

1  1 
O ponto (ka/c, kb/c, -k) constitui um ponto-de-fuga, dado que ele é um ponto
finito para o qual converge a projeção de uma linha infinita. Dependendo do
valor de a, b e c, dado k fixo, infinitos pontos-de-fuga podem ser
determinados.
Em termos de classificação da projeção perspectiva interessa apenas os
pontos-de-fuga associados

às linhas
 paralelas aos eixos cartesianos.
Assim, considere-se: v1 , v2 e v3
que definem, respectivamente,
linhas paralelas aos eixos x, y e z.
cujas projeções são obtidas por:
at 
a 
a 
b 
bt 
b 



v1    , v2    , v3   
c
c
ct 
 
 
 
1
1
 
 
1
at / ((  c / k )  1) 
 a / ((  c / k )  1) 
 a / ((  ct / k )  1) 


bt / ((  c / k )  1) 
 b / ((  ct / k )  1) 
  b / ((  c / k )  1)  

, v   

v1 
, v2  
3
 c / ((  c / k )  1) 
 c / ((  c / k )  1) 
ct / ((  ct / k )  1) 






1
1
1






e quando
t 
resulta em:

B 

1
v1   
C1 
 
1
 A2 


v2   
C2 
 
1
 0 
 0 

v3   
 k 
 
 1 


v
v

• Mesmo sendo B1, C1, A2 e C2 constantes finitas, 1 e 2
•
•
resultam em
pontos que no espaço tendem ao infinito, ou seja, não há pontos-de-fuga
associados às linhas paralelas aos eixos x e y.


v
v
Este resultado é esperado, pois 1 e 2 definem linhas perpendiculares ao
eixo z que contém o centro-de-projeção.

A transformação perspectiva de v3 resulta em um ponto finito no espaço, ou
seja, há ponto-de-fuga.

B 

1
v1   
C1 
 
1
 A2 


v2   
C2 
 
1
 0 
 0 

v3   
 k 
 
 1 
y
b
c
z
v3
v2
v1
a x
•
Os pontos A’ e B’ são as projeções no plano xy dos
pontos AB da linha A-B perpendicular ao plano de
projeção.
•
Nota-se que considerando a coordenada z, os pontos
A* e B* mostram como a transformação perspectiva
força a convergência dos pontos transformados para
o ponto-de-fuga.
•
•
B
A
Para t=0, resulta no ponto PI (a, b, 0), que é o ponto
que a linha AB estendida intercepta o plano.
y
Os pontos A* e B* estão na linha PI-PF e, assim,
quando B, B*PF e B’(0,0), o que faz com que
todos os pontos projetados no plano estejam na linha
limitada pelos pontos (a,b) e (0,0).
PI
A’
A*
B*
B’
PF
-k
x
z
k
Nota-se que estes mesmos resultados são obtidos quando se aplica a matriz de
transformação perspectiva sobre pontos infinitos:
 1
0
 0
 0
1
 0



v1    , v2    , v3   
 0
0
 1
 
 
 
0
0
 
 
 0
Aplicando-se as equações:
X 
1 0 0
Y 
0 1 0
   
Z 
0 0 1
 

H 
0 0  1 / k
resulta em:
0
0

0

1
x
x


 y


y
   

z


z
 


1
(  z / k )  1
 x 
 X / H
 x / ((  z / k )  1) 
 y 
Y / H 
 y / ((  z / k )  1) 
   
  

 z 
Z / H 
 z / ((  z / k )  1) 
 




1
1
1
 




1
0
 0 
0
1
 0 



v1    , v2    , v3   
0
0
 k 
 
 
 
0
0
 
 
 1 
•
•
A certificação do número de pontos-de-fuga das matrizes é obtida através
da aplicação dos pontos infinitos em coordenadas homogêneas.
Assim, inicialmente, utilizando-se a matriz MTPxy e os pontos definidos
pelos vetores infinitos, tem-se:
 r 
0
0
0
 s
0



v1    , v2    , v3   
0
0
1
 
 
 
1
1
0
•
•
Como foram gerados dois pontos-de-fuga, a matriz MTPxy é uma matriz de
transformação perspectiva de dois pontos-de-fuga.
Similarmente, aplicando-se a matriz MTPxyz sobre os pontos no infinitos
tem-se:
 r 
0
 0 
0
  s
 0 



v1    , v2    , v3   
0
0
 k 
 
 
 
1
1
 1 
•
Logo, a matriz MTPxyz é uma matriz de transformação perspectiva de três
pontos-de-fuga.
•
•
•
•
O objetivo primordial em se utilizar uma projeção perspectiva é a obtenção
de uma visão realística de um objeto.
A simples aplicação da projeção perspectiva não garante este objetivo.
Por exemplo, a figura abaixo mostra o resultado de uma projeção
perspectiva com pontos-de-fuga (3,0,0) e (0,3,0).
Neste caso, a qualidade visual desta projeção deixa muito a desejar.
y
y’
x
z
x’
•
•
•
•
Uma maneira de resolver este problema é utilizar a projeção perspectiva
associada às transformações de mudança de escala e rotação.
A figura abaixo mostra uma nova visão do objeto quando ele é rotacionado
em torno dos eixos x e y e posteriormente projetado através de uma matriz
de projeção perspectiva de dois pontos-de-fuga.
Neste caso, é possível se ter uma visão completa do objeto e dos pontos-defuga.
Nota-se, em especial, como as linhas paralelas convergem para o mesmo
ponto-de-fuga após a projeção.
PF-1
PF-2
• Em termos de computação gráfica, o foco de interesse é a projeção
de um ponto no espaço sobre o plano da tela.
• Neste sentido, para ilustrar uma forma mais intuitiva de se obter as
equações anteriores, será deduzido a matriz de projeção
perspectiva a partir da consideração de que a tela do computador
está sobre o plano xy e que o centro de projeção (observador) está
fora deste plano e em alguma parte positiva do eixo z.
y
P1
P2
x
CP
z
Supondo-se conhecido P1 e CP, pode-se escrever a equação de
reta que passa por estes dois pontos:
x  xc  ( x1  xc )u
y  yc  ( y1  yc )u
y
P1
z  zc  ( z1  zc )u
P2
Logo, o valor de u para P2, com coordenadas (x2,y2,0), é:
Portanto,
u   zc / ( z1  zc )
x2  xc  zc ( x1  xc ) / ( z1  zc )
y2  yc  zc ( y1  yc ) / ( z1  zc )
e tem-se a matriz:
  zc 0
 0 z
c

MP 
 0
0

0
 0
xc 0 
yc 0 

0 0 

1  zc 
x
CP
z
  zc 0
 0 z
c
MP  
 0
0

0
 0
•
xc 0 
yc 0 

0 0 

1  zc 
Dividindo-se todos os elementos da matriz MP por um mesmo valor não se
altera o resultado da sua aplicação sobre um vetor em coordenadas
homogêneas. Assim, dividindo-se todos os elementos por 1/zc tem-se:
1
0
MP  
0

0
0  x c / zc
1  y c / zc
0
0
0  1 / zc
0
0

0

1
1
0
MP  
0

0
•
0
0

0

1
Considerando-se xc e yc iguais a zero na MP , tem-se:
1
0
MP  
0

0
•
0  x c / zc
1  y c / zc
0
0
0  1 / zc
0
0
1
0
0
0
0  1 / zc
0
0

0

1
que é a matriz de transformação perspectiva MTPz, deduzida
anteriormente, no caso do centro de projeção estar no ponto (0,0,zc).
A matriz MP gera apenas um ponto-de-fuga. Para a geração de mais pontos-de-fuga
pode-se associar MP com matrizes de rotação.
Nota-se que, caso se rotacione um objeto é possível obter um número maior de
pontos-de-fuga. Assim, fazendo-se a multiplicação da matriz MP pela matriz
RxRy
 cos( )
 0

 sen( )

 0
0 sen( ) 0
1
0
0

0 cos( ) 0

0
0
1
cos( )
0
sen( )

 sen( ) sen( ) cos( )  cos( ) sen( )
RY  
 sen( ) cos( ) sen( ) cos( ) cos( )

0
0
0

0
0

0

1
(  xc / zc) sen( )
sen( )  ( xc / zc) cos( ) cos( )
 cos( )  ( xc / zc) sen( ) cos( )

sen( ) sen( )  ( yc / zc) sen( ) cos( ) cos( )  ( yc / zc) sen( )  cos( ) sen( )  ( yc / zc) cos( ) cos( )
MPR  

0
0
0

(1 / zc) sen( ) cos( )
( 1 / zc) sen( )
( 1 / zc) cos( ) cos( )

0

0
0

1
RX
0
0
1
0 cos( )  sen( )
RY  
0 sen( ) cos( )

0
0
0
0
0

0

1
RX
tem-se a equação:
Supondo-se zc, sen(), sen(), cos(), cos() diferentes de zero,
deriva-se os seguintes pontos-de-fuga:
 xc  zc(cos( ) / (sen( ) cos( )))
PFx  

y
c

z
c
(sen(

)
/
cos(

))


xc


PFy  

y
c

z
c
(cos(

)
/
sen(

))


 xc  zc(sen( ) / (cos( ) cos( )))
PFz  

y
c

z
c
(sen(

)
/
cos(

))


Assim, utilizando-se a matriz MPR tem-se o controle simultâneo do
centro de projeção e dos pontos-de-fuga.
Esta matriz pode ser modificada para incorporar rotações no eixo z.