Está en la página 1de 51

Apostila do Curso de Computao Grfica

Prof. Dr. Andr Luiz Battaiola


(Adaptado por: Prof. Dr. Jos Hiroki Saito)
Departamento de Computao - DC
Universidade Federal de So Carlos - UFSCar
Via Washington Luiz, Km. 235
CP. 676
CEP: 13565-905
So Carlos - SP
fone: 016-260-8232 // fax: 016-260-8233

ndice
1-

2-

34-

5.

6.
7.
8.

9.

Conceitos de Computao Grfica


.......................................................
1.1 Conceitos de Aplicativos Grficos .................................................
1.2 Conceitos de CAD .........................................................................
1.3
Arquitetura dos Terminas Grficos ................................................
Transformaes Afins ...............................................................................
2.1
Translao .......................................................................................
2.2
Escalamento ....................................................................................
2.3
Rotao ...........................................................................................
2.4 Espelhamento .................................................................................
2.5 Rotao em Torno de um Eixo Genrico .......................................
2.4 Cisalhamento ..................................................................................
2.5 Composio de Transformaes ....................................................
Coordenadas Homogneas .......................................................................
Projees Planares ....................................................................................
4.1
Classificao das Projees Planares .............................................
4.2
Projees Planares Paralelas ..........................................................
4.3)
Projees Planares Perspectivas .....................................................
lgebra das Projees Planares Paralelas .................................................
5.1
lgebra das Projees Planares Ortogrficas ................................
5.2
lgebra das Projees Planares Ortogrficas Axonomtricas .......
5.3
lgebra das Projees Planares Oblquas ......................................
lgebra das Projees Planares Perspectivas ...........................................
Uso de Projees em Sistema CAD ..........................................................
Transformaes e Mapeamento e Coordenadas em Bibliotecas Grficas
8.1
Esquema de Transformaes na Biblioteca Grfica OpenGL ........
8.1.1.
Transformaes de Visualizao e Modelagem .............................
8.1.2.
Transformao de Projeo ............................................................
8.1.3.
Transformao de Viewport ...........................................................
8.1.4.
Matrizes de Transformao ...........................................................
8.2
Esquema de Transformaes na Biblioteca Grfica VRML ..........
Referncias ..........................................................................................................

04
05
06
06
11
11
11
12
13
14
14
15
17
19
19
20
22
26
26
26
30
34
38
42
42
44
45
46
46
48
51

AGRADECIMENTOS: Aos alunos Elson Ambrsio Barbosa, Renato


Alexandre Bolzan de Paula, Rafael Togami, Luciano Pereira Soares e Ana
Claudia Stecko Russo dos cursos de Engenharia em Computao e bacharelado
em Cincia da Computao do DC/UFSCar pela ajuda na confeco deste texto.

Objetivo do Curso:
Proporcionar o aprendizado de tcnicas e conceitos bsicos de computao grfica, que podem ser
utilizados para o desenvolvimento e/ou avaliao e/ou uso de aplicativos grficos.

Programa Resumido:
12345-

6-

78-

Conceituao de computao grfica e reas de aplicao


Dispositivos grficos e arquiteturas de terminais grficos
Conceituao de aplicativos grficos.
Portatilidade, evoluo das bibliotecas grficas e o padro GKS.
Algoritmos de transformao de primitivas grficas 3D
coordenadas homogneas
transformaes: rotao, translao e escalamento
projees planares: paralelas e perspectivas
Visualizao cientfica e seus principais conceitos:
anlise cientfica
evoluo das ferramentas grfica
ferramentas avanadas de visualizao
conceito de eficincia e expressividade grfica
tipos de dados cientficos e formas de manipulao pelas ferramentas grficas
processamento distribuido e paralelo em visualizao cientfica
Curvas: Bezier e Spline
Transformaes e recorte em pacotes grficos
algortimos de clipping
pipeline de transformao

Bibliografia
J. Foley, A. van Dam,. S. Feiner, J. Hughes - Computer Graphics - Principles and Pratices.
Addison-Wesley 1990.
D. Hearn, M. Pauline Baker - Computer Graphics. Prentice Hall - Second Edition - 1994
W. M. Newman, R. F. Sproull -Principles of Interactive Computer Graphics. McGraw Hill - 1979
D. F. Rogers et all - Mathematical Elements for Computer Graphics. McGraw Hill - 1976
Romero Tori et all.- Fundamentos de Computao Grfica.
Livros Tcnicos e Cientficos Editora 1987
Jon Q.Jacobs- Delphi Developers Guide to OpenGL. Wordware Publishing, Inc. 1998
Mason Woo, Jackie Neider, Tom Davis & Dave Shreiner (OpenGL Architecture Review Board) OpenGL Programming Guide, Third Edition The Official Guide to Learning OpenGL, Version 1.2.
Addison Wesley,1999
Gomes, J. & Velho, L. - Computao Grfica Volume 1. IMPA, RJ, 1998

Esquema de Avaliao
Nfinal = NPV*0,5 + NPJ*0,5
NPV = Valor da Prova_1 ou, caso feita, o valor da Prova Substitutva
NPJ = Nota do Projeto

1)

Conceitos de Computao Grfica


A computao grfica pode ser entendida como o conjunto de algoritmos, tcnicas e metodologias
para o tratamento e a representao grfica de informaes atravs da criao, armazenamento e
manipulao de desenhos, utilizando-se computadores e perifricos grficos. Em termos de aplicao,
ela pode ser dividida atualmente nas seguintes reas:
CAD
Apresentaes Grficas
Arte . por Computador
Entretenimento
Educao e Treinamento
Visualizao Cientfica
Atualmente a potencialidade da computao grfica est bastante relacionada com a evoluo dos
computadores, em termos de hardware e software. Por exemplo, hoje microcomputadores tem
performance compatvel com alguns tipos de estaes de trabalho e no mercado se encontram uma
grande variedade de dispositivos grficos de alta perfomance, tais como, traadores grficos, mesas
digitalizadoras, scanners, mouses, trackballs e impressoras de alta qualidade. Estes fatores tem
permitido que os aplicativos grficos aumentem acentuadamente a sua versatilidade, capacidade e
performance.
Outro fator a se destacar a grande interao da computao grfica com outras reas da cincia (fig.
1.1), caracterizada por uma via de dois sentidos, onde tanto a computao grfica recebe subsdios
como fornece.

Fsica
Outras ...
Matemtica

Computao
Grfica

Medicina

Psicologia
Eng.
Eletrnica

Artes

Figura 1.1: Interao da computao grfica com outras reas.


A fsica, por exemplo, forneceu computao grfica todos os conceitos da tica, o que permitiu a
elaborao de modelos de cores e de iluminao e preenchimento de areas. A computao grfica por
sua vez forneceu fsica as ferramentas de visualizao cientfica que permitem codificar em
informao grfica os dados de seus experimentos.
A matemtica est presente de forma acentuada em praticamente todas as reas do conhecimento, no
entanto, somente para dar um exemplo mais especfico, no caso da computao grfica pode se citar os
conceitos de algebra linear e de trigonometria utilizados extensivamente. A retribuio da computao
grfica est nas ferramentas de visualizao do comportamento de funes matemticas, por exemplo.
Conforme mais detalhado no item 1.5, a medicina deu a computao grfica vrios conceitos
importantes relacionados a forma como o olho capta uma imagem. A computao grfica fornece
medicina ferramentas de visualizao de partes ou de todo o corpo humano.
A psicologia forneceu computao grfica importantes conceitos relacionados a forma de
interpretao de uma informao grfica, os quais sero estudados no captulo sobre visualizao

cientfica. A computao grfica deu a psicologia mecanismos para ela explorar mais eficientemente a
comunicao visual objetivando, por exemplo, a implementao de ferramentas educacionais.
A engenharia eletrnica deu a computao grfica a tecnologia para a produo dos dispositivos
grficos. Atravs da computao grfica, a engenharia eletrnica ganhou ferramentas de auxlio para o
desenvolvimento de placas de circuito impresso e de pastilhas de circuito integrado.

1.1

Conceitos de Aplicativo Grfico


Uma aplicativo grfico (fig. 1.2) um programa ou um sistema composto de vrios programas que
permitem a gerao de uma determinada apresentao grfica que pode ser composta de recursos 2D
e/ou 3D e/ou imagem. Atualmente, os aplicativos grficos em geral dispem de recursos de interao
homem-mquina que permitem a composio ou a gerao interativa de uma apresentao grfica.

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

Figura 1.2: Esquema de um aplicativo grfico


Na implementao de um aplicativo grfico trs parmetros so importantes de considerao:
1)

Sistema Operacional
Isto implica em priorizar o desenvolvimento para estaes de trabalho com sistema operacional
UNIX ou microcomputadores com ambiente Windows, OS2, Mac, etc.

2)

Biblioteca Grfica
A biblioteca grfica contem as funes que o aplicativo aciona para a gerao da primitivas
grficas.
Um importante fator relacionado as bibliotecas grficas o da portabilidade do aplicativo em
termos de ambiente computacional e de dispositivos, ou seja, a biblioteca grfica a ser utilizada
deve ser passvel de acesso na maior gama possvel de computadores e garantir a sua
independncia em relao aos dispositivos grficos, permitindo que atravs de pequenos
programas denominados device drivers se realize a comunicao entre a biblioteca e os
dispositivos, permitindo, assim, que a substituio de um dispositivo grfico seja feita de forma
simples.
O implementador de qualquer sistema grfico tem a sua disposio um enorme conjunto de
bibliotecas grficas:Core, Dore, XFDI, Starbase, GKS, PHIGS, GL, OpenGL, etc, no entanto,
como atualmente a biblioteca grfica OpenGL tem se tornado um padro de fato, dado que os
grandes produtores de software e hardware tem priorizado o seu uso, a implementao de
qualquer aplicativo grfico deve considerar prioritariamente a sua utilizao.
Outra biblioteca que est se tornando bastante importante a DirectX da Microsoft, dado que
ela suportada por uma empresa lder no mercado mundial de software.

3)

Sistema de enjanelamento

Em se tratando de ambiente UNIX e com sistema XWindow de enjanelamento, o


implementador se depara com dois estilos de interface: Motif e Open View. O Motif, adotado
como padro pela OSF (Open Software Foundation), tem sido atualmente bastante considerado
pelos implementadores de aplicativos grficos.
No caso de microcomputadores, os sistemas de enjanelamento j tem interfaces nicas
associadas ao ambientes operacionais Windows, Mac, OS2, etc.
Estes conceitos sero analisados novamente no captulo sobre o GKS.

1.2

Conceitos de CAD
A palavra CAD (Computer Aided Design) se refere ao processo de se utilizar um computador para
auxiliar no projeto dos mais variados produtos, tais como, um edifcio, um automvel, um nvio, uma
espaonave, um eletrodomstico, um tapete, uma roupa, etc.
O objetivo principal de uma ferramenta CAD permitir a elaborao do projeto de um produto com
maior qualidade, rapidez e preciso. Em termos industriais, isto significa aumentar a qualidade e a
eficincia de um produto e diminuir o seu custo de produo.
Sistemas CAD tem por objetivo auxiliar o projetista em todo ou em parte do processo de criao,
manipulao e representao de desenhos e projetos. So implementados atravs de conceitos de
computao grfica, tais como, interfaces grficas interativas, tcnicas de gerao de grficos 2D ou
3D, rendering, animao, etc.
Em geral, sistemas CAD funcionam de forma integrada a sistemas CAM (Computer Aided
Manufacturing) que disponibilizam recursos para a transformao do produto projetado no sistema
CAD em cdigos de controle das mquinas responsveis pela manufatura do mesmo.
Atualmente, sistemas CAD/CAM sofisticados fazem parte de um conjunto maior de programas
denominado de sistema de gerenciamento de produo industrial (Management Information System,
MIS), cuja funo gerenciar todas as etapas de produo, o que envolve controle de estoque, de
mquinas na linha de montagem, de inspeo de qualidade, etc.

1.3

Arquiteturas dos Terminais Grficos


