Você está na página 1de 105

Programa Especial de Treinamento / PET/AGRO Pgina 1

1. Histrico e Aplicaes da Computao Grfica


1.1. Definies
Mtodos e Tcnicas de converter dados para um dispositivo via computador
ou
Sub-rea da Cincia da Computao que consiste me mtodos e tcnicas usa-
das para criar, armazenar e manipular modelos de objetos e suas imagens via com-
putador.
1.2. Nomes Usuais
Compugrafia: Romero Tori
Grfica Computacional: Harold Santos
1.3. Breve Histrico
1950: Incio da Computao Grfica, pela primeira vez, um tubo de raios cat-
dicos ligado um Computador, on MIT e Projeto Sage, onde um radar foi ligado
um Computador, num projeto do exrcito americano, utilizando interao com Light
Pen;
1959: Surge o termo Computer Graphics - criado por Verne L. Hudson, quan-
do o mesmo coordenava um projeto para a Boeing de simulao de fatores humanos
em avies;
Programa Especial de Treinamento / PET/AGRO Pgina 2
- Apostila de Computao Grfica (Incompleta)-
1962: No MIT o projeto TX2 com o aluno Ivan Sutherland usa um computador
para fazer desenhos em sua tese de doutorado;
1970: Surgem os primeiros monitores varredura.
1.4. Aplicaes da C.G.:
Anlise de dados;
Computao Cientfica;
CAD / CAM e CAE;
Simulao Visual;
Processamento de Textos;
Entretenimento;
Medicina;
Outros.
1.5. Equipamentos para Computao Grfica:
1.5.1. Introduo
Dados Grfico podem ser classificados em:
Vetoriais: Dados representados por pontos coordenados e linhas, capazes de
ligar tais pontos;
Matriciais: Consiste de uma matriz de pontos no espao e a cada ponto asso-
ciado um atributo de Intensidade;
1.5.2. Representao X Apresentao:
Chama-se representao da imagem estrutura de dados que a contm e
Apresentao da imagem relao da mesma com o equipamento que a repro-
duz;
Programa Especial de Treinamento / PET/AGRO Pgina 3
- Apostila de Computao Grfica (Incompleta)-
1.5.3. Equipamentos de entrada
A entrada pode ser diferenciada em 2 categorias diferentes: coordenadas
relativas x coordenadas absolutas.
VETORIAL:
Coordenadas - mouses (pticos e mecnicos)
relativas - joysticks, bolota e diais
Coordenadas - teclados
absolutas - mesas digitalizadoras
- caneta ptica - light pen
- tela ptica - touch screen
MATRICIAL:
Digitalizadores de vdeo: a partir de um sinal de televiso gera uma matriz de
pontos em um monitor de vdeo; - FRAME GRABBER -
Varredores digitais (SCANNER): so baseados na absoro da luz; verso do
FRAME GRABBER para papel.
FILM SCANNER: o equivalente para filme.
Programa Especial de Treinamento / PET/AGRO Pgina 4
- Apostila de Computao Grfica (Incompleta)-
1.5.4. Processadores Grficos
1.5.4.1. Introduo:
Na dcada de 60 Tecnologia da Computao Grfica discute o fato
de um computador, ao invs de manusear caracteres, manusear pixel (pontos indivi-
duais da tela).
Fcil monitores para branco.
Cor alm de controlar pontos acesos e apagados, era necessrio con-
trolar-se as cores.
Processadores grficos necessitam administrar dispositivos de visualizao
complexos, diferente de processadores que se destinam s ao armazenamento e ma-
nuseio de processamento matemtico. Assim, computadores grficos necessitam,
alm da unidade de processamento central, de mdulos dedicados exclusivamente ao
gerenciamento do dispositivo de visualizao.
Problemas:
No modo grfico; a mquina deve oferecer recursos para representao de algumas
primitivas;
A mquina, no modo grfico, perde o acesso ao gerador de caracteres alfa-
numricos, logo necessrio prover meios para tal soluo.
Definio: Processador grfico a parte do hardware responsvel pela integra-
o do gerenciamento simultneo da tela e dos recursos grficos mnimos residentes
(no hardware).
Programa Especial de Treinamento / PET/AGRO Pgina 5
- Apostila de Computao Grfica (Incompleta)-
- bit map: mltiplos planos de bits que armazenam a
imagem gerada de forma digital;
Requisitos mnimos -circuitos de varredura seqencial: traduzem este
mapa ao processo grfico digital para sua visualizao fsica na
tela;
- circuitos que permitem manusear / modificar este
mapa;
1.5.5. Equipamentos De Sada
1.5.5.1. Plotters:
traadores grficos (de mesa e de tambor)
1.5.5.2. Terminais de vdeo
Atualmente: CRT Tubos de raios catdicos princpio da televiso.
Um ctodo aquecido emite um feixe eletrnico que convenientemente
focalizado por um conjunto de lentes e acelerado. Ao incidir na superfcie de tubo,
que recoberta de fsforo: pontos bombardeados pelos eltrons emite luz e a associ-
ao de pontos acesos forma a imagem. O feixe eletrnico desviado pela ao de
campos magnticos produzidos por bobinas qual aplicada uma d.d.p. proporcio-
nal ao desvio desejado.
Caracterstica dos terminais de vdeo:
Programa Especial de Treinamento / PET/AGRO Pgina 6
- Apostila de Computao Grfica (Incompleta)-
i) Resoluo: n de pontos distintos que pode ser aceso, que depende da capa-
cidade do sistema computacional que gerencia o display. Propriedade: aspect ratio
aspect ratio = x/y uma linha vertical de x pontos de mesmo de uma linha ho-
rizontal de y pontos;
ii) Persistncia do fsforo: capacidade do elemento qumico reter a luminosi-
dade;
iii) Sistema de deflexo: controlador do esboo produzido na tela;
MTODOS DE VARREDURA
2 metodologias bsicas para gerao de imagens na tela grfica:
Varredura randmica ou vetorial - random/vector scan
Varredura rastreada ou matricial - raster scan
At 1980 prevalecia equipamento de varredura randmica
mtodo ideal para representar vetores, tpicos das aplicaes de CAD.
Hoje predominam equipamentos de varredura matricial.
Funcionamento:
Random-scan: o feixe de eltrons direcionado somente para as partes da tela
onde a figura desenhada.
Raster-scan: o feixe de eltrons disparado sobre todas as partes da tela, sendo a
tela criada por um conjunto de pontos processo da televiso varre-se a tela
Programa Especial de Treinamento / PET/AGRO Pgina 7
- Apostila de Computao Grfica (Incompleta)-
de cima para baixo e da esquerda para a direita marcando os trechos visveis du-
rante o trajeto.
PAL - 256 linhas de varredura
TV
NTSC - 525 linhas de varreduras
CONAP 256 2048, j chegando a 4096 linhas.
MONITORES COLORIDOS
Composto de 3 camadas de fsforo diferentes e sensveis s cores ver-
melho, verde e azul. O tubo possui 3 diferentes canhes de luz. Estes canhes po-
dem ser montados numa configurao triangular ou linear. Os fsforos na tela so
formados como trades. A convergncia feita por uma placa metlica chamada
shadow-mask.
DSVT - Direct View Storage Tube
Programa Especial de Treinamento / PET/AGRO Pgina 8
- Apostila de Computao Grfica (Incompleta)-
Funciona como CRT convencional. H, no entanto, no seu interior, um
monitor auxiliar (o canho de inundao) - Flood Gun.
Funcionamento: O canho primrio usado para desenhar a definio da ima-
gem sobre a grade de armazenamento, formada de material no-condutor. Eltrons de
alta velocidade do canho primrio colidem a grade de armazenamento fazendo sair
alguns eltrons que so atrados para a grade coletora, de carga positiva. Como a
grade de armazenamento no-condutora, a rea onde os eltrons foram removidos
manter-se-a positiva. Esta rea positiva armazenada a definio da figura. O canho
de inundao produz um contnuo jato de eltrons de baixa velocidade que passam
atravs da grade coletora e so atrados para as reas positivas da tela de armazena-
mento. Estes eltrons atingem a tela de fsforo atravs da grade de armazenamento
sem afetar sua carga.
Para se apagar a imagem basta aplicar uma carga positiva elevada na su-
perfcie de armazenamento. Uma enxurrada de eltrons de inundao atrada para
ela, apagando a imagem e causando um forte claro, como se explodisse um FLASH.
DISPLAYS DE CRISTAL LQUIDO
Fundamentos: Painel de Plasma: Uma camada de gs neon, misturada com
outros gases comprimida entre duas placas de vdeo. Essas placas possuem no seu
interior fileiras de condutores milimtricos. O gs ionizado pela passagem de cor-
rente eltrica nestes condutores. Ao passar por uma interseo a corrente provoca
emulso de luz pelo gs.
No caso do display de cristal lquido, as molculas de cristal lquido en-
contram-se, inicialmente, sem direcionamento. Aplicando-se um potencial eltrico
aos condutores, tais molculas se arranjam, impedindo a passagem de luz atravs das
Programa Especial de Treinamento / PET/AGRO Pgina 9
- Apostila de Computao Grfica (Incompleta)-
superfcies de polarizao, com isto, certas clulas tornam-se escuras, mostrando a
figura nos cruzamentos.
1.5.5.3. Impressoras:
- de impacto
- laser
Programa Especial de Treinamento / PET/AGRO Pgina 10
- Apostila de Computao Grfica (Incompleta)-
2. SISTEMAS DE COORDENADAS
2.1. RESOLUO
Todos dispositivos grficos usam uma grade retangular de localizaes ende-
reveis. Este retngulo chamado de Display Rectangle ou Graphics I/O Rec-
tangle. Dispositivos grficos so fixados de acordo com sua resoluo grfica, o
nmero de horizontais versus posies verticais.
Parmetros importantes: caractersticas grficas bsicas;
1. ndh => N de localizaes grficas endereveis horizontalmente;
2. ndv => N de localizaes grficas endereveis verticalmente;
3. width => a largura fsica de retngulo em milmetros;
4. height => a altura fsica de retngulo em milmetros.
width - 245,0 ndh - 640
Geral: monitor PC
heigth - 186,0 ndv - 200
Baseado nestes conceitos, define-se:
1. Resoluo horizontal
Res-horiz = ndh/width
2. Tamanho de pontos na horizontal (horizontal dot size)
Hor-dot-size = width/ndh
3. Resoluo vertical
res-vert = ndv/height
4. Tamanho de pontos na vertical (vertical dot size)
Programa Especial de Treinamento / PET/AGRO Pgina 11
- Apostila de Computao Grfica (Incompleta)-
vert-dot-size = height/ndv
5. Total de pontos endereveis
total-nr-dot = ndv*ndh
6. Graphics aspect ratio
aspect-ratio = vert-dot-size/horiz-dot-size
7. Physical aspect ratio
Phys-aspect-ratio = height/width
2.2. SISTEMAS DE COORDENADAS DO USURIO
Chama-se coordenada do usurio ao sistema de coordenadas que um
usurio escolhe para trabalhar.
mais freqente := sistema cartesiano
outra opo := sistema polar
Para o GKS => Sistema cartesiano => chamado de world coordinates (WC).
Os objetos (grficos) so especificados no sistema de coordenadas do usurio
e devem ser convertidos em coordenadas apropriadas do dispositivo fsico.
A poro do desenho que deve aparecer na tela e chamada de JANELA.
Uma janela geralmente definida por seus limites mais altos e menores.
Formato geral da definio de uma janela:
WINDOW(min-x,max-x,min-y,max-y)
A janela pode apresentar poro do objeto, objeto inteiro ou objeto mais
rea vazia.
Programa Especial de Treinamento / PET/AGRO Pgina 12
- Apostila de Computao Grfica (Incompleta)-
Wraparound => envolver a vizinhana
clipping => efeito pelo qual h uma poro visvel do objeto na janela e por-
es invisveis de objeto fora da janela.
JANELA POSSIBILITA
VISO DE TODO
(NO CLIPPING)
Anlogo: janela possibilita viso do todo e de grande rea em branco:
JANELA C/ CLIPPING
Programa Especial de Treinamento / PET/AGRO Pgina 13
- Apostila de Computao Grfica (Incompleta)-
O exemplo acima demonstra a aplicao de escalas arbitrrias para mapea-
mento de um objeto dentro de uma janela.
Descrio de wraparound: o uso de escalas deferentes por programadores dife-
rentes pode gerar problemas de um desenho aparecer recortado ao se mudar o dispo-
sitivo de sada pelo novo programador/operador. A falta de uso de escalas normali-
zadas pode gerar tal problema.
2.3. SISTEMAS DE COORDENADAS NORMALIZADAS
Para contornar o problema anterior, considerando a grande diversidade de
equipamentos existentes, com diferentes resolues grficas, onde h um sistema de
coordenadas para cada tipo de dispositivo, prope-se o sistema de coordenadas nor-
malizadas - NDC - (Normalized Device Coordinates) com valores de coordenadas
variando de 0 a 1.
Programa Especial de Treinamento / PET/AGRO Pgina 14
- Apostila de Computao Grfica (Incompleta)-
A poro retangular da tela sobre a qual a janela e todo seu contedo so ma-
peadas chamada de:
VIUPORTE - VIEWPORT -
definio de uma viuporte:
VIEWPORT(min-x,max-x,min-y,max-y)
Numa situao em que definamos diferentes viuports conforme:
VIEWPORT-1 (0.0 , 0.5 , 0.0 , 0.5)
VIEWPORT-2 (0.5 , 1.0 , 0.0 , 0.5)
VIEWPORT-3 (0.0 , 0.5 , 0.5 , 1.0)
VIEWPORT-4 (0.5 , 1.0 , 0.5 , 1.0)
Obs.: Pode ser que o mapeamento para uma viuporte gere solues com desfi-
gurao de imagem caso os aspect ratios da window e viuport no correspondam,
Programa Especial de Treinamento / PET/AGRO Pgina 15
- Apostila de Computao Grfica (Incompleta)-
isto , as dimenses dos lados da janela no correspondem as dimenses de lados da
viuporte. O mapeamento da lados das WC para as NDC produz a imagem com esca-
las diferentes.
Janela e viuporte com diferentes
aspectos aspect-ratios
Transf. de Transformao
WC NDC DC
Normalizao de estao
Programa Especial de Treinamento / PET/AGRO Pgina 16
- Apostila de Computao Grfica (Incompleta)-
2.3.1. Transformao De Normalizao
Tal mapeamento descrito atravs de frmulas que surgem da proporcionali-
dade, ou seja, de um posicionamento relativo de um ponto na janela deve refletir no
ponto correspondente na viuporte.
Por interpolao, obtm-se:
XW - XWmin = XN - XNmin =>
XWmax - XWmin XNmax - XNmin
XN = ( XW - XWmin )*( XNmx - XNmin) + XNmin
XWmx - XWmin
XN = (XNmx - XNmin )*(XW - XWmin) + XNmin
XWmx - XWmin
e finalmente;
XN = XNmin + fat-vis-x (*) ( XW - XWmin )
ou
XN = Sx.(XW - XWmin) + XNmin
Sx = fator de escala window/viewport
Analogamente:
YN = YNmin + fat-vis-y . (YW - YWmin )
sendo fat-vis-y = YNmx - YNmin
Programa Especial de Treinamento / PET/AGRO Pgina 17
- Apostila de Computao Grfica (Incompleta)-
YNmax - YWmin
TRANSFORMAO (graficamente)
2.3.2. Transformao de estao (NDC-DC)
Conseguida com
map-ndc-dc(Xn,Yn,Xd,Yd):-
XD1 is Xn*NPX,
YD1 is Yn*NPV,
round(Xd1,0,XD2),
round(Yd1,0,YD2),
XD is integer(XD2),
YD is NPV - integer(YD2).
onde: round(X,N,Xz) => arredonda X com N casas decimais, devolvendo o re-
sultado e Xz.
NPX = ndh - 1; NPY - ndv - 1
CGA - ndh - 640 ; ndv = 200 (baixa resoluo)
Programa Especial de Treinamento / PET/AGRO Pgina 18
- Apostila de Computao Grfica (Incompleta)-
OPERAES DE VIEWING (Visualizao)
3. GERAO DE PRIMITIVAS GRFICAS
3.1. Gerao de Linhas
3.1.1. Mtodo Analtico
Um TRC (Raster) pode ser considerado como uma matriz de pontos dis-
cretos, no possvel traar diretamente uma linha unindo ponto a ponto. O processo
de descrever da melhor maneira possvel a linha encontrando as melhores aproxima-
es chamado de rasterizao. Para linhas horizontais, verticais ou inclinadas 45, o
processo no acusa problemas.
3.1.2. Analisador Diferencial Digital (DDA)
Tcnica baseada na soluo da equao diferencial. Para uma linha reta:
dy = K (constante) ou y = y2 - y1
Para outras linhas, ser necessrio decidir
que pixel ser usado (?)
Quando o dispositivo apresentar razovel
Programa Especial de Treinamento / PET/AGRO Pgina 19
- Apostila de Computao Grfica (Incompleta)-
dx x x2 - x1
A soluo :
yi+1 = yi + y
yi+1 = yi + y2 - y1 .x
x2 - x1
Programa Especial de Treinamento / PET/AGRO Pgina 20
- Apostila de Computao Grfica (Incompleta)-
|x
2
- x
1
| > |y
2
- y
1
|
Sim No
incremento = y
2
- y
1
/ x
2
- x
1
incremento = x
2
- x
1
/ y
2
- y
1
y = y
1
x = x
1
p/ x de x
1
at x
2
faa p/ y de y
1
at y
2
faa
dot (x,y,cor) dot (x,y,cor)
y = y + incremento
(*)
x = x + incremento
(*)
(*)
determina a densidade da linha
(x
2
, y
2
)
y
i
= valor para um do passo da linha.
(x
1
, y
1
)
Problema: Truncamentos e arredondamentos.
Programa Especial de Treinamento / PET/AGRO Pgina 21
- Apostila de Computao Grfica (Incompleta)-
Exerccio: Apresentar que pontos sero usados para conceber a reta (0, 0) at
(8, 4) utilizando o mtodo acima.
3.1.3. Algoritmo de Bresenham
Justificativa: O mtodo acima consome muito tempo com truncamentos.
BRESENHAM prope trabalho somente com inteiros. No h uso de variveis reais.
Para simplificar o algoritmo, supomos o incremento como uma unidade e a inclina-
o da linha est entre 0 e 1. O algoritmo usa uma varivel de deciso di que a cada
passo proporcional diferena entre s e t mostrado na figura. Se s < t ento Si
est mais perto da linha desejada e ser o escolhido; seno Ti esta mais perto e ser o
escolhido.
Movimentos do algoritmo de BRESENHAM
Incrementos unitrios sero dados na direo da maior deslocamento.
Assim, a inclinao da reta tem 0 tg 1. A cada incremento na direo maior, o
valor da outra coordenada pode ser incremento ou no.
Para uma reta no primeiro octante: incremento em y dever ser igual a 1
ou no haver incremento, para cada incremento em x. Para decidir, observamos que
se y
i
ou y
i
+1 est mais prximo da posio da reta real.
3.1.3.1.Descrio Algortmica
Demonstrao
Programa Especial de Treinamento / PET/AGRO Pgina 22
- Apostila de Computao Grfica (Incompleta)-
Pontos Negros:
reta Selecionado pelo al-
goritmo
Ti= (r+1, q+1) desejada de BRESENHAM