No incio do desenvolvimento dos terminais grficos, o modo de operao destes dispositivos era
semelhante ao de um osciloscpio, dado que para produzir uma linha, o feixe de eltrons sensibilizava
de forma contnua a tela. Devido a persistncia luminosa do material que reveste a tela, a imagem se
mantinha ativa at o prximo ciclo de redesenho, e devido a forma de gerao de uma linha na tela,
estes terminais foram denominados de terminais vetoriais (fig. 1.3).
Dado a deficincia tecnolgica da poca, traduzida pelo alto preo das memrias e sua baixa
capacidade de armazenamento, bem como a baixa qualidade dos terminais, esta arquitetura era a mais
conveniente devido ao uso pequeno de memria e a simplicidade dos terminais vetoriais. A memria
do terminal, denominada de refresh buffer, armazenava comandos simples que indicavam ao
controlador de exibio onde traar os segmentos de reta que compunham a imagem total.
Os dois maiores problemas desta arquitetura eram: a qualidade ruim das imagens geradas e o fato de
que imagens complexas comeavam a piscar devido a baixa taxa de redesenho. A qualidade ruim da
imagem advinha do fato de que gerar reas coloridas no era uma operao natural para estes
terminais e, usualmente, uma imagem complexa composta de reas coloridas. Uma imagem
complexa tambm usualmente composta de vrias primitivas grficas, o que significa uma maior
quantidade de elementos para serem armazenados no refresh buffer. Assim, se a taxa de redesenho no
for suficientemente alta, a imagem gerada comea a piscar.
Paralelamente popularizao da televiso, o que diminuiu o preo dos televisores, e a evoluo da
microeletrnica, o que permitiu aumentar a capacidade de armazenamento das memrias e diminuir o
seu custo, surgiram os terminais grficos com arquitetura por varredura (raster terminals). Neste caso,
o terminal pode ser encarado como uma matriz de pontos que podem estar acesos ou no, para tanto o
feixe de eltrons varre a tela horizontalmente em um movimento conjugado com um deslocamento
vertical, atingindo os pontos que devem ser acesos (fig. 1.4). O controlador de vdeo controla a

ativao de cada ponto na tela, atravs de uma matriz de pontos, onde est armazenado o estado de
cada um deles. Assim, o tamanho da memria de pontos proporcional a resoluo da tela. A
modificao da imagem gerada realizada atravs da alterao dos valores da matriz de pontos, o que
realizado pelo controlador de exibio, sob o controle da CPU. Este tipo de arquitetura a mais
utilizada atualmente e os modernos terminais por varredura permitem a gerao de imagens com
altssima qualidade e grande variedade de elementos.
CPU
.
.
.
MOVE
10
15
LINE
400
300
.
.
.

Controlador
de Exibio

Refresh
Buffer
Teclado
Mouse
Figura 1.3 - Terminal vetorial

0 0 0 0 0
0 0 0 1 1
0 0 1 0 0
0 1 0 0 0
0 1 0 1 1
0 1 0

0 0 0
0 0 0
1 0 0
0 1 0
0 1 0

Terminal
de Vdeo

CPU
Controlador
de Exibio

Teclado
Mouse

1 1 0 1 0

Controlador
de Vdeo
Terminal
Figura 1.4 - Terminal por varredura (Raster).

A arquitetura mais comum para um terminal grfico exibida na figura 1.5, onde o frame buffer
armazenado na memria local do sistema. Como neste caso a transmisso do contedo do frame buffer
para o controlador de vdeo feita atravs do barramento central, tanto a CPU como o barramento
ficam ocupados com uma operao menos nobre em termos computacionais.
A arquitetura mais comum dos terminais por varredura exibida na figura 1.6. Neste caso, uma poro
da memria do sistema serve como frame buffer e o controlador de vdeo exibe a imagem armazenada
acessando esta poro da memria atravs de uma porta separada. A razo de acesso definida pela
taxa de varredura. Em muitos sistemas, uma poro fixa da memria alocada permanentemente para
o frame buffer, no entanto, outros sistemas tem vrias reas de memria intercambiveis. Em
microcomputadores estas pores de memrias so chamadas de pginas e, em geral, duas delas so
usadas como frame buffer, o que permite se implementar um esquema de double buffer, que consiste

em manter uma pgina ativa, ou seja, em exibio, e a outra desativada. A escrita de uma nova
imagem feita na pgina desativada e, ao final da escrita, ela se torna a pgina ativa. Isto permite
tornar mais suave o processo de animao de um conjunto de imagens, dado que o observador no
visualiza a escrita de cada imagem.
Dispositivos
Perifricos

CPU

BUS

Controlador
de Vdeo

Memria
do Sistema

Monitor

Figura 1.5 - Arquitetura simples.

Dispositivos
Perifricos

CPU

BUS

Memria
do Sistema

Frame
Buffer

Controlador
de Vdeo

Monitor

Figura 1.6 - Arquitetura comum.

Algumas operaes realizadas pela CPU e relacionadas com a manipulao dos pixels so custosas em
termos de tempo para serem realizadas somente pela CPU. Por exemplo, a operao de scan
conversion (determinao de endereo em memria de um determinado pixel) ou as operaes raster
(cpia, movimentao ou combinao de reas retangulares de pixels) consomem tempo, apesar da
simplicidade do procedimento. Desta forma, possvel se adicionar um processador grfico
arquitetura, de maneira que estas tarefas possam ser realizadas por este processador, aliviando a carga
sobre a CPU. Estes processadores tambm podem realizar outras tarefas como, por exemplo, gerar
primitivas grficas (linhas, arcos, etc) ou operaes mais sofisticadas (linhas com anti-aliasing,
rendering, etc). A figura 1.7 mostra como fica a arquitetura da figura 1.6 acrescida de um processador
grfico.
Certamente o valor 0 ou 1 para um pixel no suficiente para se produzir uma imagem de qualidade.
Assim, a pergunta : quantos bits por pixeis so necessrios para se gerar uma imagem com qualidade
satisfatria, bem como garantir uma transio suave de cores ou tons de cinza? A resposta que 5 ou 6
bits pode ser suficiente, mas muitas vezes se necessita 8 ou mais bits. No caso de terminais coloridos o
usual 8 bits por cor primria: vermelho, verde e azul, cuja sigla em ingls RGB.
Mesmo atualmente com a queda do preo das memrias RAM, custoso se montar uma memria de
vdeo com 24 bits por pixel, alm disto, incomum se utilizar 224 diferentes cores em uma imagem.
Por outro lado, muitas vezes interessante se observar uma imagem onde a associao de cores com
os pixels possa ser mudada. Desta forma, muitos terminais utilizam o esquema da tabela de consulta
de cores, tambm conhecida como LUT (look-up table). Por este processo, cada pixel tem um valor de

8 bits associado, o que constitui um ndice para uma tabela de cores de 256 posies (figura 1.8).
Nesta posio est armazenado o valor da cor que decomposta em fraes de suas componentes
bsicas, ou seja, as cores primrias RGB, caracterizaro o pixel na tela. Note-se que no caso da figura
1.8 possvel se trabalhar com 212 cores diferentes, no entanto, somente 256 diferentes cores podero
ser exibidas simultaneamente.
Dispositivos
Perifricos

CPU

Arquitetura
com Proces.
Grfico

BUS

Processador
Grfico

Memria do
Processador
Grfico

Memria
do Sistema

Frame
Buffer

Controlador
de Vdeo

Monitor

Figura 1.7 - Arquitetura com processador grfico.

A definio de caractersticas dos terminais grficos deve ser baseada nas propriedades do olho
humano, dado que ele o dispositivo que ir transmitir uma imagem para o crebro, onde ser
interpretada.
Um esquema simplificado do olho humano exibido na figura 1.9. Note-se neste esquema a retina,
que uma membrana que reveste a parte interna do olho o local de formao da imagem. Ela
formada basicamente por 2 classes de receptores de imagens:
1)
cones - 6 a 7 milhes - muito sensveis a nveis altos de luminosidade e a cores
2)
bastonetes - 75 a 150 milhes - sensveis a baixos nveis de luminosidade
A fvea a parte central da retina. Ela formada principalmente de cones e responsvel pela
distino de detalhes finos de uma imagem. Note-se que o olho humano distingue melhor cores em
ambientes bem iluminados que so adequados a ao dos cones. Ao contrrio, em ambientes de pouca
luz, onde os bastonetes atuam, o nvel de distino de cores menor.
Em termos da resoluo de uma imagem, os olhos tambm ditam os parmetros adequados. Por
exemplo, a resoluo de uma imagem de TV da ordem de 512 x 384 pixels, em largura x altura, que
um valor relativamente baixo e origina imagens de qualidade mdia. A resoluo dos terminais
grficos modernos de 1280 x 1024, o que permite a exibio de imagens com boa qualidade e, por
isto, ser adotada como a resoluo das TVs digitais. Resolues maiores do que esta esbarram no
limite da capacidade do olho humano em distinguir detalhes, ou seja, o efeito visual de resolues
muito maiores do que 1280 x 1024 podem ser imperceptveis para o olho humano.
As caractersticas dos olhos tambm influenciam em termos de nveis de cores. Por exemplo, na
exibio de uma faixa de dgrad de tons de cinza variando do branco at o preto, quantos tons so
necessrios para que se observe a faixa com uma transio suave de tons, ou seja, sem a distino das
linhas de mudana de tons? A resposta um valor de no mnimo 100 tons. Em funo de dados deste
tipo, bem como do nmero mnimo de cores necessrias para se compor uma imagem de boa
qualidade, os terminais modernos permitem a exibio simultnea de 128 ou 256 cores.

Organizao da Look-Up
Table de um Terminal
Ymax

Frame
Buffer

Monitor

Pixel -> 67
(x,y)

0
0

Xmax

Pixel exibido
em (x,y)

01000011
Red
255
67

Green

Blue

1001 1010 0001


100110100001
Look-up Table
Figura 1.8: Operao da Tabela de Cores (LUT).

Figura 1.9: Esquema simplificado do olho humano.

2.
Transformaes Afins
Uma transformao de coordenadas da forma:

r
r
r
v = A v + b
ou

x /
a 11
/

y = a 21
z /
a 31

a 12
a 22
a 32

a13
a 23

a 33

x
y +

z

b1
b
2
b3

(eq. 2.1)

denominada uma transformao afim. Neste caso, as coordenadas (x,y,z) do vetor v , que definem um
ponto no espao, so uma funo linear de (x,y,z) e aij e bi so constantes determinadas pelo tipo de
transformao. As transformaes afim tm a funo de modificar a posio dos pontos no espao, ou dos
objetos no espao. Essas transformaes tem a caracterstica geral de transformar linhas paralelas em linhas
paralelas e mapear pontos finitos em pontos finitos. O grupo de transformaes afins do espao define a
geometria afim, que estuda as razes e propores entre objetos geomtricos. Note-se que em geometria
afim, paralelismo um conceito importante, sendo relaes entre linhas paralelas uma parte substancial da
geometria e os teoremas da geometria afim so idnticos aos da geometria euclidiana.
Rotao, translao, escalamento, espelhamento e cisalhamento so exemplos de transformaes afins
detalhados a seguir.
2.1
Translao
A translao, alterao da posio de um ponto atravs da soma de constantes de deslocamento as suas
coordenadas, normalmente aplicada sobre todos os pontos de uma figura, de maneira a possibilitar a sua
movimentao no espao (fig. 2.1). O exemplo clssico em computao grfica de aplicao desta
transformao a funo pan, disponvel em vrios sistemas grficos.
Em termos de transformao afim, a translao corresponde soma de um vetor de deslocamento ao vetor
que define o ponto que se deseja deslocar. Assim, na equao 2.1, o vetor com as componentes bi
corresponde ao vetor de deslocamento.
2.2
Escalamento (Mudana de Escala - Scaling)
A Mudana de Escala corresponde multiplicao das coordenadas de um ponto por valores iguais ou
diferentes. normalmente aplicada sobre todos os pontos de uma figura com o objetivo de ampliar ou
reduzir a sua dimenso ou ento distorcer a sua forma geomtrica (fig. 2.2). O uso clssico desta operao
em computao grfica a funo zoom in (ampliao) ou zoom out (reduo).

Fig. 2.1: Translao

Fig. 2.2: Escalamento

Quando somente a operao de escalamento realizada, a matriz A na equao 2.1 fica a matriz E, onde ex, ey,
ez, so os fatores de escala das coordenadas x, y e z, respectivamente. Observa-se facilmente que a aplicao desta
r
matriz sobre o vetor de coordenadas gera o vetor escalado v , conforme descrito pelas equaes 2.2 e 2.3, a
seguir.

e x

E= 0

0
0
ez

0
ey
0

ex x
r
v = ey y (eq.2.3)

ez z

(eq.2.2)

2.3
Rotao
A rotao o giro de um determinado ngulo de um ponto em torno de um ponto de referncia, sem
alterao da distncia entre eles. Esta operao aplicada normalmente sobre todos os pontos de uma figura,
o que possibilita que ela seja rotacionada. Vrios programas grficos dispem desta operao, sendo que
alguns restringem o ngulo de rotao a valores fixos, tais como, 90 e 180.
Para o clculo da matriz de rotao, ser considerado inicialmente apenas duas coordenadas, por exemplo, x
e y. Assim, na figura 2.3a, o ponto P, de coordenadas (x,y), ser rotacionado de um ngulo em torno do
eixo z, at a posio do ponto P (x,y). A linha que une o ponto P a origem do sistema de coordenadas est
rotacionada de um ngulo em relao ao eixo x.

Figuras 2.3a, 2.3b, 2.3c - Rotaes em torno dos eixo z, x e y, respectivamente.

Supondo-se que a distncia do ponto P origem seja D, tem-se:

x = D cos( )

(eq. 2.2)

y = D sen( ) (eq. 2.3)

x / = D cos( + )
y / = D sen( + )

(eq. 2.4)

(eq. 2.5)

Da trigonometria tem-se:

cos( a + b) = cos(b) cos(a ) sen(b) sen( a )

(eq. 2.6)

sin(a + b) = cos(b) sen( a ) + sen(b) cos( a )

(eq. 2.7)

Usando-se as equaes 2.2, 2.3, 2.6 e 2.7 nas equaes 2.4 e 2.5 tem-se:

x / = x cos( ) y sen( )

(eq. 2.8)

y / = x sen( ) + y cos( )

(eq. 2.9)

Em forma matricial, as equaes 2.8 e 2.9 ficam:

x/
cos( ) sen( ) x
/ =

sen( ) cos( ) y
y

(eq. 2.10)

Similarmente, a frmula 2.10 se aplica as rotaes das figuras 2.3b e 2.3c. No entanto, para se estender esta
frmula para rotaes tridimensionais, deve-se considerar primeiramente o problema da orientao dos
eixos. Note-se que:

r
r
r
r
r
r
vx = vy v z (eq.2.12)
vz = vx vy (eq. 2.11)
r
r
v
- vy = vx vz (eq. 2.13)
r r
r
Neste caso, vx , vy e vz so versores nas direes x, y e z, respectivamente. Nas figuras 2.3a, 2.3b e 2.3c

os resultados das equaes 2.11, 2.12 e 2.13 so indicados pelo contedo das circunferncias posicionadas do
lado esquerdo dos eixos. Sendo o contedo uma circunferncia menor, o eixo resultante do produto vetorial
dos eixos referenciados no plano tem sinal positivo, o que implica que o seu sentido do plano para o leitor.
Se o contedo uma cruz, o sinal negativo, sentido inverso. Assim, para manter a consistncia, a aplicao
da frmula matricial 2.10 deve considerar que os eixos referenciados no plano da figura 2.3c esto
invertidos, sendo o correto:

z/
cos( ) sen( ) z
/ =

sen( ) cos( ) x
x

(eq. 2.14)

Considerando-se as figuras 2.3a, 2.3b e 2.3c e as frmulas 2.10 e 2.14, pode-se facilmente deduzir as frmulas
para o clculo no espao tridimensional da rotao de um ponto A para o ponto A, sendo o plano de rotao
perpendicular ao eixo z (fig. 2.4), y (fig. 2.5) e x (fig. 2.7).

cos( ) sen( ) 0 x
x/
/

y = sen( ) cos( ) 0 y (eq. 2.15)


0
z /
0
1 z

Rotao em torno do eixo z

x/
cos( ) 0 sen( )
/

1
0
y = 0
z/
sen( ) 0 cos( )

x

y (eq. 2.16)
z

Rotao em torno do eixo y

x/
1
0
0
/

y = 0 cos( ) sen( )
z/
0 sen( ) cos( )

x

y (eq. 2.17)
z

Rotao em torno do eixo x

Fig. 2.4: Rotao em torno do eixo z

Fig. 2.5: Rotao em torno do eixo y

2.4 Espelhamento
Uma operao bastante conhecida em computao grfica o espelhamento, a qual consiste em rotacionar
um objeto em torno de um eixo de tal maneira que os pontos do objeto na posio original e na rotacionada
mantenham a mesma distncia em relao a um linha de referncia, caso bidimensional, ou a um plano de
referncia, caso tridimensional. Na figura 2.7, h o espelhamento de um objeto em torno do eixo y em
relao ao plano xy e em torno do eixo z em relao ao plano xz. Em ambos os casos, o ngulo de rotao
180.

2.5 Rotao em torno de um eixo genrico


A matriz de rotao em torno de um eixo genrico (fig. 2.8) no complexa, porm trabalhosa em termos de
deduo, assim, ser apresentado apenas a matriz MGR que permite esta operao. Sendo N um vetor
unitrio de coordenadas (x,y,z) e o ngulo de rotao, tem-se:

tx 2 + c txy sz txz + sy

MGR = txy + sz ty 2 + c tyz sx


txz sy tyz + sx tz 2 + c

(eq. 2.18)

Onde:
x,y,z
s

= coordenadas de N

= sin()

= 1- cos()

= cos()

Fig. 2.6: Rotao em Torno do Eixo x

Fig. 2.7: Espelhamento

y, y*

k
P*

x, x*

O
z, z*

Figura 2.8: Determinao da matriz de rotao em torno de um eixo genrico.

2.6
Cisalhamento
Outra transformao afim importante de ser estudada o cisalhamento (shear), cujo exemplo clssico para o
sistema de coordenadas bidimensional que explica a sua funo o da italizao de um caracter (fig. 2.9).
Neste caso, h uma variao no valor da coordenada x em funo do valor da y (fig. 2.9 i_1 e i_2), sendo
MTS_1 a matriz de transformao correspondente (eq.2.19). Pode-se associar uma outra transformao a de
cisalhamento, como, por exemplo, o escalamento da coordenada y (fig. 2.9 i_3), conforme exemplificado em
MTS_2, (eq.2.20). A matriz MTS_3 (eq.2.21) ilustra o uso desta transformao para o caso tridimensional.

i_1

i_2

i_3

Figura 2.9: Exemplo de cisalhamento

1 sh x
MTS_1 =
(eq.2.19)
0 1

1 0 s x

MTS_3 = 0 1 s y
0 0 1

1 sh x
MTS_2 =
(eq.2.20)
0 e y
(eq.2.21)

y
y

x
x
z

Figura 2.10: Exemplo de cisalhamento no caso 3D.


2.5
Composio de Transformaes
Uma importante questo que sempre deve ser considerada com relao as transformaes afins se refere a
sua composio. Neste caso, a ordem em que elas so executadas pode alterar o resultado final esperado.
Considere-se ento duas transformaes afins, uma somente de rotao de 45 em torno do eixo z e outra
somente de translao de valor x ao longo do eixo x. Como a rotao realizada em relao a origem do
sistema de coordenadas, considerando-se a figura 2.11.a, a aplicao primeiro da rotao e depois da
translao resulta na figura 2.11.b e o inverso na figura 2.11.c.

z
Figura 2.11.a

Figura 2.11.b
Figura 2.11: Composio de transformaes.

y
y

Figura 2.11.c

y
x

x
z

z
z

x
z

Figura 2.12: Mudana de centro de rotao.

Neste sentido, caso se deseje rotacionar um objeto no espao em torno de um ponto interno a ele, deve se
primeiramente deslocar o centro de rotao (origem dos eixos) para este ponto, proceder a rotao e
posteriormente voltar o centro de rotao a sua posio inicial (fig. 2.12). Note-se que isto equivale a
deslocar o objeto para o centro de coordenadas.

3.
Coordenadas Homogneas
Como detalhado no captulo 2, uma transformao afim segue a forma:

r
v =

r
r
v + b

(eq. 3.1)

Esta formulao , em termos de clculo, bastante inconveniente para se determinar as coordenadas do vetor
final, aps uma srie de transformaes de um vetor inicial. A formulao da equao 3.4 muito mais
conveniente porque permite que o clculo de mltiplas transformaes seja realizado calculando-se a matriz
de transformao resultante e aplicando-se esta matriz sobre o vetor (eq. 3.5).

r
v1 = M1
r
v2 = M2
r
v = M
r
v = Mn

r
+ b1
v
M1 v +
r
v
r
v

M n1

...

(eq. 3.2)

r
r
M 2 b1 + b2

(eq. 3.3)
(eq. 3.4)

r
M1 v

(eq. 3.5)

A impossibilidade de se inserir a transformao de translao na matriz M no permite que a formulao 3.5


seja usada, assim, necessrio se encontrar um mecanismo que contorne este problema. A soluo usual para
este problema a alterao do espao de coordenadas de dimenso 3 para 4, de forma controlada, de maneira
que a dimenso da matriz M se altere de 3x3 para 3x4 e, assim, ela possa incorporar a transformao de
translao (eq. 3.6). Como inconveniente operar uma matriz no quadrada por no permitir, por exemplo, o
clculo da inversa, a matriz MT pode ser novamente modificada pela insero de mais uma linha que no
altere o resultado final (eq. 3.7).
(eq. 3.6)
(eq. 3.7)

x
1 0 0 l
y
= 0 1 0 m


0 0 1 n
1

x
x+l
y
y + m
=

z
z+n

1
1

1
0
MT =
0

0 0 l
1 0 m

0 1 n

0 0 1

Considerando-se uma matriz M genrica de dimenso 4x4, quando ela aplicada sobre o vetor v , em
r
a seguir: Para se calcular o vetor desejado, normaliza-se o
coordenadas homogneas, gera o vetor v * descrito
r
r
vetor v * . Assim, supondo-se H 0 , tem-se v .

v
v* =

x
y
M
z
1

X
Y
=
Z
H

X / H
Y / H
r

v =
Z / H

Neste contexto, uma propriedade interessante e bastante til das coordenadas homogneas se refere a
r
representao de um ponto no infinito. Assim, considere-se o ponto sobre o eixo x indicado pelo vetor v * e
v
v:

A
0
r
v* =
0

H

A / H
0
r

v =
0

Quando H 0 , A / H , logo a aplicao de uma matriz de transformao em coordenadas


r
homogneas resulta em um ponto no infinito quando o seu vetor posicional for do tipo v * descrito a seguir.

r
r
r
Em geral, utiliza-se os vetores infinitos x * , y * e z * .

A
B
r
v* =
C

0

1
0
r*
x =
0

0

0
1
r
y * =
0

0

0
0
r*
z =
1

0

Estes vetores infinitos sero, em especial, usados na determinao de pontos-de-fuga no caso de projees
planares perspectivas. Outras propriedades das coordenadas homogneas sero exploradas posteriormente.
Tambm posteriormente ser mostrado que a matriz de transformao M de dimenso 4x4, pode ser
particionada em 4 quatro partes:

3x3 3x1
M =

1x3 1x1
1x3: produz projeo perspectiva
3x3: produz uma transformao afim
do tipo, rotao e escalamento

1x1:
3x1:

produz escalamento global


produz translao