t y x
dy
dx
.
Obs: a linha ser desenhada
de
Pi-1 = (r, q) (x
1
, y
1
) at (x
2
, y
2
).
(= (xi - 1, yi - 1)) A linha se transforma de (0,
0) at (dx, dy) onde
d
x
= x
2
- x
1
d
y
= y
2
- y
1
e a equao da reta y x
dy
dx
.
Nota-se que y
s
- q = s; mas y
dy
dx
r r q
s
+ + .( ) .( ) 1 1 s =
dy
dx
t= (q + 1) - y
t
; mas y
dy
dx
r r
t

|
.

`
,
+ + .( ) ( ) 1 1 t = (q +1) -
dy
dx
logo + (s - t) = 2.
dy
dx
( ) r q 1 2 1, dai dx.(s - t) = 2.(r.dy - q.dx) + 2dy - dx;
chamando dx(s - t) = d
i

Programa Especial de Treinamento / PET/AGRO Pgina 23
- Apostila de Computao Grfica (Incompleta)-
d
i
= 2.(rdy - qdx) + 2dy - dx; mas
{
{
r = xi - 1
q yi 1

d = 2.(xi -1)dy - 2.(yi -1). dx + 2dy - dx ; (1), dai
d +1 = 2. xi. dy - 2yi. dx + 2dy - dx; fazendo d +1 - d , tem- se:
i
i i i

'

d +1- d = 2dy - 2dx(y - y


d = d + 2dy - 2dx.(y
lenbrando que d = dx.(s - t);
se s t d 0 - T
se s < t d < 0 - S
i) Se d 0 tomamos T (y d + 2.(dy - dx)
ii) Se d < 0 tomamos S (y d +1= d + 2. dy
Para (i =1), como (x d = 2. dy - dx , por 1
i i i i-1
(i + 1) i i
i
i i
i i
i i i i
i i i i i
0 i
)
)
, ) ( , )
y
y
y
i
i
1
1
0
1
0 0
Obs.: O algoritmo acima funciona bem para linhas do primeiro octante. Como
podemos generalizar que uma linha em outros octantes pode ser obtida partir do
primeiro necessrio apenas desenvolver transformaes do primeiro para os demais
octantes.
Descrio Algortmica - quadro
considerando (x0, y0) = (0, 0) (i = 1):
Programa Especial de Treinamento / PET/AGRO Pgina 24
- Apostila de Computao Grfica (Incompleta)-
x = x2 - x1 ; y = y2 - y1
Delta = d = 2. y - x
para x de x1 at x2 faa:
liga pixel (x, y, cor)
d0
Sim No

Y < y+1 Y no altera y
d = d + 2.( y - x) d = d + 2. y
3.1.3.2. Antialiasing
Como retas e arestas so contnuas, seu traado em monitores do tipo
raster causam certas imprecises, porque tais dispositivos so discretos. O fen-
meno chamado de aliasing (serrilhado).
Solues para antialiasing.
Aumentar a taxa de amostragem - com aumento da resoluo do RASTER
Verificar quanto cada pixel se encontra dentro da linha a ser desenhada.
3.1.3.3.Algoritmo De Bresenham Modificado Com Antialiasing:
Programa Especial de Treinamento / PET/AGRO Pgina 25
- Apostila de Computao Grfica (Incompleta)-
Obs: Linha (x
1
,y
1
) (x
2
,y
2
)
I n de intensidades disponveis
x = x
1
; y = y
1
x = x
2
- x
1
; y = y
2
- y
1
m I y x ( / ); w m 1 ;
e I / 2 ( 1 / 2 para intensidade I)
plot (x , y , m/2)
while (x < x)
if e < w them
x = x + 1, e = e + m
else
x = x + 1 , y = y +1, e = e - m
end if
plot (x , y , e)
end while
finish
ALGORITMO GERAL DE BRESENHAM (utilizao para todos os quadran-
tes )
-ver livro do Roger, pg. 40/41
3.2. GERAO DA CIRCUNFERNCIA
Programa Especial de Treinamento / PET/AGRO Pgina 26
- Apostila de Computao Grfica (Incompleta)-
3.2.1. Equao paramtrica
A equao de circunferncia (cnicas, de forma geral) enfrenta proble-
mas similares gerao de retas, adicionando-se a dificuldade de clculo de funes
trigonomtricas. A primeira proposta de soluo dada pelo clculo de pontos num
perodo, usando as funes sen e cos:
0 2 t
y r t
x r t

'

sen( )
cos( )
passo: t - mantm adequada a densidade dos pontos
Programa Especial de Treinamento / PET/AGRO Pgina 27
- Apostila de Computao Grfica (Incompleta)-
x raio ; y = 0
para t de 1 at 360 com passo t
pixel (x , y , cor)
x r
y r
t
t

cos( )
sen( )

180
180
Programa Especial de Treinamento / PET/AGRO Pgina 28
- Apostila de Computao Grfica (Incompleta)-
Problemas : - uso de funes trigonomtricas.
- densidade dos pontos varia com o raio.
Algoritmo Incremental Com Simetria
base: deslocamento angular com incremento de 1 pixel (deslocamento em radianos
- 1/r)
Uma propriedade importante que pode-se usar no algoritmo a simetria da cir-
cunferncia:
cos (x) = cos ( t x)
cos (x) = cos (-x)
sen (x) = sen ( - x)
sen (x) = sen ( + x) = - sen (-x)
Programa Especial de Treinamento / PET/AGRO Pgina 29
- Apostila de Computao Grfica (Incompleta)-
Problema: uso de funes trigonomtricas o que reduz muito a eficincia do
algoritmo.
Soluo: algoritmo incremental com deslocamento angular constante e pe-
queno, com a rotao a partir de um ponto inicial:

x x y
y y x
n n n
n n n
+
+
+

'

1
1
cos sen
cos sen


onde : cos e sen so valores fixos.
Problema: uso de xn e yn nas prximas iteraes causa erros cumulativos
Soluo: uso de nmeros reais com funo de arredondamento, calculando
cada pixel.
3.2.1.1. ALGORITMO
x r ; y = 0;
gera pontos sobre o eixo:
Programa Especial de Treinamento / PET/AGRO Pgina 30
- Apostila de Computao Grfica (Incompleta)-
pixel (x , y , cor),
pixel (-x , y , cor),
pixel (x , -y , cor),
pixel (-x , -y , cor).
demais pontos (0 t p / 4 com passo 1 / r) :
x = r cos t,
y = r sen t,
pixel (x , y , cor),
pixel (x , -y , cor),
pixel (-x , y , cor),
pixel (-x , -y , cor),
pixel (y , x , cor),
pixel (y , -x , cor),
pixel (-y , -x , cor).
3.2.2. Algoritmo de Bresenham
A soluo dada por BRESENHAM tambm utiliza a noo de simetria,
gerando o primeiro quadrante e os demais por simetria. Utiliza-se ainda um crculo
centrado na origem. Comeamos no ponto (O,R) e vamos diminuindo x exaustiva-
mente, ou comeamos no ponto (R,O) e diminumos u exaustivamente.
Escolha: (O,R).
Partindo de (O,R), gerando a circunferncia no sentido horrio, o algo-
ritmo pode escolher entre 3 pontos diferentes, sendo que a escolha deve recair sobre
aquele que est mais prximo do crculo ideal:
- horizontalmente para direita; (mh)
- diagonalmente para baixo direita; (md)
Programa Especial de Treinamento / PET/AGRO Pgina 31
- Apostila de Computao Grfica (Incompleta)-
- verticalmente para baixo; (mv)
m h x y R
m d y R
m v y R
i i
i
i
=
= ( x
= ( x
i
i
( ) ( )
) ( )
) ( )
+ +
+ +
+

'

1
1 1
1
2 2 2
2 2 2
2 2 2
O algoritmo escolhe o pixel que minimize o quadrado da distncia entre
um destes pixel e o crculo verdadeiro (mv, md, mh).
Chamando i = diferena entre o quadrado da distncia do pixel ao
centro e o raio da circunferncia, temos: i = (x
i
+1)
2
+(y
i
- 1)
2
+ R
2
(pixel diago-
nal)
1) caso (i < 0) - O ponto B est no interior do crculo e deve-se escolher
outro ponto: caso 1 ou 2.
Se mh md e md mv e
a) se 0 o ponto escolhido o A;
Programa Especial de Treinamento / PET/AGRO Pgina 32
- Apostila de Computao Grfica (Incompleta)-
b) se > 0 o ponto escolhido o B;
2) caso (i < 0) - O ponto B est fora da circunferncia (caso 3 ou 4)
a) se 0 o ponto escolhido o B;
b) se > 0 o ponto escolhido o C;
Programa Especial de Treinamento / PET/AGRO Pgina 33
- Apostila de Computao Grfica (Incompleta)-
4. PREENCHIMENTO DE REAS
Terminais de varredura tm como vantagem (sobre terminais vetoriais) a
capacidade de representao de reas preenchidas (cheias). H necessidade de um
algoritmo para preenchimento de reas do tipo polgono de circunferncias.
4.1. Algoritmo de Varredura
Princpio: o contorno do polgono j est desenhado na tela com uma determi-
nada cor, diferente daquela de fundo.
- necessita de um ponto interno deste polgono.
Descrio: A partir do ponto fornecido, muda a cor do pixel at encontrar um
pixel de cor diferente da cor de fundo, seguindo as linhas de varredura; (encontrar
uma aresta do polgono).
-Uma lista ligada armazena pontos que servem para continuar o algoritmo; tais
pontos fazem o papel de ponto inicial, na iterao seguinte.
Obs.: o algoritmo se presta preenchimento de qualquer rea fechada.
4.2.Algoritmo de Anlise Geomtrica
Baseado na descrio geomtrica (como, por exemplo, uma lista de vrtices).
Identifica os pontos externos do polgono e as intersees das arestas do polgono
com as linhas de varredura.
Programa Especial de Treinamento / PET/AGRO Pgina 34
- Apostila de Computao Grfica (Incompleta)-
1 passo: montar a tabela de lados:
LADO Y
min
Y
mx
X para
Y
min
1/m
1 0 10 80 -8,0
2 10 30 0 +2,0
3 30 50 40 -1,0
4 50 70 20 +2,0
5 30 70 110 -1,25
6 0 30 130 -0,67
7 0 30 130 -1,0
8 10 30 80 +0,67
Programa Especial de Treinamento / PET/AGRO Pgina 35
- Apostila de Computao Grfica (Incompleta)-
(Armazenamento do polgono - 8 lados)
2 passo: Interseo com a linha de varredura
Vamos excluir os lados que esto acima da linha de varredura ( y=20)
(Y
min
20) e os que esto abaixo da mesma (Y
mx


20). Assim a anlise ser das
arestas 2, 6, 7 e 8.
A interseo dada pela frmula:
x
1
m
Y - Y + X
varredura min Ymin
( )
(Equao da reta)
Observe: (aresta 7) x = -1.0 (20 - 0) + 130 = 110
3 passo: Ordenam-se os pontos e traa-se as linhas, tomando-as de 2 em 2.
Ordenamento de x, com valores crescentes:

y=20
(x=20) (x=116,6) (x=110)
(x=86,7)
(1) (2) (3) (4)
Programa Especial de Treinamento / PET/AGRO Pgina 36
- Apostila de Computao Grfica (Incompleta)-
O preenchimento comea para x par e termina para x impar.
Problema: linha de varredura (y = 30) encontra um vrtice
- A primeira interseo no ponto (40 , 30) 1 nico ponto para mudar o
estado de preenchimento.
- A interseo (100 , 30) no deve mudar este estado, pois, o preenchi-
mento deve continuar.
Soluo: (100,30) deve ser representado na lista de intersees por um nmero
par de pontos (dois ou mesmo nenhum), neste caso, os lados esto totalmente acima
ou abaixo do vrtice, as inclinaes tm sinais diferentes.
Programa Especial de Treinamento / PET/AGRO Pgina 37
- Apostila de Computao Grfica (Incompleta)-
4.3.Preenchimento De Circunferncia
Quando o problema uma circunferncia, o preenchimento simples:
calcula-se facilmente a interseo dela com a linha de varredura:
x (clculo) = R
2
- y
2
EXERCCIOS:
1) Preencher as seguintes reas
Programa Especial de Treinamento / PET/AGRO Pgina 38
- Apostila de Computao Grfica (Incompleta)-
2) Estenda o algoritmo, de maneira a cobrir as seguintes reas:
Programa Especial de Treinamento / PET/AGRO Pgina 39
- Apostila de Computao Grfica (Incompleta)-
5. TRANSFORMAES GEOMTRICAS
So (alteraes) operaes matemticas que permitem alterar uniforme-
mente o aspecto de um desenho j armazenado no computador. Tais transformaes
permitem alteraes uniformes de uma imagem definida sobre um sistema de coor-
denadas. No h comprometimento da estrutura do desenho mas do aspecto que o
mesmo assumir. (mudana de orientao / escala).
Observao: interessante notar que as operaes de transformao de
visualizao (WC/NDC) So combinaes de transformaes de escala (altera valo-
res das coordenadas de modo proporcional ) e de translao.
3 tipos fundamentais
de transformao :
ESCALA
TRANSLAO
ROTAO (ao redor da origem)
Programa Especial de Treinamento / PET/AGRO Pgina 40
- Apostila de Computao Grfica (Incompleta)-
5.1. Transformao De Escala
Multiplicao de todas as coordenadas que definem o desenho por fato-
res de escala no nulos.
BIDIMENSIONAL
Fator de escala horizontal - X
Fator de escala vertical - Y

'

'

x E x x
y E y y
=
=
ou

]
]
]

]
]
]

]
]
]
x
y
Ex
Ey
x
y
0
0
obs:
E >1 Ampliacao da imagem
0 E <1 reducao da imagem
E < 0 Espelhamento

<

'

Programa Especial de Treinamento / PET/AGRO Pgina 41


- Apostila de Computao Grfica (Incompleta)-
Obs: fatores Ex e Ey iguais semelhana com o original
II. Translao: movimentao da figura para outra posio no sistema de co-
ordenadas. Todos os pontos da imagem so deslocados de uma mesma distncia em
relao a posio anterior.
+
+

'

x x T x
y y T y
=
=

]
]
]

]
]
]
+

]
]
]
x
y
Tx
Ty
x
y
P (x, y) ; P(x, y) { P= T+P }
obs.: suponha uma linha constituda por um nmero muito grande de pontos,
este processo pode consumir muito tempo. A frente, definiremos translao com so-
mente pontos iniciais e finais de linha.
5.2. Rotao Em Torno Da Origem:
Movimentao de uma figura para uma outra posio, de forma que to-
dos os pontos da imagem mantenham a mesma distncia da origem que possuam
Programa Especial de Treinamento / PET/AGRO Pgina 42
- Apostila de Computao Grfica (Incompleta)-
antes da transformao. Rotao em torno de um ponto qualquer: transformaes de
translao e de rotao em torno da origem.
5.2.1. DEFINIES MATEMTICAS

+

'

x x
y y x
cos
cos sen
- y sen (I)
(II)


: ngulo tomado no sentido anti-horrio
em outro sentido :
cos( ) cos
sen( ) sen

'





Modificar equao I e II
Demonstrao:
L x y +
2 2
, cos =
x
L
; sen =
y
L
;
mas L a distncia de (x, y) origem tambm, temos:
L x y +

2 2
e cos ( + =
x
L
; sen ( + ) =
y
L

Programa Especial de Treinamento / PET/AGRO Pgina 43
- Apostila de Computao Grfica (Incompleta)-
como
cos( ) cos cos sen sen
sen( ) sen cos sen cos
a b a b a b
a b a b b a
+
+ +

'

, temos:

'

x
L
y
L
cos cos sen sen
sen cos sen cos




+
x L L
y L L
cos cos sen sen
sen cos sen cos


5.3. Coordenadas Homogneas e Matriz De Transformao
Podemos facilitar o cmputo de valores e transformar com uso de matrizes
para rotao, escala e translao.
+


P T P Translacao
P =S P Escala
P =R P Rotacao
Se os pontos so tratados com coordenadas homogneas, todos as trans-
formaes podem ser tratadas com multiplicaes. Em coordenadas homogneas, um
ponto tratado com um vetor de 3 valores (tripla) (x, y, w). O ponto transformado
representado por (x, y, w). W colocado para dar consistncia nos clculos.
A. Matriz de Escala
Programa Especial de Treinamento / PET/AGRO Pgina 44
- Apostila de Computao Grfica (Incompleta)-
E
Ex
Ey

]
]
]
]
]
0 0
0 0
0 0 1
[ ] [ ] [ ] [ ]

]
]
]
]
]
x y w w 3 2 1
2 0 0
0 2 0
0 0 1
6 4 x y w
Programa Especial de Treinamento / PET/AGRO Pgina 45
- Apostila de Computao Grfica (Incompleta)-
B. Matriz de Translao: no caso P= TP
inverter

]
]
]
]
]

]
]
]
]
]

]
]
]
]
]
x
y
Tx
Ty
x
y
1
1 0
0 1
0 0 1 1
ou [ ] [ ]

]
]
]
]
]
x y
Tx Ty
x y 1
1 0 0
0 1 0
1
1
Exemplo:
[ ] [ ]

]
]
]
]
]
x y w 3 4 1
1 0 0
0 1 0
2 0 1


[ ] [ ]
x y w
ignorado

1 4 1
C) MATRIZ DE ROTAO

+

'

x x y
y y x
cos sen
cos sen



matriz de rotacao =
cos sen
= R


0
0
0 0 1

]
]
]
]
]
sen cos
[ ] [ ]
x y w x y w R ou no caso: P= R() . P
Programa Especial de Treinamento / PET/AGRO Pgina 46
- Apostila de Computao Grfica (Incompleta)-
R =
cos -sen



0
0
0 0 1
sen cos

]
]
]
]
]
5.4. Combinao Das Transformaes
Combinao de vrias transformaes espelhamento
Facilidade: uso de matrizes de transformao
Supondo:
( , ) ( , ) ( , ) x y x y x y
transf. com uso de M
1
transf. com uso de M
2

1 1 2 2
existe M
3
que chega direto (x
2
,
y2
)
Existe a matriz que faz diretamente a converso e tal matriz dada por m1.m2.
demonstrao:
[ ] [ ] ( )
[ ] [ ] ( )
x y x y m
x y x y m
1 1 1
2 2 2 1 2
1 1 1
1 1 2

.
.
(2) em (1) :
[ ] [ ] ( )
x y x y m m
2 2 1 2
1 1 , . , pela propriedade associativa :
[ ]
[ ]
x y x y m
2 2 3
1 1 .
Obs. : O produto de matrizes no comutativo:
Programa Especial de Treinamento / PET/AGRO Pgina 47
- Apostila de Computao Grfica (Incompleta)-
m
1
.m
2
m
2
.m
1
Assim , a ordem na qual as transformaes so aplicadas
influi no resultado final. A vantagem do uso de uma nica matriz um ganho de efi-
cincia.
Considerando, por exemplo, a rotao de um objeto sobre um ponto
qualquer P
1
. Transformamos este processo em 3 outros:
- transladamos de P
1
para a origem;
- rotacionamos;
- transladamos da origem para P
1
.
A transformao seria dada por
[ ] [ ]
x y x y T
T 1 1
1 1 .
1 0 0
0 1 0
1
0
0
0 0 1
1 0 0
0 1 0
1
1 1 1 1

]
]
]
]
]

]
]
]
]
]

]
]
]
]
]

x y x y
T
T
.
cos sen
sen cos .


( ) ( )
T
x y y x
T

+

]
]
]
]
]
cos sen
sen cos
cos .sen cos sen



0
0
1 1 1
1 1 1 1
Obs. : A composio das transformaes pela matriz de multiplicao ilustra a
facilidade proporcionada pelo uso de coordenadas homogneas.
Caso 2: Multiplicao por escala, seguida de translao
Programa Especial de Treinamento / PET/AGRO Pgina 48
- Apostila de Computao Grfica (Incompleta)-
1 0 0
0 1 0
1
0 0
0 0
0 0 1
1 0 0
0 1 0
1
1 1 1 1

]
]
]
]
]

]
]
]
]
]

]
]
]
]
]

x y
Ex
Ey
x y
T
Tz
. .
( ) ( )
T
Ex
Ey
x Ex y Ey
Tz

]
]
]
]
]
0 0
0 0
1 1 1
1 1
Seqncia:
- translada-se o ponto de referncia para a origem;
- promove-se a rotao em torno da origem;
- translada-se da origem para o ponto de referncia.
5.5. Espelhamento:
Produo de imagens simtricas com uso de transformaes de escala
com fatores negativos
c/ relao a x => Ex = 1 ; Ey = -1
Espelhamento c/ relao a y => Ex = -1 ; Ey = 1
c/ relao a x e y => Ex = -1 ; Ey = -1
5.6. Espelhamento em relao a uma reta qualquer:
a) Traslada-se a figura de modo que um dos pontos da reta de simetria
v para a origem;
Programa Especial de Treinamento / PET/AGRO Pgina 49
- Apostila de Computao Grfica (Incompleta)-
b) Rotaciona-se a figura at que a reta de simetria se torne paralela um
dos eixos do sistema de coordenadas;
c) Espelha-se a figura em relao ao eixo que, neste instante, coincide
com a reta de simetria. Caso, seja o eixo Y, usa-se Ex = -1; Ey - 1;
d) Rotaciona-se a figura em um ngulo oposto ao aplicado em b -de
forma a retornar a reta de simetria sua posio original- ;
e) Transladar a figura com constantes de deslocamento opostas s apli-
cadas em a , de modo a voltar a reta de simetria sua posio .
5.7. Consideraes sobre eficincia:
Uma combinao de matrizes de rotao (R), escala (S) e transformao
(T) pode produzir uma matriz de forma:
r r
r r
t t
x y
11 12
21 22
0
0
1

]
]
]
]
]
sendo, a obteno de (x
1
y
1
) da por:
[ ] [ ]
x y z x y
a b
d e
c f
1 1
1
0
0
1

]
]
]
]
]
.
chegando a
x ax by c
y dx ey f
1
1
+ +
+ +

'

, ( 9 multiplicaes e 6 adies )
Podemos exigir menos operaes aritmticas com uso de
[ ] [ ]
( )
x y x y
a d
b e
c f
X
, ,
.

]
]
]
]
]
1
3 2
=> (menos operaes)
Programa Especial de Treinamento / PET/AGRO Pgina 50
- Apostila de Computao Grfica (Incompleta)-
5.8. TRANSFORMAES EM 3 DIMENSES:
A idia bsica consiste em trabalhar com algoritmos e estrutura de dados que
representem tridimensionalmente a imagem com converso de coordenadas tridimen-
sionais para projeo bidimensionais, no memento da representao de imagem.
Ponto => representado por 3 coordenadas (x,y,z) e por 4 coordenadas no
caso de coordenadas homogneas: Matrizes 4x4
Representao matricial : (W
x
, W
y

, W
z
, W) ; W 0 . Se W 1 => W divi-
dido nas 3 primeiras coordenadas homogneas para obter a coordenada cartesiana do
ponto (x,y,z) .
5.8.1. Escala:
multiplicao de cada uma das coordenadas pelo fator de escala correspon-
dente. Efeito: aproximao ou afastamento do ponto em relao origem do sistema,
proporcionalmente, em cada eixo, aos fatores de escala;
Matriz:
Ex
Ey
Ez
0 0 0
0 0 0
0 0 0
0 0 0 1

]
]
]
]
]
]
e, portanto:
[ ] [ ]
x y x y z
Ex
Ey
Ez
, ,
. 1 1
0 0 0
0 0 0
0 0 0
0 0 0 1

]
]
]
]
]
]
Programa Especial de Treinamento / PET/AGRO Pgina 51
- Apostila de Computao Grfica (Incompleta)-
5.8.2. Translao:
A seguir a matriz homognea representa a translao em 3 dimenses:
T
3
=
1 0 0 0
0 1 0 0
0 0 1 0
1 T T T
x y z

]
]
]
]
]
]
onde T
x
, T
y
, T
z
representam as constantes
de deslocamento em cada eixo.
[ ] [ ]
x y z w x y z w T
, , ,
.
3
5.8.3. Rotao:
Quando trabalha-se com 3 dimenses deve-se definir qual o plano sobre o qual
a rotao deve ser realizada, ou seja, qual o eixo em torno de qual se proceder a ro-
tao.
Se: plano de rotao por eixo x e y, seja eixo de rotao z:
R
z
=
cos sen
sen cos


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

]
]
]
]
]
]
x
z
A rotao em torno de eixo x seria: y
R
x
=
1 0 0 0
0 0
0 0
0 0 0 1
cos sen
sen cos

]
]
]
]
]
]
x
Programa Especial de Treinamento / PET/AGRO Pgina 52
- Apostila de Computao Grfica (Incompleta)-
z
E, finalmente, em torno do eixo y seria: y
Ry =
cos sen
sen cos


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

]
]
]
]
]
]
x
z
5.8.4. Rotao em torno de um eixo arbitrrio:
Sejam (a, b, c) e (a, b, c) os pontos que determinam os eixos:
PASSOS:
1) Translao de forma a fazer o eixo de rotao passar pela origem (T
x
= -a;
Ty = -b; T
z
= -c);
2) Rotao em torno de eixo x, de forma que o eixo de rotao fique no plano
xz; (angulo );
3) Nova rotao agora em torno de eixo y (angulo ) at que o eixo de rotao
coincida com o eixo z;
4) Rotao em torno de eixo z com o ngulo desejado ( ) ;
5) Rotao de - em torno do eixo y;
Programa Especial de Treinamento / PET/AGRO Pgina 53
- Apostila de Computao Grfica (Incompleta)-
6) Rotao de - em torno do eixo x;
7) Translao com (T
x
= a; T
y
= b; Tz = c). inversa
Resumo
Novo_Ponto = Ponto_velho. T R R R R R T
x y y x
. . . . . .

1 1 1
Exerccio para implementar:
Apresente as transformaes simples aplicadas um tringulo qualquer
definido nos eixos x, y, z.
Apresente um esquema no qual pelo menos 2 transformaes foram
aplicadas uma figura qualquer.
Programa Especial de Treinamento / PET/AGRO Pgina 54
- Apostila de Computao Grfica (Incompleta)-
6. ALGORITMO DE RECORTE (CLIPPING):
Todo recorte deve ser efetuado no
sistema de coordenadas de usurio
JANELA VIEWPORT
fig. 1: Recorte de pontos, linhas, caracteres
6.1. Pontos:
Processo rpido e muito simples. O ponto que deve ser apresentado na vi-
ewport aquele para o qual as inequaes abaixo so satisfeitas.
Programa Especial de Treinamento / PET/AGRO Pgina 55
- Apostila de Computao Grfica (Incompleta)-
x x x e y y y
min max min max

O ponto que no satisfaz as quatro inequaes acima, ou uma delas qualquer
no deve ser apresentado.
6.2. Linhas:
Exige mais clculos e testes do que o processo anterior. Embora seja necess-
rio considerar apenas as partes finais da linha e no uma infinita quantidade de pon-
tos.
No desenho acima a linha EF, Cujos pontos finais se encontram dentro dos li-
mites da janela aceita trivialmente.
Linhas GH e IJ => dever ser cortadas.
6.2.1. 1 soluo:
Checagem por meio da equao paramtrica envolvendo os limites da janela e
a prpria linha.
Consiste num processo de grande quantidade de clculos e teste e no
muito eficiente. Num display tpico, centenas ou milhares de linhas de linha podem
ser encontradas.
Um algoritmo eficiente deve promover alguns testes iniciais na linha de
forma a determinar se clculos de interseo so realmente necessrios . Inicialmen-
te, o par de pontos finais pode ser checado para observar se ambos pertencem ja-
nela, fazendo a linha ser aceita trivialmente. Ao mesmo tempo, a linha pode ser trivi-
almente rejeitada, por testes simples tambm, como no caso da linha CD, que apre-
Programa Especial de Treinamento / PET/AGRO Pgina 56
- Apostila de Computao Grfica (Incompleta)-
senta y>y
max
(da janela). Podem ser por exemplo, rejeitados pontos que esto abaixo
de y
min
e esquerda de x
min
ou direita de x
max
.
6.2.2. Algoritmo de Cohen-Sutherland:
Projetado para identificar eficientemente que linhas podem ser trivial-
mente aceitas ou rejeitadas checando regies. Clculos de interseo so necessrios
apenas para linhas na qual os casos acima falharem.
Programa Especial de Treinamento / PET/AGRO Pgina 57
- Apostila de Computao Grfica (Incompleta)-
1 bit - o ponto est esquerda da janela - b0 - P(4)
2 bit - o ponto est direita da janela - b1 - P(3)
3 bit - o ponto est abaixo da janela - b2 - P(2)
4 bit - o ponto est acima da janela - b3 - P(1)
(b3 b2 b1 b0)
1 passo: Associar cdigos aos pontos finais usando a regra:
se x X P = 1; do contrario P = 0
se x X P = 1; do contrario P = 0
se y Y P = 1; do contrario P = 0
se y Y P = 1; do contrario P = 0
1 L code(4) code(4)
1 L code(3) code(3)
1 T code(1) code(1)
1 B code(2) code(2)
<
>

'

<
>

'

Programa Especial de Treinamento / PET/AGRO Pgina 58


- Apostila de Computao Grfica (Incompleta)-
2 verificar se totalmente visvel:
- Se os dois cdigos associados as duas extremidades do segmento de
reta forem zero a linha totalmente visvel.
soma
1
: = 0 ; soma
2
: = 0 ;
for i = 1 to 4
soma
1
: = soma
1
+ P1CODE (i)
soma
2
: = soma
2
+ P2CODE (i)
if soma
1
= 0

and soma
2
= 0 them
linha totalmente visvel
3 passo: verificar se a linha invisvel, se encontrando totalmente direita,
ou esquerda, ou acima ou abaixo.
Inter : = 0
for i = 1 to 4
Inter : = Inter + integer ((P1. CODE(i) + P2. CODE(i)) / 2)
If Inter <> 0 then linha invisvel
else next i
Ex:
linha KL P1 (0 0 1 0) ; P2(0 1 1 0) OK - linha invisivel
linha GH P1 (0 0 0 1) ; P2 (1 0 0 0) Falha
linha IJ P1 (1 0 0 1) ; P2 (1 0 0 0) OK - linha invisivel
1

'

4 passo: Verificar se um dos pontos est dentro da janela.


Soma
1
= 0 ou Soma
2
= 0
Programa Especial de Treinamento / PET/AGRO Pgina 59
- Apostila de Computao Grfica (Incompleta)-
Se estiver, basta tomar uma interseco
Xc Xc Xd
Xe Xf Xf
,
,


5 passo: A linha parcialmente visvel ou totalmente invisvel para o primei-
ro passo, devem ser calculadas as intersees.
Esquerda: X
L
, Y = M* (X
L
- X
1
) + Y
1
; M 0;
Direita: X
R
, Y = M* (X
R
- X
1
) + Y
1
; M 0;
Top: Y
T
, X = X
1
+ 1/M . (Y
T
- Y
1
); M 0;
Botton: Y
B
, X = X
1
+ 1/M . (Y
B
- Y
1
); M 0;
Exemplo:
Esquerda: X= -1 Y = 2/3. [ -1 - (-3/2)] + 1/6 = {Y
B
Y = Y
T
}
Direita: X= 1 Y = 2/3. [1 - (-3/2)] + 1/6 = 11/6 {FORA}
Top: Y= 1 X = -3/2 + 3/2. [ 1 - 1/6] = -1/4 {X
L
-1/4 X
R
}
Botton: Y= -1 X = -3/2 + 3/2. [ 1 - 1/6] = -13/4 {FORA}
Programa Especial de Treinamento / PET/AGRO Pgina 60
- Apostila de Computao Grfica (Incompleta)-
Exemplo: Prove a eficincia do algoritmo anterior para os casos A e B abaixo:
6.2.3. ALGORITMO DA SUBDIVISO DO PONTO MDIO
-MIDPOINT SUBDIVISION ALGORITHM-
O algoritmo anterior necessitava de clculo para obter a interseo da linha
com os limites da janela. O clculo direto pode ser evitado com utilizao de busca
binria, dividindo a linha em pontos mdios. Este algoritmo, que um caso particular
do anterior foi proposto por Sproull e Sutherland.
Sua implementao em software mais lenta que o processo de utiliza-
o do clculo direto da interseo da linha com as bordas da janela. No entanto,
sua implementao em hardware mais rpida por podermos utilizar arquitetura pa-
ralela e diviso e multiplicao por 2 muito rpido.
P1 (-3/2 ,
1/6)
P2 (1/2 , 3/2)
P
1
(-1 , 1/2)
Programa Especial de Treinamento / PET/AGRO Pgina 61
- Apostila de Computao Grfica (Incompleta)-
Diviso por 2, com bits:
n 6 = 0110 deslocando 1 bit para a direita, temos o n dividido por 2
0011 ( em decimal = 3)
Novamente, um teste inicial efetuado para detectar linhas trivialmente
invisveis ou normalmente visveis. Linhas para as quais o teste inicial falha so sub-
divididas em 2 partes iguais.
X =
X + X
2
; Y =
Y + Y
2
m
2
m
2 1 1
O teste aplicado em cada uma das metades at que a interseo com as
bordas da janela obtida ou o comprimento da parte decorrente da subdiviso infi-
nitesimal. A visibilidade do ponto ento determinada.
(busca logartmica)
ILUSTRAO DA TCNICA
Seja a janela abaixo e as linhas conforme esboadas:
Programa Especial de Treinamento / PET/AGRO Pgina 62
- Apostila de Computao Grfica (Incompleta)-
Linha f: P1-1000; P2-0010 necessrio checar
Subdiviso P
m1
-1010 P2-0010 trivialmente rejeitado
Subdiviso P
m1
- 1010 P1-1000 trivialmente rejeitado
Subdivises sucessivas levam a rejeitar completamente a linha
Linha c: P1 (0001) P2 (0100) necessrio checar ponto mdio P
m1
(0001)
mesmo resultado para ambos os lados
* Analisando P
m1
P2 inicialmente:
- dividimos em P
m2

P
totalmente visivel
P (0000)
m1
m2
( ) 0000

'

P
parcialmente visivel
P
m2
2
( )
( )
0000
0100

'

Traa-se P
m1
P
m2
; continuamos a diviso de P
m2
P
m2
Por divises sucessivas, segmentos menores podero ser traados e a
interseo com a janela obtida.
O segmento P
m1
P
1
ento analisados da mesma forma. O problema de
traar pequenos segmentos a ineficincia. O ideal obter os dois pontos e traar a
linha que est entre eles (dentro da janela, claro).
6.3. Recorte de polgonos:
Programa Especial de Treinamento / PET/AGRO Pgina 63
- Apostila de Computao Grfica (Incompleta)-
Em algumas aplicaes, h necessidade de promover o recorte de pol-
gonos, cujos vrtices esto armazenados numa estrutura de dados qualquer. Para se-
rem exibidos, os polgonos devem primeiro passar por uma operao de transforma-
o de visualizao e depois por um processo de recorte at serem convertidos nas
coordenadas do equipamento. O algoritmo que recorta polgonos deve prever dife-
rentes casos, tais como:
6.3.1. Algoritmos de Sutherland Hodgman
Estratgia de soluo de uma srie de problemas simples e idnticos que
resolvem o problema quando combinados:
Soluo: Recortar uma polgono atravs do recorte de suas laterais (reas que
tocam os limites da janela)
Sero feitos 4 recortes:
Polgono cncavo recorta-
do em 2
polgonos separados e dis-
tintos.
Programa Especial de Treinamento / PET/AGRO Pgina 64
- Apostila de Computao Grfica (Incompleta)-
Com o polgono de lados definidos pelos vrtices: U
1
, U
2
, U
3
, ... U
n
para cada lado observa-se a relao entre vrtices sucessivos e as janelas (limites)
lados definidos pelos vrtices da lista de sadas sero apresentados na tela. Ca-
sos possveis:
CASO 1: dois vrtices adicionado lista de sadas (p, no caso)
CASO 2: o ponto i de interseo tratado como um vrtice de sada (a ser
traado)
CASO 3: os dois vrtices so descartados.
CASO 4: os dois pontos i e p so colocados na lista de vrtices de sada.
Figura: Recorte de polgo-
no,
lado a lado:
Programa Especial de Treinamento / PET/AGRO Pgina 65
- Apostila de Computao Grfica (Incompleta)-
Algoritmo destinado a obter as intersees
O primeiro ponto no colocado na lista de sadas (s, da fig. 1, anterior), j que o
mesmo o vrtice inicial e j se encontra na mesma, pois o processo seqencial.
para linhas do polgono totalmente invisvel, nenhum ponto adicionado lista de
sadas (caso 3).
para casos 2 e 4, necessrio calcular as intersees
para um dado vrtice, se necessrio calcular se o mesmo est dentro ou fora de
uma janela, temos uma funo que aplica um teste baseado em produto vetorial,
como:
P
1
. P
2
X P
1
. P
3
= X
P
1
. P
2
X P
1
. P
4
= .
Faz-se o produto vetorial de P
1
. P
2
X P
1
. P
3
, caso o mesmo resultado
em vetor entrando (mdulo negativo) o ponto est do lado de dentro da janela, se o
mesmo for positivo, o ponto est do lado de fora da janela.
O mdulo do produto vetorial de dois vetores V(V
x
, V
y
) e W (W
x
, W
y
)
um vetor cuja magnitude dada por Vx W
y
- V
y
W
x
. Se este n for positivo ponto
fora. Se este n for negativo ponto dentro.
Programa Especial de Treinamento / PET/AGRO Pgina 66
- Apostila de Computao Grfica (Incompleta)-
6.3.2 Algoritmo de Weiter-Atherton
O algoritmo anteriormente discutido requer uma regio de recorte con-
vexa. Em contexto de tratamento de linhas escondidas, muitas regies cncavas apa-
recem.
O mtodo proposto por W.A. mais complexo e mais poderoso que o
mtodo anterior. Ele capaz de recortar um polgono cncavo com buracos interi-
ores definindo um outro polgono cncavo.
Polgono a ser recortado polgono sujeito
Polgono que definido na regio recortada polgono a ser recortado
Regio de recorte : polgono recorte
O algoritmo descreve ambos, polgono sujeito e polgono recorte por uma lista
circular de vrtices e recorta o polgono sujeito por traar em voltas das laterais do
polgono sujeito na direo horria at que a interseo com o polgono recorte seja
encontrada. Se a fronteira entre no polgono recorte o algoritmo procede ao longo
dos limites do polgono sujeito. Se a fronteira deixa o polgono recorte, o algoritmo
faz um retorno direita e segue o polgono recorte no sentido horrio at encontrar a
interseo de onde partiu.
7. PROJEES
Definio: enxergamos em 2 dimenses no h muita necessidade de trata-
mento em 3 dimenses. Logo, modelos tridimensionais devem ser convertidos em
imagens bidemensionais, esta a finalidade do algoritmo de projeo. Projeo
converso genrica de entidades de uma dada dimenso para outra de menor ordem.
Programa Especial de Treinamento / PET/AGRO Pgina 67
- Apostila de Computao Grfica (Incompleta)-
Nosso estudo. Projeo: 3D2D (interesse nas diversas aplicaes compu-
grficas)
7.1. INTRODUO: TIPOS DE PROJEO (3D2D)
O que determina a projeo so 2 elementos:
* plano de projeo quadro
* centro de projeo ponto de vista (c)
H diversas tcnicas para projetar 3D2D:
projeo paralela; casos particulares
projeo axionomtrica; do espelhamento
projeo perspectiva; (+ interesse)
A projeo de um corpo fica definida pelo conjunto de pontos do quadro
obtidos da sua interseo com as linhas visuais - projetoras - que saem de o e atin-
gem c.
claro que o tamanho e a forma da figura projetada dependem da forma
de posicionamento do objeto em relao ao plano de projeo e ao centro. Observe
que a projetora sempre uma linha reta (logo, so projees geomtricas) como o
quadro um plano, logo, so projees planas.
Programa Especial de Treinamento / PET/AGRO Pgina 68
- Apostila de Computao Grfica (Incompleta)-
Classificao em relao ao centro de projeo
a) Projeo Cnica-perspectiva: o centro de projeo um ponto prprio, em
coordenadas finitas no sistema tridimensional. Esta projeo deforma a figura, dimi-
nuindo os objetos mais distantes e distorcendo os ngulos.
b) Projeo cilndricas-paralela: tem um ponto imprprio como centro de
projeo - isto ; as linhas visuais encontram-se no infinito. Mantm a proporciona-
lidade da figura.
7.2. Transformaes de projeo :
A projeo de um objeto pode ser formulada como uma transformao
como as vistas anteriormente. Desta forma, pode ser representada por uma matriz
4x4 que, aplicada um ponto do espao obtenha um ponto do plano.
Consideraes para obter as matrizes de transformao:
O objeto a ser projetado deve estar descrito em relao a um sistema de coordena-
das tal que as direes principais do mesmo coincidam com os eixos do sistema;
Caso no seja possvel definir os eixos principais de maneira clara,
usa-se um paraleleppedo envoltrio.
O plano de projeo um plano vertical, colocado perpendicularmente ao eixo z
do sistema de coordenadas do objeto;
O objeto est modelado por um conjunto de pontos convenientemente.
Programa Especial de Treinamento / PET/AGRO Pgina 69
- Apostila de Computao Grfica (Incompleta)-
OBS.: havendo mais de um objeto em cena necessrio uma converso entre
os sistemas de coordenadas do objeto e da cena. Os pontos de cada objeto devem ser
convertidos para o sistema global por uma transformao de mudana de base, antes
de se efetuar as transformaes de projeo:
7.3. PROJEES CNICAS
i) do ponto: basta lig-lo ao centro de projeo e obter a interseo da reta
com o plano de projeo.
ii) da reta: idem ao anterior para dois pontos da reta
Programa Especial de Treinamento / PET/AGRO Pgina 70
- Apostila de Computao Grfica (Incompleta)-
7.3.1. Clculo da transformao de perspectiva:
Por semelhana de tringulos, podemos encontrar:
Y
d
=
Y
Z
Y
Y d
Z
Y
Z
d
X
Z
X
p
,
p
R
p
,
p
R
p
R
p
p
p
,
;
.
.
,


X
d
X d
Z
X
Z
d
p p
p
p
p
Destas relaes obtm-se a matriz de transformao da perspectiva cnica:
Obs: Se o centro de projeo for (0,0,d)
teramos:
P
con
=
1 0 0 0
0 1 0 0
0 0 1
0 0 0
X =
X
Z + d
d
; Y
1
d
,
0

]
]
]
]
]
]

+
Y
Z d
d
Assim
[ ]
Xp Yp Zp 1 .
1 0 0 0
0 1 0 0
0 0 1
0 0 0
1
d
0

]
]
]
]
]
]


[ ]
Xp Yp Zp Zp

Yp
Zp / d
d 1
d
Xp
Zp d /

]
]
]
Programa Especial de Treinamento / PET/AGRO Pgina 71
- Apostila de Computao Grfica (Incompleta)-
Exemplo: Seja o objeto definido pelas tabelas abaixo: e plano de projeo
Z=Z0, simule a projeo do mesmo na tela de um computador:
lado (1, P1, P2) lado (6, P2, P4)
lado (2, P1, P3) lado (7, P3, P5)
lado (3, P1, P4) lado (8, P4, P5)
lado (4, P1, P5)
lado (5, P2, P3)
PO
NTO
1
0 0 0
2
0 0 0
3
0 0 5
4
0 0 0
5
0 0 0
Programa Especial de Treinamento / PET/AGRO Pgina 72
- Apostila de Computao Grfica (Incompleta)-
Poderamos ter perspectivas definitivas sobre 2 e 3 pontos de projeo.
Dadas por:
Pontos de projecao
1 0 0
1 0
0 0 0 0
0 0 0 0
projecao
x = r

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

1
r
1
1
1
r
1
1
r
1
1
3
x r
y r
Pontos de y r
z r
r
r

'

]
]
]
]
]
]
]

'

]
]
]
]
]
]
]
1
2
2
3
0
0
2
2
Anomalias da perspectiva
Perspectiva gera anomalias que aumentam o realismo em termos de
profundidade, mas alteram as medidas e formas reais.
1. Encurtamento perspectivo: aumentando a distncia do objeto ao centro de proje-
o menor parece ser;
2. Pontos de fuga: as projees so categorizadas pelo nmero de pontos de fuga
principais (n de eixos que o plano de projeo corta). Se a projeo com 1 ponto
de fuga principal ento o plano de projeo corta o eixo z e linhas paralelas aos ei-
xos x e y no convergem.
3. Confuso visual: objetos situados atrs do centro de projeo so projetados no
plano de projeo de cima para baixo e de trs para frente, conforme:

Programa Especial de Treinamento / PET/AGRO Pgina 73
- Apostila de Computao Grfica (Incompleta)-
4. Distoro topolgica: Fenmeno pela qual um segmento de reta que une um
ponto situado frente do observador com um ponto situado sua retaguarda efeti-
vamente projetado segundo uma linha quebrada de comprimento infinito. A causa o
fato de que pontos do plano que contem o ponto central da projeo so projetados
no infinito pela transformao perspectiva.
OBS: IMPORTANTE: H possibilidade da existncia de um, dois ou trs
pontos de fuga principais, se o plano de projeo perpendicular (e a normal ao pla-
no, paralela) e um, dois ou trs eixos.
7.3.2. Projees Cilndricas (ou paralelas)
H 2 tipos de projees paralelas, baseadas na relao entre a direo de
projeo e a normal ao plano de projeo:
i) Proj. Ortogonal: a direo de projeo a mesma direo da normal ao plano
de projeo;
ii) Proj. Oblqua: as direes citadas acima no so as mesmas.
7.3.3.PROJEES OBLQUAS
Fornecem sensao espacial e permitem medidas
Neste caso, a direo de projeo no forma 90 com o plano de projeo, mas o
plano de projeo paralelo a um dos 3 eixos.
Geralmente: faz-se uma face paralela ao plano de projeo, normalmente a que
contm mais detalhes. Esta face projeta-se em sua verdadeira grandeza, de forma a
evitar a deformao das formas circulares desta face.
Programa Especial de Treinamento / PET/AGRO Pgina 74
- Apostila de Computao Grfica (Incompleta)-
DEFINIES MATEMTICAS:
Seja o cubo unitrio ao lado
que dever ser projetado no plano xy.
A matriz para projeo oblqua pode
ser escrita em funo de x e l.
Note que (0, 0, 1) pode ser proje-
tado em xy como:
( )
( )
l.cos , l.sin
levando o outro ponto no espaco dado por
P l.sin ,
,


,
.cos , l
Como a linha projetora, que no perpendicular ao plano de projeo,
deve passar por P e P e as demais sero paralelas ela, chegamos :
Considerando um ponto genrico (x, y, z): sua projeo dada por (x
p
,
y
p
, ). Com estes 2 pontos e considerando o vetor PP, que define a reta projetora,
temos, como equao simtrica da reta:
Programa Especial de Treinamento / PET/AGRO Pgina 75
- Apostila de Computao Grfica (Incompleta)-
x x
l
y y
l sin
z
x x
l
z x z l
y z lsin
p p
p

+
+
.cos .
;
.cos
. cos
.

1
destas relacoes, temos
x
e y
p
p
e chegamos matriz da projeo oblquo:
Pobl.=
1 0 0 0
0 1 0 0
l.cos l.sin 0 0
0 0 0 1

]
]
]
]
]
]
Obs.:
se l = 1 e = 45 (= 45, tambm) => projeo cavaleira (cavalier)
se l = 1/2 e = 45 [(= arctg 2) (aprox: 63,4)] a projeo projeo dita gabi-
nete (cabinet)
Proj. cavaleira: a projeo de uma linha perpendicular ao plano de projeo
de mesmo comprimento que a linha em si.
Exemplos:
Programa Especial de Treinamento / PET/AGRO Pgina 76
- Apostila de Computao Grfica (Incompleta)-
Proj. cabinet: direo de projeo forma aprox. 63,4 com o plano de proje-
o.
1. Para um cabo de aresta de 8 cm, encontre a perspectiva cavaleira do mesmo, su-
pondo o mesmo com um dos vrtices na origem do sistema de coordenadas (x, y,
z)
2. Obtenha a projeo cabinet para o cubo acima.
8. TRATAMENTO DE LINHAS / SUPERFCIES ESCONDIDAS
8.1. INTRODUO: Profundidade da perspectiva
A operao de remoo de linhas ou superfcies escondidas requer uma
transformao perspectiva com propriedades especiais. necessrio avaliar a pro-
fundidade de cada ponto na vista perspectiva para tomar decises sobre que pontos /
superfcies da imagem devem ser omitidas na representao.
Programa Especial de Treinamento / PET/AGRO Pgina 77
- Apostila de Computao Grfica (Incompleta)-
Sistema 3D - x
s
, y
s
, z
s
{ x
s
e y
s
=> localizao da vista perspectiva do
ponto
{z
s
=> retm a informao de profundidade
Se para apresentar em 2D, despreza-se z
s
e utilizam-se as outras 2 coor-
denadas sem modificao. Esta representao corresponde uma projeo ortogonal
do sistema de coordenadas da tela.
Iluses de profundidade
A iluso do cubo-Necker:
Programa Especial de Treinamento / PET/AGRO Pgina 78
- Apostila de Computao Grfica (Incompleta)-
8.2. Classificao de Algoritmos
Os algoritmos para remoo de linhas / superfcies escondidas so clas-
sificados de acordo com o tratamento utilizado:
object-space: diretamente com as definies do objeto;
imagem-space: com suas imagens projetadas.
Mtodo object-space: compara objetos e partes dos objetos entre si, para defi-
nir as partes que deveriam ser rotulados como invisveis. Clculos geomtricos com
maior preciso mais usados no tratamento de linhas escondidas.
Mtodo image-space: a visibilidade decidida ponto a ponto em cada posio
do pixel sobre o plano de projeo mais usados no tratamento de superfcies escon-
didas.
3. Introduo:
Dado um objeto 3D e uma especificao de visualizao definindo o
tipo de projeo, ns podemos definir que limites e superfcies do objeto so visveis
para o centro de projeo (p/ proj. perspectiva) ou ao longo da direo de projeo
(p/ proj. paralela).
Vamos observar que a idia fundamental simples, se a implementao
mais simples, ento requer uma grande demanda de tempo computacional, outros
algoritmos mais complexos podem ser estruturados.
2 propostas so elaboradas para tal soluo.
Programa Especial de Treinamento / PET/AGRO Pgina 79
- Apostila de Computao Grfica (Incompleta)-
IMPORTANTE: os algoritmos devem fazer cada passo o mais eficiente poss-
vel.
8.3. ALGORITMO DEPTH-BUFFER:
8.3.1. INTRODUO:
Trata-se de um algoritmo dos mais simples, sendo o mais simples da
classe dos mtodos image-space. Este algoritmo algumas vezes chamado de z-
buffer. Para cada ponto da tela grfica, ns guardamos um registro da profundidade
do objeto. Adicionalmente, armazenada a intensidade que dever ser usada para
apresentar o objeto. O algoritmo requer 2 arrays, uma para intensidade e uma para
profundidade, cada uma das quais indexada pelas coordenadas do pixel (x,y).
8.3.2. ALGORITMO:
1. Para todo pixel da tela, faa depth [x,y]=1.0 e intensidade [x,y]= valor de fundo da
tela (background);
2. Para cada polgono, encontre os pixel (x,y) que esto associados aos limites do
polgono quando projetados na tela.
Para cada um destes pixel:
a. Calcular o valor da profundidade z do polgono para posio
(x,y);
b. Se z < depth [x,y] => coloque z (x,y) no z-buffer ou melhor,
faa depth [x,y] = z e faa intensidade (x,y) igual intensidade do po-
lgono, caso contrrio:
Programa Especial de Treinamento / PET/AGRO Pgina 80
- Apostila de Computao Grfica (Incompleta)-
se z > depth [x,y] => no tome nenhuma ao
Depois de processados todos os polgonos, a array intensidade conter
a soluo
Observe a figura abaixo:
Caso z < depth (x,y) o polgono est mais prximo para o observador que ou-
tros j gravados para este pixel.
Se z>depth[x,y], o polgono j gravado para (x,y) est situado mais perto
do observador que o novo polgono e nenhuma ao e requerida.
c) comentrios:
O algoritmo tem a desvantagem de requerer um grande espao para o z-
buffer [ou depth-buffer], mas, muito simples de ser implementado. A performance
do algoritmo tende a ser constante, o nmero de pixel coberto por cada polgono de-
cresce na medida em que o nmero de polgonos inserido no volume aumenta.
Um outro importante detalhe do algoritmo que ele usa o sistema de
coordenadas da tela. Antes do passo 1, todos os polgonos da cena so transformados
no sistema de coordenadas da tela, j descritos anteriormente.
Programa Especial de Treinamento / PET/AGRO Pgina 81
- Apostila de Computao Grfica (Incompleta)-
d) Clculo de z[x,y]
Pelo fato de haver um registro da equao do plano para cada polgono
no sistema de coordenadas da tela, para calcular z[x,y] basta resolver a equao do
plano:
Ax + By + Cz + D = 0
E o valor da varivel z dado por :

Z =
- D - Ax - By
(equ. do plano - 1)
C
e) Limitaes do mtodo:
O mtodo no muito utilizado na prtica por causa do enorme tamanho
das reas profundidade e intensidade (2 arrays ). Num equipamento de 500 x 500
pixels teramos 250 000 locaes para cada array.
Para reduo da rea acima, a imagem pode ser dividida em imagens
menores, por exemplo, no caso acima, dividiramos em 100 trechos, cada uma com
50x50 pixels. Camos para arrays com 2500 elementos, mas o tempo de execuo
cresce por que cada polgono processado vrias vezes.
8.4. ALGORITMOS DE CONEXO DE LINHAS DE VARREDURA
8.4.1. Introduo
Tais algoritmos resolvem o problema de linhas escondidas por meio de
uma linha de varredura por vez, processando linhas de varredura da parte superior
para inferior da tela. O algoritmo examina uma srie de janelas na tela, cada janela
uma linha de varredura alta e to larga quanto a (janela) tela. Novamente, sero re-
querida duas arrays: intensidade e profundidade.
Programa Especial de Treinamento / PET/AGRO Pgina 82
- Apostila de Computao Grfica (Incompleta)-
8.4.2. Algoritmo:
Para cada linha de varredura, faa :
1 - Para todo pixel da linha de varredura, faa depth[x,y]= 1,0 e intensida-
de[x,y]= valor de fundo da tela - background;
2 - Para cada polgono na cena, encontre todos os pixels na atual linha de var-
redura y que corta o polgono:
a - Calcule a profundidade z do polgono no (x,y)
b - se z <profundidade (x), faa depth[x] = z e intensidade [x] para a in-
tensidade correspondente ao polgono.
3 - Aps todos polgonos terem sido considerados, os valores contidos na array
intensidade representam a soluo.
Na figura abaixo, apresentada a projeo de 2 tringulos no plano x-y;
Linhas escondidas so apresentadas como detalhadas:
A tabela de dados, conforme visto anteriormente, desenvolvida e ar-
mazenada de forma a conduzir o processo de anlise das faces. Para a linha de varre-
dura y=, tal tabela contm somente AC e BC, nesta ordem. As faces devem ser pro-
cessadas da esquerda para a direita.
No caso da linha B a ordem AB, AC, FA e FE. A linha de varredu-
ra encontra 2 polgonos mas a varredura est dentro (in) somente em um polgono
por vez.
Programa Especial de Treinamento / PET/AGRO Pgina 83
- Apostila de Computao Grfica (Incompleta)-
No caso da linha de varredura y = , na tabela de polgonos o flag in-
lout que inicializado por falso colocado para verdadeiro. A linha de varredu-
ra prossegue encontrando a outra face, DE. Neste ponto, o flag para DEF torna-se
verdadeiro, mas a varredura est dentro de 2 polgonos. necessrio ento deci-
dir qual destes polgonos est mais prximo do observado. Esta determinao feita
com uso da equao do plano para ambos os polgonos para Z, y = e x dado pela
interseo de y = com a face DE. O valor de x est efetivamente na tabela de la-
dos. No nosso exemplo, DEF tem um Z menor e portanto visvel. Portanto, o
sombreamento para DEF usado para esconder a linha BC, tornando o flag para
ABC como falso, j que alimentao linha de varredura est dentro somente do pol-
gono DEF, obtendo agora encontro com a face FE.
8.5. Algoritmo de subdiviso de rea
8.5.1. Introduo:
A idia bsica deste algoritmo , utilizando-se de uma rea de estudo (ou
visualizao), decidir, conforme fizemos com recorte, se um (ou uma parte de um) ou
mais polgonos esto contidos na mesma rea. A rea pode ser particionada em reas
menores e a deciso lgica tomada por recurso aplicada cada uma das pequenas
reas. Com reas cada vez menores, menores e menores polgonos sobrepem-se em
cada rea.
H 4 casos possveis de relao entre reas de interesse e polgonos:
Programa Especial de Treinamento / PET/AGRO Pgina 84
- Apostila de Computao Grfica (Incompleta)-
obvio que polgonos disjuntos no so de interesse para o estudo; nos-
sos problemas devero ocorrer para os casos b, c, a acima.
Casos:
1. Todos polgonos disjuntos rea => valor do pixel = fundo de tela;
2. Somente 1 polgono contido / interceptado => soluo completar o restante da
rea para a cor do fundo;
3. H somente 1 polgono que transborda a rea => toda a rea colocada na cor do
polgono;
4. H mais de um polgono contido, interceptado ou que transborde e pelo menos um
deles transborda. promovido um teste para detectar se o que transborda esta a
frente dos demais, analisando a coordenada z de cada um dos planos.
obvio que os 3 primeiros casos acima so de soluo muito simples.
Nos casos da hiptese 4, onde mais de um polgono pertencem mesma rea, neces-
sitamos olhar a coordenada do plano na qual est contido e ver qual delas est mais
prxima do observador. Se, no entanto, os planos dos 2 polgonos se interceptam,
ser necessrio uma subdiviso para anlise posterior, conforme:
8.6.Algoritmos do tipo object-space
8.6.1. POLGONOS
Programa Especial de Treinamento / PET/AGRO Pgina 85
- Apostila de Computao Grfica (Incompleta)-
i) Equao do plano: baseado na equao do plano que contm as faces do
objetos ser exibido. Observe
Equao do plano: Ax + By + Cz + D = O, onde:
A = y + y y
z + z
C = x + x
retirado da equacao
1 2 3
1 2 3
1 2 3
( ) ( ) ( );
( ) ( ) ( );
( ) ( ) ( );
z z z z z z
B x x x x z x x
y y y y x y y
D
2 3 3 1 1 2
2 3 3 1 1 2
2 3 3 1 1 2
+
+
+

N= (A, B, C)
Aplicando a equao do plano para coordenadas do observador, temos:
A x By Cz
fora exibe
dentro esconde
fronteira
.
0 0 0
0
0
0
+ +
<
>

'

Programa Especial de Treinamento / PET/AGRO Pgina 86


- Apostila de Computao Grfica (Incompleta)-
8.6.2. Por produto escalar:
descrever as arestas de cada face no sentido anti-horrio para quem est fora do
objeto;
obtm o vetor u fazendo o produto vetorial das arestas;
u.v < 0 => sentidos opostos => exibe
u.v > 0 => sentidos iguais => esconde
Programa Especial de Treinamento / PET/AGRO Pgina 87
- Apostila de Computao Grfica (Incompleta)-
9. SOMBREAMENTO
Em seguida a remoo de sup/linhas escondida importante, no processo de
criao de imagens, sombrear as superfcies visveis.
9.1. Introduo:
Reflexo difusa e luz ambiente
Todas superfcies visveis promovem reflexo difusa da luz, espalhando
luz igualmente em todas as direes. para todas as superfcies, lei dos cosenos de
Lambert relata a quantidade de luz refletida em funo da luz incidente e da superf-
cie em questo.
A iluminao difusa (Id) dada por:
Id = Ip. Kd. cos
( )
0
2


onde: Ip = intensidade do ponto de luz incidente;
Programa Especial de Treinamento / PET/AGRO Pgina 88
- Apostila de Computao Grfica (Incompleta)-
Kd = coeficiente de reflexo difusa; (varia de 0 a 1)
= ngulo entre a direo L para o ponto de luz incidente e a normal
superfcie.
ou ainda, por produto vetorial:
Id = Ip. Kd.(L.N)
Considerando a luz ambiente, teramos uma nova equao:
Id = Ia. Ka + Ip. Kd. (L.N)
onde
Ia => intensidade de luz ambiente
Ka => quanto da luz ambiente refletida pela superfcie.
Obs.: A fonte de luz assumida convenientemente como sendo coincidente
com os olhos do observador, logo, no h sombras; logicamente, os raios de luz que
colidem com a superfcie sero todos paralelos.
Problema: 2 superfcies de mesma cor paralelas e uma mais prxima ao exa-
minados que a outra, como seus vetores normais so iguais, a iluminao nas super-
fcies ser a mesma e as mesmas sero indistinguveis.
Programa Especial de Treinamento / PET/AGRO Pgina 89
- Apostila de Computao Grfica (Incompleta)-
Soluo: A energia luminosa diminui com o inversos do quadrado da distncia
(d = distncia da luz (ida e volta)) chamado tal distncia de r, temos:
Id = Ia.Ka + Ip. Kp (L.N)/ R
2
Mas se R => problemas de simulao => hipoteticamente, os objetos seri-
am capazes de refletir apenas a luz ambiente. Para obteno de efeitos mais realsti-
cos, a equao acima pode ser melhorada para:
Id = Ia.Ka + I.p. Kd. (L.N)
(r+K)
onde K => constante e r => distncia do ponto de vista superfcie em ques
to.
Considerando superfcies coloridas, teramos equaes diferentes para
cores diferentes: Azul, vermelho e amarelo, com a tripla (Kdc, Kdm, Kdy) definindo
as constantes de reflexo para cada cor.
Para o amarelo, teramos Kdy = 1.0, Kdc = 0.0, Kdm = 0.0
fazendo o amarelo ser refletido e as demais serem absolvidas.
Para uma dada componente:
Id = Iac.Kac + I.pc. Kdc. (L.N) para a componente Azul (CYAN)
(r+K)
Programa Especial de Treinamento / PET/AGRO Pgina 90
- Apostila de Computao Grfica (Incompleta)-
9.2. REFLEXO ESPECULAR
Este tipo de reflexo ocorre em algumas superfcies brilhantes. Ex: ilu-
minao da superfcie de uma ma => brilho intenso causado por reflexo espe-
cular, fazendo, inclusive no perceber a real cor da ma, o vermelho, o resto da
ma visto por reflexo difusa.
Para uma superfcie que reflete perfeitamente a luz o ngulo de reflexo
igual para o ngulo de incidncia. Assim, somente o observador colocado nesta li-
nha ver reflexo especular. Ou seja, para reflexo especular, o ngulo deve ser
zero, assim, v e R coincidem. a intensidade da reflexo especular maior na direo
de R e diminui rapidamente na medida em que aumenta.
Modelo de Phong:
Intensidade da reflexo especular cos
n
, onde n identifica o tipo da
superfcie (funo da luz refletida)
Is = Il. w(i,) cos
n
.
w(i,) = curva de reflectncia
i => ngulo de incidncia
=> comprimento de onda
n grande => distribuio de luz da forma de metais
n pequeno => superfcies no metlicas
Programa Especial de Treinamento / PET/AGRO Pgina 91
- Apostila de Computao Grfica (Incompleta)-
* Funo de distribuio espacial para luz refletida. especularmente.
Reflexo especular direcional, depende do ngulo de incidncia da luz.
Incidncia perpendicular de luz pode causar apenas reflexo especular. Ex: para ma-
teriais no-metlicos a refletncia pode ser apenas 4%, para materiais metlicos pode
ser 80%.
Combinando resultados com o modelo anterior, temos o modelo de ilu-
minao dado por:
I = Ia.Ka + Ip. [Kd.cos + w(i. ,) cos
n
]
r+K
I = Ia.Ka + Ip. [Kd.cos + Ks. cos
n
]
r+K
ou ainda:
Ia.Ka + Ip. [Kd.(L.N) + Ks.(R.V)
n
]
r+K
O clculo de L.N pode ser dado por:
Programa Especial de Treinamento / PET/AGRO Pgina 92
- Apostila de Computao Grfica (Incompleta)-
L.N = n.L
|n|.|l|
9.3. CONSIDERAES
Se a fonte de luz est no infinito, L.N constante para um dado polgo-
no, enquanto o produto R.V varia ao longo do polgono. Para superfcies bicbicas,
ou para fonte de luz que no est no infinito, tanto L.N como R.V variam ao longo da
superfcie. Assim, tais produtos vetoriais devero ser calculados para cada ponto
numa linha de varredura.
O mtodo Torrance- Sparrow (adota tal modelo) um modelo baseado
na superfcie de reflexo, em contraste com o modelo emprico proposto por Phong
(cos
n
).
A superfcie assumida como uma coleo de faces microscpicas, cada
uma como um perfeito refletor. A orientao de cada faceta dada por funo de
distribuio de probabilidade Gausiana. A geometria de cada faceta e a direo da
luz determinam a intensidade e a direo da reflexo especular.
Programa Especial de Treinamento / PET/AGRO Pgina 93
- Apostila de Computao Grfica (Incompleta)-
a => totalmente exposta a luz;
b => escura;
c => parcialmente escura;
e => totalmente exposta a luz, mas alguns raios sofrem desvio na superfcie f
Blim adaptou o modelo Torrance-Sparrow para computao grfica,
dando detalhes matemticos e comparando com o modelo de Phong. Os dois mode-
los diferem consideravelmente no caso de ngulos de incidncia em torno de 70,
quando o modelo de Sparrow apresenta mais reflexo especular da luz.
Ref.: livro Foley - pag 580
9.4. SOMBREAMENTO DE MALHAS POLIGONAIS
* 3 mtodos para sombrear objetos definido por malhas poligonais:
i) sombreamento constante;
ii) sombreamento com interpolao da intensidade;
iii) sombreamento com interpolao do vetor normal. (aumento da dificuldade)
Em cada um deles, deve-se fazer a opo por um dos dois modelos de
iluminao proposto anteriormente.
9.4.1. Sombreamento constante:
uma superfcie curva seria representada por um conjunto de superfcies plana-
res que pode ser sombreada com intensidades constantes de iluminao em cada su-
perfcie, desde que os planos que subdividem a superfcie sejam suficientemente pe-
Programa Especial de Treinamento / PET/AGRO Pgina 94
- Apostila de Computao Grfica (Incompleta)-
quenos. Esta aproximao pode gerar como efeito, exibies razoavelmente boas em
muitos casos, especialmente se a curvatura muda gradualmente e a fonte de luz e o
observador esto longe da superfcie, decorre disto que algumas consideraes so
necessrias:
1. A fonte de luz est no infinito;
2. O observador tambm est no infinito;
3. O polgono que representa a atual superfcies que est sendo modelada, no uma
aproximao para uma superfcie curva.
Se qualquer uma das 2 consideraes iniciais verdadeira, ento a m-
dia L e V pode ser usada, talvez calculada no centro do polgono.
A considerao final de efeito mais substancial que as outras duas na
obteno da imagem resultante. O efeito que cada faceta do polgono visvel da su-
perfcie aproximada distinguvel.
Com este mtodo, a intensidade calculada num ponto interior de cada
polgono e a superfcie (e a face planar) sombreada com a intensidade calculada.
Se a orientao entre planos adjacentes muda abruptamente a diferena
entre as intensidades das superfcies podem produzir um efeito spero e irreal, sendo
um efeito evidentemente visvel => EFFECT MACH BAND
9.4.2. Interpolao da intensidade:
de forma a eliminar a descontinuidade da intensidade, prope-se o sombrea-
mento com interpolao da intensidade, ou, sombreamento de Gouraud.
Tal processo constitudo de 4 passos:
Programa Especial de Treinamento / PET/AGRO Pgina 95
- Apostila de Computao Grfica (Incompleta)-
a) calcula-se os vetores normais s superfcies;
b) as normais dos vrtices so calculadas, usando-se a mdia das normais de
todas as superfcies que compartilham o mesmo vrtice:
c) as intensidades dos vrtices so encontradas, usando o vetor normal do vr-
tice com um modelo de iluminao desejada;
d) cada polgono sombreado pela interpolao linear das intensidades dos
vrtices ao longo da linha de varredura, como mostra a figura abaixo. Para cada face,
ser armazenado a intensidade inicial e a mudana do valor de y ocasionar a mu-
dana de intensidade.
Ia I
y y
y y
I
y y
y y
Ib I
y y
y y
I
y y
y y
Ip I
x x
x x
I
x x
x x
v v
v v
a
b p
b a
b
p a
b a

1
2
1 2
2
1
1 2
1
3
1 3
3
1
1 3
Interpolao
Obs.: O resultado da aplicao do mtodo de Gouraud uma melhora sensvel
na sensao irreal passada pelo mtodo anterior, mas, ainda causa sensao de
mach band. livro ROGER pg. 323/324
Programa Especial de Treinamento / PET/AGRO Pgina 96
- Apostila de Computao Grfica (Incompleta)-
9.4.3.Interpolao do vetor normal / Phong:
O procedimento proposto por Phong soluciona muitos problemas do
sombreamento de Gouraud. Enquanto Gouraud interpola valores de intensidade ao
longo de uma linha de varredura, o processo de Phong interpola o vetor normal su-
perfcie ao longo da linha de varredura e ao longo das arestas. O modelo de ilumina-
o ento aplicado cada pixel, usando a normal interpolada para determinar a in-
tensidade. Com esta tcnica, reflexes especulares parecem mais reais, diminuindo
os problemas Mach Band e aumentado grandemente o custo computacional.
9.5. Tcnica do traado de raios (Ray Tracing)
Proposta que resolve os problemas das duas tcnicas anteriores, mas,
exige grande quantidade de clculos levando a inviabilidade no caso de mquinas
lentas. Seu resultado no entanto visvel na forma de imagens belssimas que so
obtidas com seus clculos.
vantagem: pode ser aplicado curvas e poliedros
Tcnica:
Projeta-se um raio virtual de luz que, partindo do ponto do observador
passa por um pixel na tela e pelo conjunto de objetos que esto sendo visualizados.
Programa Especial de Treinamento / PET/AGRO Pgina 97
- Apostila de Computao Grfica (Incompleta)-
- Devem ser computadas as intersees do raio com cada objeto que o
mesmo atravessa;
- Se o raio no intercepta nenhum, a cor do pixel ser a cor de fundo;
- Se mais de um objeto for interceptado, seleciona-se o mais prximo do
observador, este ser o ponto visvel e os demais sero invisveis ( resolve o proble-
ma de linhas escondidas ) neste ponto, calcula-se a intensidade refletida da superfcie
mais prxima do observador, empregando as frmulas j propostas, deste clculo
resultar o valor da tonalidade do pixel correspondente.
(repete-se o passo para cada pixel na tela)
Destaque: processo com bons resultados.
10. SOMBRAS
Tcnicas semelhantes remoo de linhas escondidas, s que algoritmos
de remoo de linhas escondidas determinam que superfcies devem ser vistas para
um dado ponto de vista, aqui, determinamos que superfcies podem ser vistas por
uma dada fonte de luz e para um ponto de vista, a mesma no sombreada. A mesma
lgica aplica-se diversas fontes de luz.
O sombreamento contribui sensivelmente para dar realismo cena por
aumentar a sensao de profundidade, sendo tambm importante nas simulaes.
Sombras : - sombra - (CG s usa esta)
- penumbra
Programa Especial de Treinamento / PET/AGRO Pgina 98
- Apostila de Computao Grfica (Incompleta)-
Fonte de luz no infinito: projeo ortogrfica usada para determinar as som-
bras;
Fonte de luz a uma distncia finita, mas fora do campo visual do observador:
usa-se a projeo perspectiva;
Fonte de luz a uma distncia finita, mas no campo visual do observador: o es-
pao deve ser dividido em setores e as sombras obtidas por setor, separadamente.
Programa Especial de Treinamento / PET/AGRO Pgina 99
- Apostila de Computao Grfica (Incompleta)-
11. FORMAS E MODELOS GEOMTRICOS
11.1. Introduo:
Modelao: descrio de objetos e de imagem de maneira permitir sua visu-
alizao.
Muitas aplicaes de CG envolvem a representao de objetos em 3D.
Em alguns casos, uma grande quantidade de triplas (x,y,z) so necessrias para des-
crever as superfcies do objeto em questo. Em alguns casos, no entanto, o objeto
pode ser definido por combinao de superfcies matemticas que, so suficiente-
mente simples, a ponto de poderem ser implementadas computacionalmente.
Formas simples para primitivas: pontos, segmentos de reta, linhas poli-
gonais, polgonos, poliedros.
Em alguns casos, uma coleo de linhas insuficiente para descrever os
objetos, j que linhas no definem superfcies e superfcies so necessrias para cl-
culos de superfcies escondidas, volumes etc...
Assim, formas geomtricas mais complexas so usadas na modelagem
de objetos, tais como: arcos de curvas, superfcies curvas, superfcies qudricas.
11.2. Formas Geomtricas Simples
Programa Especial de Treinamento / PET/AGRO Pgina 100
- Apostila de Computao Grfica (Incompleta)-
Pontos e segmentos de retas:
especificao dada por P
1
(x
1
,y
1
,z
1
) e P
2
(x
2
,y
2
,z
2
)
Linhas poligonais
cadeia de segmentos de reta adjacentes. especificada por uma seqncia de
ns-vrtices (P
0
,P
1
, ... , P
n
) que definem os segmentos de reta.
Polgonos : linha poligonal fechada.
arestas :
chama-se polgono plano ao polgono cujos vrtices pertencem a um mesmo
plano.
11.3. Malhas Poligonais
Uma malha poligonal uma coleo de vrtices, arestas e polgonos,
vrtices so unidos por arestas e polgonos constituem uma seqncia de vrtices e
arestas. Uma malha pode ser representada por diferentes maneiras, com vantagens e
desvantagens particulares.
So elas:
11.3.1. Lista explcita de vrtices
Programa Especial de Treinamento / PET/AGRO Pgina 101
- Apostila de Computao Grfica (Incompleta)-
{ V = P , P , P ... , P e os pontos P (x , y , z )
0 1 2 n i i i i
so os vrtices da malhas poligonal, armazenada na ordem em que seriam en-
contrados por uma travessia do modelo.
Obs.: representao til para polgonos isolados, mas ineficiente para uma
malha poligonal completa, j que diversos vrtices so partilhados mais de uma vez:
11.3.2. Lista de polgonos :
Cada vrtice armazenado uma nica vez na lista de vrtices v = (P
0
, ... ,
P
n
) e cada polgono definido por ponteiros ou ndices para uma lista de vrtices.
Obs.: de novo, quando da representao do objeto, arestas partilhadas so de-
senhadas diversas vezes.
Programa Especial de Treinamento / PET/AGRO Pgina 102
- Apostila de Computao Grfica (Incompleta)-
11.3.3. Lista explcita de arestas:
h uma lista de vrtices e cada vrtice armazenado uma nica vez e uma lista
de arestas, com cada aresta armazenada tambm uma nica vez. Um elemento da lista
d arestas aponta dois elementos da lista de vrtices.
Uma polgono ento definido por uma lista de ponteiros para lista de
arestas.
forma mais consistente, sendo mais fcil de ser checada, por conter mais in-
formaes.
Obs. finais:
As malhas poligonais so usadas em aplicaes de engenharia, por se-
rem fceis de construir, mas, para construo de modelos mais realistas exigem um
nmero muito elevado de polgonos para produzir iluso de curvatura.
11.4. SUPERFCIES CURVAS
Permitem nvel de modelagem mais elevado;
formas de modelagem
segmentos de superficies curvas
modelagem solida

'

maneiras de modelao
aditiva (uniao)
subtrativa (escultura)

'

11.4.1. Modelao de Curvas


dados n+1 pontos: P
0
(x
0
,y
0
) , ... , P
n
(x
n
,y
n
) pretende-se determinar a curva que
corresponde a formato definida por estes pontos.
Programa Especial de Treinamento / PET/AGRO Pgina 103
- Apostila de Computao Grfica (Incompleta)-
podemos querer que:
A curva passe pelos pontos (interpolao)
A curva se aproxime dos pontos: (aproximao)
A soluo destes problemas passa por definir mtodos de construo de
curvas a partir de segmentos de curvas, geralmente modelados como linhas poligo-
nais.
Na modelagem de uma curva f(x) usando segmentos de curvas, procura-
se representar a curva como uma som de segmentos *i(x), designados funes de
base.
Assim:
Obs.: escolhe-se convenientemente estas funes de base, geralmente associa-
das a funes polinomiais.
Polinmio de grau n:
Polinmios segmentados contnuos:
Q(x) um polinmio segmentado contnuo de grau n. definido como
um conjunto de K polinmios q
i
(x), cada um de grau n e (K+1) ns t
0
, t
1
, ... , t
k
de
modo que:
para t x t Q(x) = q e i = 0 ; ... ; k - 1
i i+1 i
( ) x
forando os polinmios a coincidirem por ns.
ex.:
Obs.: Polinmios de grau elevado no so muito teis para modelao de
curvas. (Preferncia: grau 3)
Programa Especial de Treinamento / PET/AGRO Pgina 104
- Apostila de Computao Grfica (Incompleta)-
11.4.2. Funes polinomiais de base
Descreve-se a seguir algumas funes polinomiais de base dados:
P
0
(x
0
, y
0
) , ... , P
n
(x
n
, y
n
) n + 1 pontos dados
t
0
, t
1
, ... , t
n
ns nmeros reais
Polinmios de Lagrange
Polinmios cbicos de Hermite
A forma de polinmios cbicos de Hermite determinada pelos pontos finais e
pelas tangentes aos pontos finais.
Figuras:
B-Splines:
Para uma sequncia de ns t
0
, t
1
, ... , t
n
os polinmios B
i,n
so dados por:
Em particular , o polinmio cbico B-spline B
i,3
no nulo no intervalo [t
i
,
t
i+4
]
Para ns no repetidos, temos:
t
i
t
i + 1 n
, o polinmio B-spline zero nos extremos, ou seja, t
i
e t
i + n + 1
.
Polinmios de Bernstein
Programa Especial de Treinamento / PET/AGRO Pgina 105
- Apostila de Computao Grfica (Incompleta)-
Os polinmios de Bernstein de grau n no intervalo [0,1] so definidos como:
Os polinmios cbicos de Berstein sero:

Você também pode gostar