4.
Projees Planares
Dado que a exibio 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, operaes de projeo so requeridas. Em geral,
entende-se como projeo, o processo de mapear um sistema de coordenadas de dimenso n em um de
dimenso menor ou igual a n-1.
A humanidade utiliza h sculos o conceito de projees geomtricas. O mais antigo exemplo de uso de
desenho tcnico na histria da humanidade data de aproximadamente 2150 A.C. O desenho contm uma
planta de um prdio da cidade de Lagash na Mesopotmia.
De acordo com aluses literrias, os gemetras e pintores gregos da antiguidade clssica estavam
familiarizados com as leis da perspectiva. O pintor Agatharchus foi o primeiro a usar perspectivas em larga
escala no perodo de 5 sculos A.C. e escreveu um livro sobre pintura de cenas, o que inspirou os filsofos
Anaxagoras e Demcrito a escrever sobre perspectiva.
A primeira evidncia real do uso de desenhos para guiar edificaes foi encontrado nos textos de Vitruvius,
um arquiteto e engenheiro romano do perodo de Jlio Csar e Augustus, em torno do ano 14 A.C.
Apesar do estudo de gregos e romanos, uma formalizao destas tcnicas s surgiu durante a Renascena. Os
pintores Duccio (1255-1319), pintor do famoso quadro A ltima Ceia, e Giotto (1276-1336)
empreenderam esforos no sentido de representar a terceira dimenso atravs da perspectiva. Filippo
Brunelleschi (1377-1446) foi o primeiro artista a desenvolver um sistema matemtico para a perspectiva. O
primeiro tratado sobre perspectiva, Della Pittura, foi publicado em 1435 por Leone Battista Alberti (14041472). No mesmo perodo, a tcnica da perspectiva continuou a ser aperfeioada por Piero della Francesca
(1420-1492) atravs do texto De Prospettiva Pingendi e por Leonardo da Vinci que pintou a sua verso de
A ltima Ceia.
Gasparad Monge (1746-1818), um desenhista de fortificaes militares francesas, foi o primeiro a descrever
de forma organizada o uso de projees em engenharia, o que lhe valeu o ttulo de pai da geometria
descritiva. Monge publicou a primeira edio do livro Geometrie Descriptive em 1801.
Desta poca para a atual, as tcnicas de projees continuaram a ser estudadas e aperfeioadas e se
popularizaram entre profissionais e estudantes de engenharia, artes e arquitetura. Com o surgimento da
computao grfica e com a popularizao de sistemas e bibliotecas grficas, o nmero de interessados nas
tcnicas de projees se ampliou acentuadamente.
Geralmente usurios de sistemas ou bibliotecas grficas se deparam com operaes relacionadas a
posicionamento e especificao de cmeras ou ento a ajuste de transformaes que permitam o correto
posicionamento de um objeto em uma cena. To comum quanto estas operaes a dificuldade do usurio
em realiz-las de forma totalmente segura e compreensvel. Outro problema nesta mesma linha que o usurio
se depara quando ele transporta os objetos criados em um determinado sistema grfico para outro.
Comumentemente falta-lhe um conhecimento mais conceitual do modo de funcionamento destas operaes.
O objetivo deste curso conceituar projees planares, apresentando a sua classificao e formas algbricas
de manipul-las. Com base nestes conceitos, ser ilustrado o funcionamento do esquema de transformaes
em bibliotecas e sistemas grficos que manipulam primitivas tridimensionais.
As projees mais consideradas em CG so as que projetam um sistema de coordenadas 3D em um 2D,
realizam a projeo em um plano ao invs de uma superfcie curva, como tambm utilizam raios projetores
lineares ao invs de curvos (fig. 4.1). Esta classe de projees conhecida como projees geomtricas
planares e podem ser subclassificadas de acordo com o esquema da figura 4.2
4.1
Classificao das Projees Planares
As projees planares paralelas e perspectivas diferem com relao a distncia do plano de projeo ao
centro de projeo. Se a distncia finita, a projeo perspectiva, se a distncia infinita, a projeo
paralela (fig. 4.3).

Proj.
Planar

Proj.
Cilindrica

Proj.
Cnica

Figura 4.1: Diferentes tipos de projees


Proj. Planares
Paralelas
Ortogrficas
Planta
V. Frontal

Perspectivas
Oblquas

Um-Ponto
Dois-Pontos

Cabinet
Cavalier

Trs-Pontos

V. Lateral
Axonomtricas
Isomtricas
Dimtricas
Trimtricas

Figura 4.2: rvore de Classificao das Projees


4.2
Projees Planares Paralelas
Projees paralelas so subclassificadas em ortogrficas e oblquas, dependendo da relao entre a direo
dos raios projetores e a normal ao plano de projeo (fig. 4.4). Em projees ortogrficas, as direes so as
mesmas. Em projees oblquas, so diferentes.
As projees ortogrficas vista lateral, vista frontal e planta constituem as projees normalmente utilizadas
em desenho tcnico (fig. 4.5). Elas tem a direo dos raios projetores e a normal ao plano de projeo
coincidentes com a direo dos eixos cartesianos. Elas oferecem uma viso parcial do objeto, no entanto,
mantm sem alterao as relaes de dimenses e ngulos do objeto projetado. Estas projees so
geralmente utilizadas em conjunto, contando tambm com uma projeo axonomtrica ou perspectiva.
As projees paralelas ortogrficas axonomtricas tem a direo dos raios projetores e a normal ao plano de
projeo coincidentes, porm distintas da direo das normais dos planos dos eixos cartesianos. Desta forma,
essas projees permitem a visualizao de vrias faces paralelas aos planos cartesianos de uma nica vez
(fig. 4.6)..
Projees axonomtricas distorcem os objetos, alterando as relaes de ngulos e dimenses de lados dos
objetos, no entanto, mantm as relaes de paralelismo entre eles. A alterao da dimenso dos lados
relacionada com a alterao da dimenso dos versores (vetores unitrios) em cada um dos eixos x, y e z,
quando projetados no plano. Assim, as projees axonomtricas se subdividem em dimtricas, quando dois
versores variam a dimenso igualmente quando projetados no plano; isomtricas, quando os trs versores
variam na mesma proporo (fig. 4.7); e trimtricas, quando os trs versores variam de forma diferenciada.
As projees paralelas oblquas tem a direo da normal ao plano de projeo distinta da direo dos raios
projetores (fig. 4.8). As projees paralelas oblquas se subdividem em cavalier e cabinet (fig. 4.9). Na
cabinet h um encolhimento na dimenso do versor perpendicular ao plano de projeo para corrigir a iluso
de que o objeto exibido maior na direo deste versor.

C. de Projeo
no Infinito

A
A

A
B

A
B
C. de Projeo
no Finito

B
B

Raios Projetores

Figura 4.3: Centros de projees


r
r

r
r

r
N

r
N

Figura 4.4: Direo da normal ao plano e dos raios projetores.

Planta
Vista
Lateral

Vista
Frontal

Figura 4.5: Projees ortogrficas planta, vista lateral e frontal.

Figura 4.6: Projees ortogrficas axonomtricas.

Dimtrica

Isomtrica
x

Figura 4.7: Projees ortogrficas axonomtricas dimtrica e


isomtrica.
4.3)
Projees Planares Perspectivas
O efeito visual de uma projeo perspectiva bastante realista, pois as dimenses de um objeto projetado
variam inversamente com relao ao centro de projeo, o que est de acordo com o modo de funcionamento
do sistema visual humano. Alm disto, como as projees axonomtricas, elas permitem a visualizao
conjunta de vrias faces normais aos eixos x, y, e z, de um objeto. No entanto, as projees perspectivas no
so teis para documentar precisamente as formas de um objeto, dado que as dimenses e os ngulos dos
seus lados podem sofrer alteraes aps a projeo. Em especial, pode haver perda do paralelismo entre as
linhas.

Figura 4.8: Projees oblquas.

Cavalier
Cabinet

Cavalier
Cabinet

Figura 4.9: Projees Oblquas Cavalier e Cabinet

Como a projeo perspectiva tem o centro de projeo localizado em um ponto finito, ocorre uma distoro
no objeto projetado que faz com que qualquer conjunto de linhas que sejam paralelas ao plano de projeo
convirjam para um mesmo ponto denominado ponto-de-fuga. O surgimento do ponto-de-fuga pode ser
melhor compreendido observando-se as figuras 4.10 e 4.11.
Na figura 4.10, um raio projetor parte do centro de projeo e incide sobre um ponto p da linha l_A. Quando
p tende a 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 alcanado 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 projeo, no tem ponto-de-fuga. A
explicao para este caso simples. Considere o ponto A da figura 4.11 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 contrrio, 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 projeo perspectiva do retngulo da figura 4.11 vai apresentar apenas um ponto-de-fuga. Para
que a projeo deste retngulo apresente mais de um ponto-de-fuga basta rotacion-lo (fig. 4.12), o que faz com
que as suas linhas paralelas fiquem inclinadas em relao ao plano xy.
Para melhor se compreender a relao entre os pontos-de-fuga e o centro de projeo, a figura 4.13 apresenta
a forma de se obter a projeo perspectiva de um paraleleppedo com lados paralelos ao eixo x e centro de
projeo sobre o eixo z. O objeto projetado do sistema de coordenadas 3D xyz no sistema de coordenadas
2D xy. Dado que a dimenso dos lados AB, CD, EF e GH no so visveis, a dimenso dos lados AB,
CD, EF e GH foram definidas arbitrariamente.

l_A

A
RP
l_B
pf

l_B

pXY

pXY

pf
RP1

RP2

l_A
CP

CP

Figura 4.10
Figura 4.11
Figura 4.10: Centro de projeo e ponto-de-fuga em uma projeo perspectiva.
Figura 4.11: Projeo perspectiva de linhas paralelas e perpendiculares ao plano XY de
projeo.
Em funo do nmero de pontos-de-fuga associados s linhas paralelas aos trs eixos cartesianos, as
projees perspetivas se subdividem em projees de um ponto-de-fuga (fig. 4.14), de dois pontos-de-fuga
(fig. 4.15) e de trs pontos-de-fuga (fig. 4.16). Nota-se que cada conjunto de linhas paralelas no espao pode
ter associado um ponto-de-fuga. Assim, com o objetivo de definir um critrio de classificao, somente as
linhas paralelas aos eixos so consideradas.
Projees perspectivas de trs pontos-de-fuga so usadas menos frequentemente, dado que elas acrescentam
pouco realismo ao j alcanado pelas projees de dois pontos-de-fuga.

A
B

pf_2

pXY

pf_1
CP

Figura 4.12: Projeo perspectiva de linhas inclinadas em relao ao plano de projeo.

z
C,D
A,B
E,F
G,H
PF_1

PF_2
y

CP
C
A

E
G

y
H

Fig. 4.13: Projeo perspectiva de um cubo com lados paralelos ao eixo x.

Figura 4.14: Projeo perspectiva com um ponto-de-fuga.

PF-1

PF-2

Figura 4.15: Projeo perspectiva com dois pontos-de-fuga.

PF-1
PF-2

PF-3
Figura 4.16: Projeo perspectiva com trs pontos-de-fuga.

5.

lgebra das Projees Planares Paralelas

Para que as projees possam ser geradas em computador necessrio se definir matrizes de transformaes
que, aplicadas ao conjunto de pontos de um objeto tridimensional, permita a obteno da figura projetada do
objeto. Assim, a seguir, para cada tipo de projeo sero determinadas as matrizes de transformao. Este
captulo cobre a lgebra das projees planares paralelas.
5.1
lgebra das Projees Planares Paralelas Ortogrficas
As projees planares ortogrficas vista lateral, frontal e planta so obtidas atravs de transformaes
ortogonais, de acordo com as regras abaixo, e projeo no plano xy atravs de raios projetores
perpendiculares a este plano (fig. 4.5)
vista lateral- rotao de -90 no eixo x, eliminao da coordenada z
vista frontal- rotao de -90 no eixo z, rotao de 90 no eixo x, e eliminao da coordenada z
vista superior (planta)- rotao de -90 no eixo z, eliminao da coordenada z, e translao no eixo y
no maior valor na coordenada x.
A seguir detalhado apenas a gerao da vista lateral. Assim, partindo-se da equao de rotao em torno do
eixo x, determina-se a matriz de projeo da vista lateral MPvl (eq. 5.2).

RX

0
0
1
0 cos( ) sen( )
=
0 sen( ) cos( )

0
0
0

0
0

(eq. 5.1)

Sendo = -90 e considerando-se a projeo no eixo xy, a matriz fica:

MP

VL

1
0
=
0

0 0 0
0 1 0
0 0 0

0 0 1

(eq. 5.2)

Note-se que o versor sobre o eixo z, (0,0,1), ser projetado em (0,1), como exemplificado nas figuras 5.1a e
5.1b. Observe a ordem correta dos eixos.
5.2
lgebra das Projees Planares Paralelas Ortogrficas Axonomtricas
As projees vista lateral, frontal e planta permitem uma observao parcial do objeto projetado, em
especial, caso se observe apenas uma delas, no possvel se conceber corretamente a forma do objeto. De
forma a solucionar este problema, usual a folha de projeto de um objeto conter as projees vista lateral,
frontal e planta, mais uma projeo axonomtrica, a qual permite que se tenha uma viso mais integrada do
objeto.

Figura 5.1a e 51.b: Projeo vista lateral.


Como citado no captulo 4, as projees paralelas ortogrficas axonomtricas tem a direo de projeo e a
normal ao plano de projeo no coincidentes com a direo de um dos eixos principais (fig. 4.6). Isto

equivalente a se rotacionar adequadamente o objeto e considerar a direo de projeo e a normal ao plano


de projeo coincidentes com a direo de um dos eixos principais.
Nas projees axonomtricas h uma alterao da dimenso das faces do objeto quando projetadas sobre o
plano. O tipo de rotao do objeto e as consideraes sobre a alterao das dimenses permitem que se
determine as matrizes de projeo. Neste sentido, o clculo destas matrizes vai partir de uma rotao do
objeto em torno do eixo y e posteriormente do eixo x (eq. 5.3).

RX

RX

0
0
1
0 cos( ) sen( )
RY =
0 sen( ) cos( )

0
0
0

0
0

cos( )
0

sen( )

0
cos( )
sen( )

sen( ) sen( ) cos( ) cos( ) sen( )


RY =
sen( ) cos( ) sen( ) cos( ) cos( )

0
0
0

0 sen( ) 0
1
0
0

0 cos( ) 0

0
0
1
0
0

(eq. 5.3)

(eq. 5.4)

Aplicando-se esta matriz sobre os vetores unitrios (1,0,0), (0,1,0) e (0,0,1), versores nos eixos x, y, e z
respectivamente, tem-se:

r
uX

cos( )
xX
1

y
0
sen( ) sen( )
X

=
= R X RY =
z X
0
sen( ) cos( )

1
1
1

(eq. 5.5)

r
u Y

x Y
y
Y
= = R X RY
z Y

1

0
0
1
cos( )
=

0
sen( )

1
1

(eq. 5.6)

r
u Z

xZ
y
Z
= = R X RY
zZ

1

sen( )
0

0
cos( ) sen( )
=

1
cos( ) cos( )

1
1

(eq. 5.7)

Considerando-se apenas as componentes x e y dos versores rotacionados, tem-se as projees destes vetores
sobre os plano xy. De forma a se estipular condies para o encolhimento da dimenso destes vetores, so
calculados os seus mdulos, como ilustrado a seguir. Assim, para o caso da projeo do versor sobre o eixo x
tem-se:

( )

r
u x XY =

( x x )2

r
u x XY =

cos2 ( ) + (sen2 ( ) sen 2 ( ))

+ y x

(eq. 5.8)
(eq. 5.9)

Similarmente, para os versores sobre os eixos y e z tem-se:

r
u y XY = cos( )
r
u z XY =

(sen 2 ( ) + cos2 ( ) sen 2 ( )

(eq.5.10)
(eq. 5.11)

Considerando-se que no momento da projeo de um objeto 3D sobre o plano xy, ocorra um encolhimento
por igual das coordenadas x e y dos pontos deste objetos, tem-se:

r
r
u x XY = u y XY

(eq. 5.12)

cos2 ( ) + sen 2 ( ) sen 2 ( ) = cos2 ( )

(eq. 5.13)

Da trigonometria tem-se:

cos2 ( ) + sen 2 ( ) = 1

(eq. 5.14)

Aplicando-se esta relao na equao 5.13, tem-se:

sen 2 ( ) sen 2 ( ) = sen 2 ( ) sen 2 ( )

(eq. 5.15)

sen 2 ( ) = sen 2 ( ) / (1 sen 2 ( ))

(eq. 5.16)

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 dimenso do versor projetado ser 1/2, ou seja, encolher pela
metade. Logo, da equao 5.11 tem-se:

sen 2 ( ) + cos2 ( ) sen 2 ( ) = (1 / 2)

(eq. 5.17)

Aplicando-se a equao 5.16 e rearranjando, tem-se:

8 sen 4 ( ) 9 sen 2 ( ) + 1 = 0

(eq. 5.18)

Fazendo-se sen ( ) = x , tem-se:


2

8x2 9 x + 1 = 0

(eq. 5.19)
Resolvendo-se a equao 5.19, tem-se x=1/8 e x=1. A segunda raiz invlida porque origina valor zero no
denominador da equao 5.16. Usando-se a primeira raiz tem-se:

sen 2 ( ) = 1 / 8
= 20.705o

sen 2 ( ) = 1 / 7
e

(eq. 5.20)

= 22.208o

(eq. 5.21)

Desta maneira aplicando-se os valores obtidos na equao 5.21, tem-se a seguinte matriz:

R X RY

MP D

0.
0.377964
0.925820
0133631
0.935414 0.327321
.
=
0.353553 0.353553 0.866025

0.
0.
0.

0.
0.377964
0.925820
0133631
0.935414 0.327321
.
=
0.
0.
0.

0.
0.
0.

0
0

0
0

(eq. 5.22)

(eq. 5.23)

A matriz MPD anterior permite que se realize, aps o zeramento da coordenada z, a projeo dimtrica (eq.
5.23), onde h o encolhimento por igual de duas coordenadas.
No entanto, o maior interesse na projeo isomtrica que permite o encolhimento por igual de todas as
coordenadas. Logo:

r
r
r
u x XY = u y XY = u z XY

(eq. 5.24)

Assim, alm da equao 5.13, para a determinao dos ngulos tem-se a seguinte equao:

sen 2 ( ) + cos2 ( ) sen 2 ( ) = cos2 ( )

(eq. 5.25)

Similarmente a equao 5.16, derivada da 5.12, podemos derivar da 5.25 a equao:

sen 2 ( ) = (1 2 sen 2 ( )) / (1 sen 2 ( ))


sen 2 ( ) = 1 2 sen 2 ( )

(eq. 5.26)

sen 2 ( ) = 1 / 3

sen( ) = 1 / 3 sen( ) = 1 / 2

(eq. 5.27)

= 35.26429 o

(eq. 5.28)

= 45.0o

Logo, substituindo os valores na matriz da equao 5.4, tem-se a matriz que permite a projeo isomtrica
(5.29), aps se zerar a coordenada z:

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.707107
0.707107
0.408248 0.816597 0.408248
MP I =

0.
0.
0.

0.
0.
0.

0
0

0
0

(eq. 5.29)

(eq. 5.30)

Neste caso, um fato interessante advm da anlise do ngulo que o versor no eixo x faz com o eixo x,
quando projetado no plano xy (fig. 5.2a).
Assim, da equao 5.5, tem-se:

cos( )
r
uX =

sen( ) sen( )
tan( ) = (sen( ) sen( )) / cos( )
tan( ) = ( 1 / 2 1 / 3 ) / 1 / 2 = 3 / 3

(eq. 5.31)

= 30.0o

Este resultado bem conhecido de desenhistas, pois com um esquadro de 30 e 60 que eles desenham a
projeo de um objeto em uma folha de projeto.
A seguir esboado um exemplo de obteno de uma projeo isomtrica de um objeto. Este objeto o da
r
figura 4.7, e a matriz PI contm a descrio dos vetores de seus pontos (fig. 5.3a). O resultado est na figura
5.3b.

Figura 5.2a e 5.2b: Diferentes estruturas para a projeo isomtrica.

Figura 5.3a: Objeto a ser projetado. Figura 5.3b: Objeto projetado


isometricamente.

r
PI = M I

1
0

1
A

1 0 0

1 1/ 2 0 0 1
0 1 1 0 0
1 1
B C

1 1 1
D E F

0
1/ 2 0

1 1 (eq. 5.32)

1 1
G H
0

Uma considerao importante sobre projees isomtricas se refere ao fato que:

sen 2 ( ) = 1 / 3

= 35.26o

ou

= 144.74 o

sen 2 ( ) = 1 / 2

= 45.00o

ou

= 135.00o

Logo, a projeo isomtrica pode ser estruturada de outras formas. Na figura 5.2 esboada a estrutura
trabalhada anteriormente (5.2a) e outra bastante utilizada (5.2b).
5.3
lgebra das Projees Planares Oblquas
Segundo o que foi exposto no captulo 4, as projees paralelas oblquas tem a direo do plano de projeo
distinta da direo dos raios projetores (fig. 4.8). As projees paralelas obliquas se subdividem em cavalier
e cabinet (fig. 4.9), sendo que na projeo cabinet h uma distoro na dimenso do versor perpendicular ao
plano de projeo, em geral, um encurtamento de 1/3 ou de 1/2. Alm disto, em ambos os casos, o ngulo
() que este versor forma com o eixo x pode ser de 45 ou 30.
A deduo da matriz de projeo oblqua relativamente simples. Considere-se, inicialmente, o ngulo que
a linha entre o ponto P1 e sua projeo P1 forma com o plano xy e o ngulo que formado pela projeo
da linha P1-P1 com o eixo x (fig. 5.4). O ngulo determina o grau de encurtamento ou de dilatao da
dimenso do versor, em especial, se =45.0 no h alterao de dimenso e se =60 h um encurtamento
pela metade. O ngulo no tem influncia sobre o tamanho do versor e, basicamente, o seu valor uma
questo de preferncia.
Quando o ponto est sobre o eixo z trivial a deduo da frmula de projeo, ou seja, sendo:

P1 = (0,0, z1 ) P1 = (d cos( ), d sen( ))


P2 = (0,0, z2 ) P2 = (( z2 / z1 ) * d ) cos( ),(( z2 / z1 ) * d ) sen( ))
A generalizao da formulao para qualquer ponto pode tambm ser feita facilmente observando-se a figura
5.5. Assim, supondo-se z1 igual a 1 e z2 igual a z, tem-se:

P2 = (0,b, z ) P 2 = ( z * d cos( ), b + ( z * d ) sen( ))


P3 = (a ,0, z ) P3 = (a + ( z * d ) cos( ),( z * d ) sen( ))

Logo:

1
x
0
y
=
0
z


0
1

0 d cos( ) 0 x
x + (( z * d ) cos( ))
y + (( z * d )sen( ))

1 d sen( ) 0 y

0
0
0 z
0


0
0
1 1
1

(eq. 5.33)

Para exemplificar a aplicao da matriz de projeo oblqua, na matriz da equao 5.33 ser adotado d=1,
sem alterao da dimenso do versor, o que significa (=45.0), e =45.0, o que define uma matriz de
projeo obliqua cavalier (eq. 5.34).

MO

0
=
0

0
1
0
0

2 / 2 0

2 / 2 0
0 0

0 1

(eq. 5.34)

Figura 5.4: Esquema de projeo oblqua.


Aplicando-se MO sobre o objeto definido na fig. 5.3a, tem-se:

r
PO = M O

r
PO =

0
0

1
A

1
0

1
A

1 0 0

1 1/ 2 0 0 1
0
1

1
1

1 0 0
1 1 1

B C

D E F

1 (2 + 2 ) / 2 ( 2 + 2 ) / 2 0 0

0
1/ 2 0

1 1 (eq. 5.35)

1 1
G H
0

2 /2

1 (1 + 2 ) / 2
0
0

2 /2
0

0 1 (1 + 2 ) / 2
0 0
0

1
B

1
D

1 1
E F

1
C

1
G

2 / 2

2 / 2
0 (eq. 5.36)

1
H

Figura 5.5: Projeo oblqua de pontos fora do eixo base de projeo.


Note-se que o objeto projetado (fig. 5.6) fica com a face anterior elevada em relao ao eixo x devido ao
ngulo =45 de projeo. Uma outra soluo considerar o ngulo =(180+45) (fig. 5.7). Assim, a nova
matriz de projeo fica:

MO

0
=
0

0 2 / 2 0

1 2 / 2 0
0
0
0

0
0
1

(eq. 5.33)

Aplicando-se esta nova matriz MO sobre os pontos do objeto definido na equao 5.30, tem-se os pontos
projetados descritos na equao 5.34 e esboados na figura 5.8.

r
PO =

0
0

1
A

1 ( 2 2) / 2 ( 2 2) / 2 0 0
1 (1 2 ) / 2
0
0
1
B

2 /2
0

0 1
0 0

1
D

1 1
E F

1
C

2 / 2

(1 2 ) / 2 2 / 2
0
0

1
1
G
H
2 /2

(eq. 5.34)

G
F
B
H

Figura 5.6: Objeto e sua projeo oblqua cavalier com =45.

P2
P1

180

P1
P2

Figura 5.7: Rotao da projeo de 180.0

Figura 5.8: Objeto e sua projeo oblqua cavalier com =(180+45).

6.

lgebra das Projees Planares Perspectivas

Para uma deduo simples e intuitiva da lgebra das projees perspectivas interessante se analisar a figura
6.1. Neste caso, o ponto P (x,y,z) projetado no ponto P (x,y,0), contido no plano xy, a partir de um centro
de projeo localizado no ponto C (0,0,k). Aplicando-se semelhana de tringulos a figura produzida e
considerando que a coordenada z tem valor negativo obtm-se:

x / k = x / ( z + k ) x = x / (( z / k ) + 1)

(eq. 6.1)

y / k = y / ( z + k ) y = y / (( z / k ) + 1)

(eq. 6.2)

Note-se que estes valores so os mesmos produzidos pela matriz de transformao abaixo.

1
X
0
Y
=
0
Z


0
H

0
1 0 0

0 1 0

0 1 / k 1
0

y
y

z
z


( z / k ) + 1
1

(eq. 6.3)

x / (( z / k ) + 1)
x
X / H
y / (( z / k ) + 1)
y
Y / H

=
=
z / (( z / k ) + 1)
z
Z / H

1
1

(eq. 6.4)

Y
y
y'

P
x

x'

CP

Figura 6.1: Projeo de um ponto no plano a partir de um centro de projeo.


Quando se adota o plano xy como o plano de projeo, desconsidera-se o valor de z na equao 6.4. Note-se
que nesta equao se k , ento x x e y y , o que origina uma projeo paralela, com raios
projetores perpendiculares ao plano xy, considerado como o plano de projeo.
Considerando-se x = at, y = bt e z = -ct, com a, b, e c maiores do que zero, tem-se:

x at / ((ct / k ) + 1)
y bt / (( ct / k ) + 1)
=

z ct / ((ct / k ) + 1)

1
1

Se t

tem-se

x ka / c
y kb / c
=

z k

1 1

Logo, o ponto (ka/c, kb/c, -k) constitui um ponto-de-fuga, dado que ele um ponto finito para o qual
converge a projeo de uma linha infinita. Dependendo do valor de a, b e c, dado k fixo, infinitos pontos-defuga podem ser determinados.
Em termos de classificao da projeo perspectiva interessa apenas os pontos-de-fuga associados s linhas
paralelas aos eixos cartesianos. Assim, considere-se:

a
a
at
b
bt
b
r
r
r

, v2 =
, v3 =
v1 =
ct
c
c



1
1
1

r r
r
v1 , v2 e v3 definem, respectivamente, uma linha paralela ao eixo x, y e z. A projeo desses vetores no
plano xy, dada por:
(eq. 6.5)

(eq. 6.6)

(eq. 6.7)

a / (( ct / k ) + 1)
a / (( c / k ) + 1)
at / (( c / k ) + 1)
b / (( ct / k ) + 1)
bt / (( c / k ) + 1)
b / (( c / k ) + 1)
r
, vr =

, vr =
v1 =
c / (( c / k ) + 1) 2 c / (( c / k ) + 1) 3 ct / (( ct / k ) + 1)

1
1
1

E quando t resulta em:

B
r
1
v1 =
C1

1

A2

r
v2 =
C2

1

0
0
r
v3 =
k

1

Mesmo sendo B1, C1, A2 e C2 constantes finitas, v1 e v2 , que so respectivamente a transformao


r
r
perspectiva de v1 e v2 , resultam em pontos que no espao tendem a infinito, ou seja, no h pontos-de-fuga
r
r
associados as linhas paralelas aos eixos x e y. Este resultado esperado, pois v1 e v2 definem linhas
r
perpendiculares ao eixo z que contm o centro-de-projeo. A transformao perspectiva de v3 resulta em
r
um ponto finito no espao, ou seja, h ponto-de-fuga pois v3 perpendicular ao eixo z que contm o centro
de projeo.
B
A
y

PI

A*
B*

PF
-k
x

Figura 6.2: Projeo de uma linha paralela ao eixo z.


Derivando-se a figura 6.2 da 6.1, pode-se visualizar facilmente o surgimento do ponto-de-fuga. Os pontos A
e B so as projees no plano xy dos pontos AB da linha A-B perpendicular ao plano de projeo. Note-se

que considerando a coordenada z, os pontos A* e B* mostram como a transformao perspectiva fora a


r
convergncia dos pontos transformados para o ponto-de-fuga. Para t=0, v3 resulta no ponto PI (a, b, 0), que
o ponto que a linha AB estendida intercepta o plano. Os pontos A* e B* esto 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).
Em especial, observando a figura 6.2 e as equaes 6.5, 6.6 e 6.7 compreende-se o mecanismo de
funcionamento da transformao perspectiva. O surgimento do ponto-de-fuga no eixo z se deve ao fato de que
na equao 6.7 o denominador tende a infinito quando t e, assim, as constantes divididas por um valor
infinito resultam em zero e o valor infinito do numerador dividido pelo valor infinito do denominador resulta
em um valor finito.
Em termos de computao grfica, o foco de interesse a projeo de um ponto no espao sobre o plano da
tela. Neste sentido, para ilustrar uma forma mais intuitiva de se obter as equaes anteriores, ser deduzido a
matriz de projeo perspectiva a partir da considerao de que a tela do computador est sobre o plano xy e
que o centro de projeo (observador) est fora deste plano e em alguma parte positiva do eixo z (fig. 6.3).
Supondo-se conhecido P1 e CP (fig. 6.3), pode-se escrever a equao de reta que passa por estes dois pontos.
No caso bidimensional, a equao da reta em funo dos pontos pA (xa,ya) e pB (xb,yb) fica:

x = xa + ( xb xa )u
y = ya + ( yb ya )u
Assim, no caso da figura 6.5 tem-se:

x = xc + ( x1 xc )u

(eq. 6.5)

y = yc + ( y1 yc )u

(eq. 6.6)

z = zc + ( z1 zc )u

(eq. 6.7)

Logo, o valor de u para P2, com coordenadas (x2,y2,0), :

u = zc / ( z1 zc )

(eq. 6.8)

Compondo-se as equaes 6.5, 6.6 e 6.8 tem-se:

x2 = xc zc ( x1 xc ) / ( z1 zc )

(eq. 6.9)

y2 = yc zc ( y1 yc ) / ( z1 zc )

(eq. 6.10)

Escrevendo-se este resultado em forma matricial tem-se:

zc 0
0 z
c
MP =
0
0

0
0

0
yc 0

0 0

1 zc
xc

(eq. 6.11)

Dividindo-se todos os elementos da matriz MP da equao 6.11 por um mesmo valor no se altera o
resultado da sua aplicao sobre um vetor em coordenadas homogneas. Assim, dividindo-se todos os
elementos por 1/zc tem-se:

1
0
MP =
0

0 xc / zc 0
1 yc / zc 0

0
0
0

0 1 / zc 1

Considerando-se xc e yc iguais a zero na MP da equao 6.12, tem-se:

(eq. 6.12)

1
0
MP =
0

0
1
0
0

0
0
0

0 1 / z c 1
0

(eq. 6.13)

O que est de acordo com a matriz de transformao perspectiva MTPz, deduzida anteriormente, no caso do
centro de projeo estar no ponto (0,0,zc) (fig. 6.2).
A matriz MP da equao 6.12 permite um controle explcito do ponto-de-fuga em funo do centro de
projeo, no entanto, gera apenas um ponto-de-fuga. Para a gerao de mais pontos-de-fuga pode-se associar
MP com matrizes de rotao. Note-se que, como exposto no captulo 4.3 e esboado nas figuras 4.10, 4.11 e
4.12, caso se rotacione o objeto possvel obter um nmero maior de pontos-de-fuga. Assim, fazendo-se a
multiplicao da matriz MP pela matriz RxRy (equao 5.4) tem-se a equao 6.14:
( 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

Supondo-se zc, sen(), sen(), cos(), cos() diferentes de zero, deriva-se os seguintes pontos-de-fuga:

xc + zc(cos( ) / (sen( ) cos( )))


PFx =

yc + zc(sen( ) / cos( ))

(eq. 6.15)

xc

PFy =

yc zc(cos( ) / sen( ))

(eq. 6.16)

xc zc(sen( ) / (cos( ) cos( )))


PFz =

yc + zc(sen( ) / cos( ))

(eq. 6.17)

Assim, utilizando-se a matriz MPR tem-se o controle simultneo do centro de projeo e dos pontos-de-fuga.
Esta matriz pode ser modificada para incorporar rotaes no eixo z.
y
P1

P2

CP
z

Figura 6.3: Centro de projeo genrico.

7.

Uso de Projees em Sistemas CAD e Modeladores

Atualmente possvel se encontrar no mercado vrios sistemas CAD bem como modeladores. Como no
possvel se analisar todos estes produtos, optou-se por estudar apenas os recursos de gerao de objetos
tridimensionais no AutoCAD e no 3D Studio, isto em funo da grande popularidade destes produtos. Os
recursos considerados utilizam os conceitos abordados anteriormente.
O AutoCAD permite o trabalho em um sistema de coordenadas tridimensional que pode ser reconfigurado
atravs do comando UCS (User Coordinates System). O sistema de coordenadas inicial denominado de
World Coordinate System e identificado pela letra W no cone de coordenadas (fig. 7.1). Definido um novo
sistema de coordenadas 3D possvel se deslocar a origem do sistema de coordenadas corrente para a origem
do novo (fig. 7.2). Alm disto, possvel se rotacionar no espao o sistema de eixos em relao ao do
sistema anterior (fig. 7.3). A direo do eixo z sempre calculada com base na regra da mo direita.
Manipulando o sistema de coordenadas possvel criar um objeto tridimensional utilizando-se, por exemplo,
um recurso avanado de extruso, o qual permite que, definido um caminho, uma forma seja replicada ao seu
redor (fig. 7.4). Este tipo de recurso exige que a forma e o caminho no estejam contidos no mesmo plano,
assim para defin-los se utiliza o recurso de rotao do sistema de coordenadas.
Outra forma para gerar objetos tridimensionais utilizar operaes booleanas de slidos pr-definidos. Este
recurso foi utilizado para criar o slido da figura 7.5.
Em termos de diferentes forma de visualizao de um objeto, o comando vpoint do AutoCAD permite a
definio de um ponto-de-vista a partir do qual o objeto ser visto segundo uma projeo planar paralela
ortogrfica. O ponto-de-vista define um vetor que parte da origem do sistema de coordenadas corrente e
perpendicular ao plano de projeo (fig. 7.5). O sentido do vetor do plano para o observador (fig. 7.6). Neste
caso, quando vpoint igual a (0,-1,0) o desenho exibido de forma que o eixo y esteja apontando no sentido
contrrio ao do observador e vice-versa quando vpoint igual a (0,1,0).
Alm disto, o AutoCAD fornece uma maneira alternativa para se definir o ponto-de-vista de um objeto.
Considerando-se uma esfera no espao possvel se definir um vetor que vai do centro da esfera at a sua
borda atravs de dois ngulos de rotao. O primeiro medido no plano XY e o segundo no plano XZ. Uma
representao nica para estes dois ngulos pode ser dada atravs de duas circunferncias e um trpode (fig.
7.7), onde deslocamentos circulares em torno do centro do trpode indicam rotaes ao redor da origem dos
eixos no plano XY e deslocamentos do cursor do centro do trpode para a circunferncia mais externa
implica na rotao norte-sul do vetor, ou seja, caracterizam rotaes no plano XZ. As figuras 7.8, 7.9 e 7.10
exemplificam diferentes vistas de rotaes tridimensionais realizadas atravs do comando vpoint e do
tripide.
Observe-se que uma forma mais intuitiva de realizar rotaes o esquema de movimentos horizontais e
verticais do mouse, como o utilizado pelo software de visualizao tridimensional de dados meteorolgicos
VIS-5D. Neste processo, movimentos horizontais ou verticais do mouse indicam rotaes horizontais ou
verticais do objeto, respectivamente. Como as rotaes so sempre realizadas sobre a ltima posio do
objeto, este processo se torna bastante simples e intuitivo.

Figura 7.1

Figura 7.2

Figura 7.1: Sistema de coordenadas no AutoCAD (UCS).


Figura 7.2: Mudana de origem dos eixos.
Figura 7.3: Rotao dos eixos.

Figura 7.3

Figura 7.4: Processo de extruso no AutoCAD.


(0,0,1)

z
(-1,0,0)

(0,1,0)

(0,-1,0)

(1,0,0)

(0,0,-1)

Figura 7.5: Diferentes especificaes de ponto-de-vista (vpoint).

y
x

(0,1,0)

(0,-1,0)

Figura 7.6: Especificaes do ponto-de-vista em relao ao eixo y.

plo norte
S

z
y

xy

N
+

x
equador

plo sul

Figura 7.7: Esquema interativo de especificao de ponto-de-vista.

(0,0,1)
(1,0,0)

(0,-1,0)
B C
A

Figura 7.8: Especificaes de ponto-de-vista para planta, vista lateral e frontal.

(-1,1,1)

(-1,-1,1)

(1,1,1)

(1,-1,1)

Figura 7.9: Diferentes especificaes de ponto-de-vista.

(-1,1,-0.5)

(-1,-1,-0.5)

(1,1,-0.5)

(1,-1,-0.5)

Figura 7.10: Diferentes especificaes de ponto-de-vista.


Um uso interessante do conceito de projees para a gerao de objetos tridimensionais est disponvel no
3D Studio Max da AutoDesk. Este sistema permite que o usurio defina e ajuste formas que constituiro as
projees paralelas ortogrficas planta, vista lateral e vista frontal de um objeto 3D.
A construo do objeto parte da definio de uma forma base denominada de seo transversal (fig. 7.11).
Considerando o objeto 3D a perna torneada de uma mesa, a forma base a circunferncia que define o tubo a
ser torneado. Atravs da definio de um caminho para a replicagem da forma base (fig. 7.12) gerado um
objeto 3D denominado no 3D Studio de LOFT (objeto com elevao).
O torneamento do objeto LOFT realizado atravs de um recurso denominado de Fit Deformation.
Atravs desta deformao a forma superior (Fit X) e a lateral (Fit Y) do objeto desejado so associadas ao

objeto LOFT base para se obter a forma 3D composta (fig. 7.13). A edio das formas bem simples dado
que cada uma um conjunto de pontos interligados por linhas retas ou curvas e, assim, podem ser
modificadas por alterao de posio dos pontos, pela insero de mais pontos ou pelo aumento/diminuio
das formas em relao aos seus eixos. Definida a forma final do objeto, ele pode ser renderizado (fig. 7.14).
Seo Transversal
Fit X - Forma Vista Superior

Fit Y - Forma Vista Lateral

Figura 7.11
Figura 7.12
Figura 7.11: Vistas do objeto Faca.
Figura 7.12: Definio da forma base do objeto Faca.
Fit X - Forma Superior

Fit Y - Forma Lateral

Figura 7.13: Deformaes do objeto LOFT base.

Figura 7.14: Objeto final renderizado.

8.

Transformaes e Mapeamento de Coordenadas em Bibliotecas Grficas

Diferentes bibliotecas grficas utilizam esquemas diversos de transformaes e mapeamento de coordenadas.


No caso de uma biblioteca grfica que utiliza primitivas grficas bidimensionais, como o GKS (Graphical
Kernel System), por exemplo, o modo de mapeamento realizado atravs da definio de duas
transformaes.
No GKS, especificado os limites da rea de trabalho do usurio, cujo espao denominado de coordenadas
de mundo, um retngulo em seu interior define a rea de interesse para a visualizao (fig. 7.1). Um segundo
retngulo define o espao das coordenadas normalizadas, na qual o retngulo mapeado atravs da
transformao de normalizao. Nesta etapa pode se habilitar ou no operaes de recorte (clipping) bem
como de preservao ou no de relaes de aspecto (aspect ratio), ou seja, o objeto original a ser exibido
pode ser achatado ou esticado ou mantido com suas propores iniciais inalteradas. A transformao de
dispositivo mapeia as coordenadas de um retngulo definido no espao das coordenadas normalizadas no das
coordenadas de dispositivo. Nesta fase, no so permitidas operaes de recorte e de alterao da relao de
aspecto.

TN

Coordenadas
de Mundo

Coordenadas
Normalizadas

TD

TD
Coordenadas
de Dispositivo

Figura 8.1: Mapeamento de coordenadas no GKS.


8.1
Esquema de Transformaes na Biblioteca Grfica OpenGL
O processo de transformao na OpenGL baseado em uma analogia com as etapas usualmente seguidas
para se fotografar um objeto. Inicialmente, h o posicionamento da cmera, ou seja, regulagem do trpode e
da direo para a qual a cmera aponta, de forma a se definir uma regio de interesse para a foto (fig. 8.2.a).
Na OpenGL, isto significa definir o ponto-de-observao, o qual determina o volume de visualizao no
mundo em questo (fig. 8.2.b), e est relacionado com a transformao de visualizao (viewing
transformation).
A segunda etapa no processo de fotografar o posicionamento do objeto (fig. 8.2.c), o que significa
determinar qual parte dele dever aparecer mais acentuadamente na fotografia. Para tanto, o que se faz
mover ou rotacionar o objeto. Na OpenGL, esta etapa tambm relacionada a definio de posicionamento
do modelo (fig. 8.2.d), sendo denominada de transformao de modelagem (modeling transformation), que
se caracteriza por transformaes de rotao, translao e escalamento.
Note-se que estas duas etapas no processo da fotografia se confundem, dado que possvel se obter a mesma
foto rotacionando ou transladando o objeto ou a cmera. Neste sentido, a figura 8.3.a exemplifica como
pode-se afastar um objeto do ponto-de-observao, cuja posio no se altera e a figura 8.3.b como afastar o
ponto-de-observao do objeto, cuja posio permanece inalterada. Assim, na OpenGL as transformaes de
visualizao e modelagem so tratadas de forma combinada como modelview transformation.

Figura 8.2.a: Posicionamento de Figura 8.2.b: Posicionando o


volume de visualizao no mundo.
cmera.

Figura 8.2.c: Posicionando o objeto


(modelo).
Figura 8.2.d: Posicionando
modelo no mundo.

Figura 8.2.e: Ajustando a lente para Figura 8.2.f: Determinando a forma


o enquadramento.
do volume de visualizao.

Figura 8.2.g: Fotografia

Figura 8.2.h: Viewport

y
x
z

x
z

Figura 8.3.a: Translao do objeto.

Figura 8.3.b: Translao do pontode-observao.

A terceira etapa do processo de fotografar o ajuste das lentes para definir o enquadramento desejado. Neste
sentido, ao se usar uma grande angular, pode-se aumentar o ngulo de enquadramento, possibilitando que um
espao maior ao redor do objeto alvo se enquadre na rea da foto (fig. 8.2.e). Na OpenGL, esta etapa
corresponde a definio do volume de visualizao (fig. 8.2.f), ou seja, o que vai ser realmente exibido na
tela, bem como do tipo de projeo utilizado para se projetar o contedo do volume de visualizao na tela.
Aps se bater a foto, a ltima etapa se refere a revelao e produo da fotografia. Neste etapa, no
possvel mais se proceder a alteraes na cena, no entanto, pode-se escolher toda regio ou uma sub-parte
dela para ser mapeada na rea da foto (fig. 8.2.g). Na OpenGL, o processo similar (fig. 8.2.h), no entanto,
tambm possvel se proceder a alteraes de propores entre a altura e a largura do retngulo onde est
enquadrada a cena, conforme comentado no tpico sobre transformao de viewport.
Concluindo, o processo de transformao na OpenGL est dividido em quatro etapas (fig. 8.4), cada um
explicado em maiores detalhes a seguir.
8.1.1. Transformaes de Visualizao e Modelagem
A OpenGL oferece uma funo utilitria para se definir uma transformao de visualizao (fig. 8.5),
baseando-se na posio do observador (ox,oy,oz), na posio do centro da cena (cx,cy,cz) e em um vetor que
indica o eixo vertical do observador (vx,vy,vz), cujo valor em geral (0, 1, 0). Essa funo tem a seguinte
sintaxe:
gluLookAt (GLdouble ox, GLdouble oy, GLdouble oz, GLdouble cx, GLdouble cy, GLdouble cz,
GLdouble vx, GLdouble vy, GLdouble vz);
Note-se que gluLookAt uma funo utilitria porque ela implementada pela combinao das
transformaes bsicas de visualizao e modelagem da OpenGL, ou seja, translao, rotao e escalamento.
A funo de translao que aplica sobre a matriz modelview tem a seguinte sintaxe:
glTranslatef (GLfloat x, GLfloat y, GLfloat z);
glTranslated (GLdouble x, GLdouble y, GLdouble z);
Onde x, y e z indicam as distncias transladadas nos eixos x, y ou z.
Tambm aplicada sobra a matriz modelview, a funo para se realizar uma rotao tem a seguinte sintaxe:
glRotatef (GLfloat angulo, GLfloat x, GLfloat y, GLfloat z);
glRotated (GLdouble angulo, GLdouble x, GLdouble y, GLdouble z);
Onde o parmetro angulo indica o ngulo de rotao, e x, y e z indicam em quais dos eixos ser aplicada a
rotao.

Vrtice

Matriz de
Visualizao
(Modelview)

Transform.

Diviso de
Perspectiva

Matriz de
Projeo

de Viewport

x
y
z
w
Coordenadas
de objeto

Coordenadas
de olho

Coordenadas
de recorte

Coordenadas
normalizadas
de dispositivo

Coordenadas
de janela

Figura 8.4: Esquema de transformao de coordenadas na OpenGL.

(vx,vy,vz)

(cx,cy,cz)

y
(ox,oy,oz)

Figura 8.5: Transformao de visualizao.


A sintaxe da funo de escalamento :
glScalef (GLfloat x, GLfloat y, GLfloat z);
glScaled (GLdouble x, GLdouble y, GLdouble z);
Onde os parmetros x, y e z indicam o valor a ser multiplicado sobre cada eixo.
8.1.2. Transformao de Projeo
Esta transformao utilizada para definir o volume de visualizao, os planos de corte e, como o prprio
nome diz, determinar o modo de projeo do espao tridimensional no plano. Em termos de projeo
perspectiva, existem duas funes que realizam tal tipo de operao. A primeira :
glFrustum (GLdouble esquerda, GLdouble direita,
GLdouble topo, GLdouble base,
GLdouble perto, GLdouble longe);
Onde os parmetros esquerda e direita indicam os limites em x, topo e base indicam os limites em y, e perto
e longe indicam os limites em z (fig. 8.6). A palavra Frustum se refere a piramide truncada que fica entre os
planos perto e longe.
A segunda funo, mais usada que a primeira por ser operacionalmente mais intuitiva, :
gluPerspective (GLdouble acdvy, GLdouble ra, GLdouble perto,GLdouble longe);
Onde acdvy define o ngulo do campo de viso no eixo y, ra (razo de aspecto) define a relao x/y, para se
determinar o campo de viso em x, e perto e longe definem os limites ao longo do eixo z (fig. 8.7).
A projeo da cena no plano tambm pode ser realizada de acordo com uma projeo ortogrfica. A sintaxe
da funo que realiza esta operao :
glOrtho (GLdouble esquerda, GLdouble direita,
GLdouble topo, GLdouble base,
GLdouble perto, GLdouble longe);
Os parmetros desta rotina funcionam de forma similar ao da funo glFrustum.

Note-se que, como explicado anteriormente, as projees perspectivas permitem que se tenha uma viso mais
realstica de uma cena, dado que os objetos da cena mais distante do observador aparecero menores, e, assim,
alteram as relaes de tamanho e ngulo de lados do objeto. As projees ortogrficas, onde os raios projetores
so perpendiculares ao plano de projeo, evitam estas distores.

esquerda

topo

direita

base
perto
longe

Figura 8.6: Definio do volume de visualizao.

ra = largura/altura
y

/2

perto
longe

Figura 8.6: Definio do volume de visualizao pela rotina gluPerspective.


8.1.3. Transformao de Viewport
Depois que todos os vrtices sofreram as transformaes de modelview e de projeo, bem como os vrtices
fora do volume de visualizao foram eliminados, os vrtices sero mapeados na janela de exibio atravs
da transformao de viewport. A funo que define o mapeamento na viewport :
glViewport (GLint x, GLint y, GLsizei largura, GLsizei altura);
Onde (x,y) definem o ponto esquerdo-abaixo da janela de exibio e largura e altura definem as suas
dimenses. Caso a relao de aspecto (largura/altura) no for igual a do volume de visualizao, a imagem
poder ser exibida com distoro (fig. 8.8).
8.1.4. Matrizes de Transformao
A OpenGL possibilita duas maneiras de se obter transformaes: a primeira atravs do uso de funes
especficas para rotao, translao e escala, e a segunda atravs do clculo de uma matriz resultante de todas
as transformaes e a sua aplicao sobre os objetos da cena. Esta biblioteca oferece uma srie de funes
destinadas para a manipulao direta de matrizes de transformao. Pode-se carregar uma matriz da memria
e armazen-la diretamente, sem o uso das funes descritas anteriormente.

esquerda

direita

topo

direo do
ponto-de-vista

base
perto

distante

Figura 8.7: Projeo ortogrfica.

Sem distoro

Com distoro

Figura 8.8: Mapeamento do volume de visualizao para a viewport.


Para se especificar qual tipo de matriz ser feita a transformao, existe uma funo cuja sintaxe :
glMatrixMode (Glenum modo);
Onde o parmetro modo uma constante, que pode ser GL_MODELVIEW, GL_PROJECTION ou
GL_TEXTURE.
Para se carregar uma matriz, usa-se a seguinte funo:
glLoadMatrixf (const GLfloat *m);
glLoadMatrixd (const GLdouble *m);
Onde o parmetro m um vetor de 16 posies, contendo os valores da matriz. Outra funo permite que se
multiplique a matriz corrente por uma especificada como parmetro:
glMultMatrixf (const GLfloat *m);
glMultMatrixd (const GLdouble *m);
Neste caso, m tambm representa a matriz de transformao. Com isso, a matriz de transformao corrente
ser a multiplicao da antiga com a especificada pelo parmetro m.
H tambm uma funo para zerar a matriz corrente de transformao. Sua sintaxe :
glLoadIdentity ();
Desse modo, todas as transformaes so perdidas e os prximos desenhos sero feitos na posio (0, 0, 0).
Como exemplo do uso destas matrizes, o cdigo abaixo carrega a matriz identidade e depois aplica uma
escala nos trs eixos:
glMatrixMode (GL_MODELVIEW);
GLfloat m1[]
={
1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,

0.0, 0.0, 0.0, 1.0 };


glLoadMatrix (m1);
GLfloat m2[]
={
2.0, 0.0, 0.0, 0.0,
0.0, 2.0, 0.0, 0.0,
0.0, 0.0, 2.0, 0.0,
0.0, 0.0, 0.0, 1.0 };
glMultMatrix (m2);
Este outro exemplo mostra como se desenha um cubo rotacionado com transformao perspectiva:
glMatrixMode (GL_PROJECTION);
gluPerspective (90.0, 1.0, 0.0, 100.0);
glMatrixMode (GL_MODELVIEW);
glRotatef (30.0, 0.0, 1.0, 0.0);
glTranslatef (0.5, 0.0, 0.0);
auxSolidCube (0.5);
Duas funes em OpenGL permitem que se guarde temporariamente a matriz corrente de transformao e
que se recupere-a posteriormente. As matrizes podem ser empilhadas e desempilhadas, recuperando-se os
seus valores. A grande diferena entre o mtodo de zerar a matriz e empilhar/desempilhar que no primeiro
as transformaes anteriores so perdidas, e neste ltimo elas podem ser recuperadas.
Para empilhar a matriz usa-se a funo glPushMatrix () e para recuper-la usa-se a funo glPopMatrix ().
Como exemplo, este cdigo desenha uma esfera no centro da tela, outra sua direita, e outra acima da
primeira:
glLoadIdentity ();
auxSolidSphere (0.2);
glPushMatrix ();
glTranslatef (0.5, 0.0, 0.0);
auxSolidSphere (0.2);
glPopMatrix ();
glTranslatef (0.0, 0.5, 0.0);
auxSolidSphere (0.2);
Se no fossem usadas as funes de empilhar e desempilhar na matriz de transformao, seriam desenhadas
uma esfera no centro, outra direita e outra acima desta ltima, pois as transformaes seriam calculadas
sucessivamente.
8.2
Esquema de Transformaes na Biblioteca Grfica VRML
O esquema de transformao em VRML mais simples do que o da OpenGL. Ele se baseia em um eixo de
coordenadas 3D fixo e centrado no centro da janela de exibio. Objetos slidos (cilindros, cubos, etc) so
posicionados de forma centralizada em relao a este eixo. Os objetos podem ser deslocados no espao em
relao a este eixo, bem como possvel se definir um ponto-de-observao de forma semelhante ao da
OpenGL.
No h transformao de viewport, o que implica que relaes de aspecto no podem ser alteradas. Alm
disto, a VRML adota uma unidade padro de medida que o metro, isto para possibilitar a compatibilizao
de diferentes mundos.
As transformaes em VRML so realizadas atravs do node (bloco fundamental de construo de um
arquivo VRML) Transform que possui alguns campos que definem rotao, translao, escalamento e
qualquer combinao das transformaes citadas acima. Um node Transform afeta todos os nodes que esto
dentro dele e ainda possui um efeito acumulativo.
A translao feita usando-se um campo translation de um node Transform que especifica trs valores de
movimentao do objeto ao longo dos eixos x, y e z. A VRML segue a conveno da regra da mo direita
para a orientao dos eixos.
O exemplo abaixo descreve como se realizar a translao de -2.4 unidades no eixo x, 2 unidades no eixo y e 3
unidades no z, de um cilindro com 3m de raio da base e 6m de altura em VRML 2.0.
#VRML V2.0 utf8
Transform {

translation -2.4 2 3
children[
Shape {
appearance Appearance {
material Material { }
}
geometry Cylinder {
radius 3
height 6
side TRUE
top FALSE
bottom TRUE
}
}
]
}
O campo rotation de um Transform especifica a rotao de um objeto ao redor de um determinado eixo. Este
campo consiste de quatro valores. Os trs primeiros definem o eixo de rotao segundo a sequncia x y z. O
ltimo define quantos radianos o objeto deve ser rotacionado em torno do eixo de rotao. Por exemplo, o
trecho de cdigo abaixo descreve o mesmo cilindro do exemplo anterior rotacionado de 1.57 radianos ao
redor do eixo x.
#VRML V2.0 utf8
Transform {
rotation 1 0 0 1.57
children[
Shape {
***
}
]
}
A rotao pode ser realizada no sentido horrio ( valor do ngulo de rotao negativo ) e no sentido antihorrio ( ngulo positivo ). Como mencionado anteriormente, deve-se atentar para que quando for se
rotacionar um objeto fora da origem dos eixos, deve-se primeiro transladar esta origem para um ponto
estabelecido do objeto, realizar a rotao e depois retornar a origem dos eixos a sua posio inicial.
Escalamento aumenta ou diminui o tamanho dos objetos que estiverem dentro de um node Transform. Esta
transformao especificada pelo campo scale, o qual possui trs nmeros que representam a escala nos
eixos x, y e z respectivamente. scale 1 1 1 significa nenhuma modificao no objeto. scale com valor 0 em
qualquer direo torna o objeto infinitamente pequeno na direo. Como ilustrao, se for alterado parte do
ltimo exemplo tem-se:
#VRML V2.0 utf8
Transform {
scale 1.23 1 1
children[
Shape {
***
}
]
}
Nesta situao o objeto ser aumentado em 23% na direo do eixo x.
A combinao dos campos do node Transform podem realizar as mais complicadas transformaes. Quando
usa-se uma combinao de transformaes deve-se considerar que:

A ordem em que uma srie de transformaes aplicada faz diferena.

A transformao mais recente aplicada primeiro.

A ordem em que uma srie de transformaes aplicada dentro de um nico node Transform fixa.
Primeiro aplicado o escalamento, depois a rotao e por fim a translao. Se for necessrio que isto
ocorra em ordem diferente da especificada acima, deve-se usar vrios nodes Transform.
Abaixo tem-se um exemplo de um node Transform que combina todas as transformaes possveis em
VRML.
#VRML V2.0 utf8
Transform {
scale
1.23 1 1
rotation
0 1 0 1.69
translation
4.5 1 0.4
children[
Shape {
appearance Appearance {
material Material { }
}
geometry Cylinder {
radius 3
height 6
side TRUE
top FALSE
bottom TRUE
}
}
]
}
Em relao ao posicionamento do ponto-de-observao, o node ViewPoint descreve uma posio potencial e
uma orientao para a observao de uma cena. Criar um ViewPoint como posicionar uma cmera em um
determinado ponto para que o cenrio seja visto a partir dele. Pode-se especificar, tambm, um campo de
viso, indicando o quanto a cena visvel. Isto funciona de forma similar ao parmetro acdvy na rotina
gluPerspective da OpenGL e um pequeno field of view deixa parte de um cenrio visvel, ao contrrio de um
grande field of view que deixa grande parte do cenrio visvel.
Segundo a especificao da VRML 2.0, o node ViewPoint definido da seguinte maneira:
ViewPoint {
position
0 0 10
orientation
0010
fieldOfView 0.785398
description

jump
TRUE
}
onde,
position - especifica a posio relativa do node ViewPoint em relao ao sistema de coordenadas.
orientation - especifica a rotao relativa a uma orientao padro. A orientao padro aquela que o
usurio observa a cena percorrendo-a no sentido do eixo -z , com +x direita e +y para cima. Uma
simples rotao da orientao ( rotao realizada sobre um eixo arbitrrio ) suficiente para especificar
qualquer combinao de direes de viso. Pode-se colocar dois campos orientation para um node
ViewPoint. Os campos position e orientation so afetados pela hierarquia das transformaes.
fieldOfView - especifica um campo de viso em radianos. Ele pode variar de 0 a , sendo que o ngulo prassumido 45.
description - descreve o ponto de vista que o usurio est utilizando.
jump - indica se o browser pode saltar para um outro ViewPoint que foi definido.

9.

Referncias

Cap. 1: [CARL78], [MARR82]


Cap. 2: [FOLEY90], [ROGER90]
Cap. 3: [FOLEY90], [ROGER90], [BLINN92a], [BLINN92b]
Cap. 4, 5, 6: [CARL78], [FOLEY90], [GLASS90], [ROGER90], [SNYDE84]
Cap. 7: [PETER96], [KALAM96]
Cap. 8: [NEID93], [BLINN93], [HART96], [SCHR96], [RICH96]
Cap. 9: [SOUTH92], [HODGE92], [ROGER90], [BALLA82], [BAYA95], [SLATER93], [KELSO92]
[BALLA82] Computer Vision. Dana H.Ballard, Christopher M.Brown. Prentice-Hall, 1982.
[BAYA95] Computing non-planar perspectives in real time. Salvador Bayarri, Computers & Graphics
19(3), 1995.
[BLINN93] A Trip Down the Graphics Pipeline: The Homogeneous Perspective Transformation. James F.
Blinn, IEEE Computer Graphics & Applications, Maro, 1992.
[BLINN92a] Uppers and Downers. James F. Blinn, IEEE Computer Graphics & Applications, Maro, 1992.
[BLINN92b] Uppers and Downers II. James F. Blinn, IEEE Computer Graphics & Applications, Maio,
1992.
[CARL78] Planar Geometric Projections and Viewing Transformations. I. Carlbom, J. Paciorek,
Computing Surveys, v.10, n.4, dezembro de 1978.
[EZZI93] The Scaling Behavior of Viewing Transformations. S. S. Abi-Ezzi, L. A. Shirman, IEEE
Computer Graphics & Applications, Maio, 1993.
[FOLEY90] Computer Graphics - Principles and Practice. J. D. Foley, A. van Dam, S. K. Feiner, J. F.
Hughes, Addison-Wesley, 1990, segunda-edicao.
[GLASS90] Graphics Gems. S. Glassner, Academic Press Professional, 1990, paginas 485 a 493.
[HART96] The VRML 2.0 Handbook: Building Moving Worlds on the Web. Jed Hartman, Josie
Wernecke, Addison-Wesley Pub Co, 1996.
[HODGE92] Tutorial: time-multiplexed stereoscopic computer graphics. Larry F.Hodges, IEEE Computer
Graphics & Applications, 12(2), 92.
[KALAM96] AutoCAD para Desenhos de Engenharia. Alan Kalameja, Makron Books, 1996
[KELSO92] Perspective projection: artificial and natural. Patterson Kelso, Engineering Design Graphics
Journal, 56(3), 1993.
[NEID93] OpenGL Programming Guide. Jackie Neider, Tom Davis, Mason Woo, Addison Wesley, 1993.
[PETER96] 3D Studio MAX Fundamentals. Michael Todd Peterson, New Riders Publishing, 1996.
[RICH96] Opengl Superbible: The Complete Guide to Opengl Programming for Windows Nt and
Windows 95. Richard S., Jr Wright, Michael Sweet, Waite Group Pr, 1996.
[ROGER90] Mathematical Elements for Computer Graphics. David F. Rogers, J. Alan Adams, McGrawHill, segunda edicao, 1990
[SCHR96] The Visualization Toolkit: An Object-Oriented Approach to 3-D Graphics. Will Schroeder, Bill
Lorenson, William Schroeder, Prentice Hall Computer Books, 1996
[SLATER93] Simulating peripheral vision in immersive virtual environments. Mel Slater, Martin Usoh,
Computers & Graphics 17(6), 1993
[SOUTH92] Transformations for stereoscopic visual simulation. David A.Southard, Computers & Graphics
16(4), 1992
[SNYDE84] Map projections used by the US Geological Survey. J. P. Snyder, US Government printing
Office, Washington, segunda edicao, 1984

También podría gustarte