Você está na página 1de 154

GRAFICA

COMPUTAC
AO

Helio Pedrini

Universidade Estadual de Campinas


Instituto de Computa ~ao
Campinas-SP, 13084-971
helioi .uni amp.br

2009

Conte
udo
1 Introdu
c
ao

1.1
1.2
1.3
1.4
1.5


Rela ionamento entre Areas
. . . .
Computa ~ao Gra a . . . . . . . .
Alguns Mar os Histori os . . . . .
Padr~oes Gra os . . . . . . . . . .
Apli a o~es da Computa ~ao Gra a

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

2 Equipamentos Gr
aficos

2.1
2.2
2.3
2.4
2.5
2.6

Dispositivos de Entrada . .
Dispositivos de Sada . . . .
Sistemas de Coordenadas .
Resolu ~ao Gra a . . . . . .
Visualiza ~ao . . . . . . . . .
Mapeamento entre Sistemas

1
2
2
7
8
11

. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
de Coordenadas

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

3 Modelos de Cores

3.1 Fundamentos de Cor . . . . . . .


3.2 Modelos de Cores . . . . . . . . .
3.2.1 Modelo de Munsell . . . .
3.2.2 Modelo RGB . . . . . . .
3.2.3 Modelo XYZ . . . . . . .
3.2.4 Modelo CMY . . . . . . .
3.2.5 Modelo YIQ . . . . . . . .
3.2.6 Modelo YUV . . . . . . .
3.2.7 Modelo YCbCr . . . . . .
3.2.8 Modelo HSV . . . . . . .
3.2.9 Modelo HSL . . . . . . .
3.2.10 Modelo HSI . . . . . . . .
3.2.11 Modelos L*u*v* e L*a*b*

11
14
19
20
20
20
23

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

4 Algebra
Linear

4.1 Geometria em Duas Dimens~oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


4.1.1 Ponto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23
25
27
27
28
28
29
29
30
30
31
32
34
35

36
36


CONTEUDO

4.2

4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14

4.1.2 Reta . . . . . . . . . . . . . . . . .
4.1.3 Equa o~es entre Pontos e Retas . .
Geometria em Tr^es Dimens~oes . . . . . .
4.2.1 Ponto . . . . . . . . . . . . . . . .
4.2.2 Reta . . . . . . . . . . . . . . . . .
Se ~oes C^oni as . . . . . . . . . . . . . . .
Vetores . . . . . . . . . . . . . . . . . . .
Corpo Numeri o . . . . . . . . . . . . . .
Espa os Vetoriais . . . . . . . . . . . . . .
Subespa os . . . . . . . . . . . . . . . . .
Combina ~ao Linear . . . . . . . . . . . . .
Conjuntos Geradores . . . . . . . . . . . .
Independ^en ia Linear . . . . . . . . . . . .
Base e Dimens~ao . . . . . . . . . . . . . .
Opera ~oes . . . . . . . . . . . . . . . . . .
Algumas Apli a o~es de Determinantes . .
Retas e Planos no Espa o Tridimensional

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

5 Transforma
co
es Geom
etricas

5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9

61

Transforma ~oes Geometri as 2D . .


Coordenadas Homog^eneas e Matrizes
Propriedades da Matriz de Rota ~ao .
Transforma ~oes Geometri as 3D . .
Composi ~ao de Transforma ~oes . . .
Transforma ~oes A ns . . . . . . . . .
Numeros Complexos . . . . . . . . .
Quaternios . . . . . . . . . . . . . .
Exer  ios . . . . . . . . . . . . . . .

. . . . . . . . . . .
de Transforma ~ao
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

6 Proje
co
es Planares

6.1
6.2
6.3
6.4
6.5

Proje ~oes Paralelas . . .


Proje ~ao Axonometri a
Proje ~ao Oblqua . . . .
Proje ~ao Perspe tiva . .
Exer  ios . . . . . . . .

36
38
39
39
40
40
41
42
43
44
45
46
47
49
50
57
58

62
67
72
72
74
78
79
80
84
87

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

7 Tra
cado de Primitivas Gr
aficas

7.1 Segmentos de Reta . . . . . . . .


7.1.1 Equa ~ao da Reta . . . . .
7.1.2 Algoritmo DDA . . . . . .
7.1.3 Algoritmo de Bresenham
7.2 Tra ado de Cir unfer^en ia . . . .

.
.
.
.
.

87
89
90
93
95
97

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

. 97
. 98
. 98
. 99
. 102


CONTEUDO

8 Preenchimento de Regi
oes

107

8.1 Algoritmo de Preen himento por Inunda ~ao . . . . . . . . . . . . . . . . . . . . . . . . 107


8.2 Algoritmo de Preen himento por Linha de Varredura . . . . . . . . . . . . . . . . . . . 109
9 Recorte

111

9.1 Re orte de Pontos . . . . . . . . . . . . . . . . . . . .


9.2 Re orte de Segmentos de Reta . . . . . . . . . . . . .
9.2.1 Re orte pela Solu ~ao de Equa ~oes Simult^aneas
9.2.2 Algoritmo de Cohen e Sutherland . . . . . . .
9.2.3 Algoritmo de Cyrus-Be k . . . . . . . . . . . .
9.2.4 Algoritmo de Ni holl-Lee-Ni holl . . . . . . . .
9.2.5 Re orte de Polgonos de Sutherland-Hodgman .
9.2.6 Re orte de Polgonos de Weiler-Atherton . . .
9.2.7 Re orte de Cohen-Sutherland 3D . . . . . . . .
9.3 Re orte de Texto . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

10 Modelagem Geom
etrica

10.1 Modelos Solidos . . . . . . . . . . . . . . .


10.1.1 Instan ia ~ao de Primitivas Puras .
10.1.2 Enumera ~ao de O upa ~ao Espa ial
10.1.3 De omposi ~ao de Celulas . . . . .
10.1.4 Varredura . . . . . . . . . . . . . .
10.1.5 Representa ~ao por Fronteiras . . .
10.1.6 Geometria Solida Construtiva . . .
10.2 Fra tais . . . . . . . . . . . . . . . . . . .
10.3 Sistemas de Part ulas . . . . . . . . . . .
10.4 Modelos Fsi os . . . . . . . . . . . . . . .

112
112
112
113
114
117
118
118
120
121
123

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

11 Modelos de Ilumina
c
ao

11.1 Intensidade de Luz . . . . . . . . . . . . . . . . . .


11.1.1 Fontes de Luz . . . . . . . . . . . . . . . . .
11.1.2 Luz Ambiente . . . . . . . . . . . . . . . . .
11.1.3 Re ex~ao Difusa . . . . . . . . . . . . . . . .
11.1.4 Re ex~ao Espe ular . . . . . . . . . . . . . .
11.1.5 Luz Refratada . . . . . . . . . . . . . . . .
11.2 Metodos de Sombreamento de Superf ie . . . . . .
11.2.1 Intensidade Constante . . . . . . . . . . . .
11.2.2 Sombreamento de Gouraud . . . . . . . . .
11.2.3 Sombreamento de Phong . . . . . . . . . .
11.3 Exemplos de Cenas . . . . . . . . . . . . . . . . . .
11.4 Comandos Rela ionados a Ilumina ~ao em OpenGL
11.4.1 De ni ~ao de fonte de luz . . . . . . . . . . .

123
123
123
124
124
125
126
126
127
128
129

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

129
129
131
131
133
135
136
137
137
139
139
146
146


CONTEUDO

11.4.2 Propriedades de Material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146


11.4.3 Sombreamento Poligonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Refer
encias Bibliogr
aficas

147

Captulo 1

Introduc
ao

1.1

Relacionamento entre Areas

As prin ipais areas ient as que utilizam imagens s~ao:




Computa ~ao Gra a: estuda a gera ~ao de representa ~oes visuais a partir das espe i a ~oes
geometri as de seus omponentes.

Pro essamento de Imagens: estuda as te ni as de transforma ~ao de imagens visando melhorar
suas ara tersti as visuais, tais omo aumento do ontraste, fo o, elimina ~ao de rudo, dete  ~ao
de bordas, et .

Analise de Imagens: pro ura obter a espe i a ~ao dos omponentes de uma imagem a partir
de sua representa ~ao visual.

Sntese
de
Imagens

imagem

descrio
geomtrica

Processamento
de
Imagens

imagem

Anlise
de
Imagens

Figura 1.1: Rela ionamento entre areas.

A area de Visualiza ~ao Cient a utiliza te ni as de sntese, pro essamento e analise de imagens para representar informa ~ao de forma a fa ilitar o entendimento de onjuntos de dados de alta
omplexidade.

Computa
c
ao Gr
afica

1.2

H
elio Pedrini

Computac
ao Gr
afica

Passado:
 dis iplina restrita e altamente espe ializada
 baixa intera ~
ao usuario- omputador

Presente:
 alta intera ~
ao om usuario- omputador
 equipamentos gr
a os de baixo usto

1.3

Alguns Marcos Hist


oricos

1826: primeira imagem fotogra a (inventor fran ^es Joseph Ni ephore Niep e).

(a)

(b)

Figura 1.2: Fotogra as.

1884: s anner para apturar e transmitir imagens (te ni o e inventor alem~ao Paul Nipkow)
1885: Tubos de Raios Catodi os (Cathode Ray Tube - CRT)
1887: patente de ^amera para lmes (inventor e empresario ameri ano Thomas Alva Edison)
1888: grava ~ao de imagens em um ilindro de era (Thomas Alva Edison e William Di kson)
1926: primeira televis~ao (engenheiro es o ^es John Logie Baird)

Figura 1.3: Televis~ao.

Introdu
c
ao

1927: lmes s~ao padronizados em 24 quadros por segundo


1929: BBC ini ia transmiss~ao
1938: proposta para transmiss~ao de TV olorida (George Valensi)
1941: primeira transmiss~ao de TV nos Estados Unidos
1947: transistores inventados na Bell Laboratories
1948: TV a abo e instalada na Pennsylvania
1953: odigo de transmiss~ao NTSC (National Television System Committee)
1954: Federal Communi ations Commission (FCC) autoriza transmiss~ao para TV olorida
1955: sistema SAGE (Semi-Automati Ground Environment) no Lin oln Laboratory (MIT) usa aneta
opti a pela primeira vez (Bert Sutherland). SAGE foi o primeiro grande sistema omputadorizado em tempo real, sendo utilizado na monitora ~ao do espa o aereo ameri ano.

(a)

(b)

( )

(d)

Figura 1.4: Sistema SAGE.

1960: introdu ~ao do termo omputa ~ao gra a pelo ameri ano William Fetter (Boeing), rela ionado
a desenhos de o kpit
1961: ria ~ao do jogo Spa ewars, o primeiro vdeo game interativo, desenvolvido pelo estudante Steve
Russell no MIT para o omputador PDP-1
1963: teoria de splines (matemati o romeno Isaa Ja ob S hoenberg)
1963: introdu ~ao das superf ies de Coons
1966: primeiro Head-Mounted Display

Computa
c
ao Gr
afica

H
elio Pedrini

(a)

(b)

Figura 1.5: Head Mounted Display.

1966: inven ~ao da tela de plasma (Universidade de Illinois)


1967: GE introduz primeiro simulador de v^oo totalmente interativo e olorido para NASA (Rod Rougelet)
1968: on ep ~ao do mouse pelo inventor ameri ano Douglas Englebart na Stanford Resear h Institute,
Menlo Park, California.

(a)

(b)

Figura 1.6: Mouse.

1968: terminal gra o inteligente DEC 338


1968: Tektronix 4010
1968: funda ~ao da Intel
1969: interfa e gra a (Graphi al User Interfa e - GUI) devenvolvida pela Xerox ( ientista ameri ano
Alan Kay)
1969: ria ~ao da SIGGRAPH (so iedade pro ssional)
1972: in io da publi a ~ao do periodi o Computer Graphi s and Image Pro essing
1972: forma ~ao da Atari (engenheiro e empreendedor ameri ano Nolan Bushnell)

Introdu
c
ao

Figura 1.7: Pong.

1972: vdeo game Pong desenvolvido pela Atari


1973: publi a ~ao do livro Prin iples of Intera tive Computer Graphi s (Newman and Sproull),
primeiro livro texto relevante sobre omputa ~ao gra a
1974: desenvolvimento do algoritmo z-bu er por Ed Catmull (University of Utah)
1975: teoria de fra tais (matemati o fran ^es Beno^t Mandelbrot, IBM)
1975: Martin Newell (University of Utah) ria teapot (modelo real da haleira esta no Computer
Museum em Boston)
1976: ameri anos Steve Jobs e Steve Wozniak fundam a Apple Computers (agora Apple, In ).
1977: pesquisador ameri ano James Blinn desenvolve mapeamento de textura
1977: lan amento do Apple II
1977: A ademy of Motion Pi tures Arts and S ien es in lui ategoria de Efeitos Visuais para Os ars
1977: introdu ~ao do padr~ao gra o GKS (Graphi al Kernel System)
1978: video laser dis
1979: organiza ~ao da National Computer Graphi s Asso iation (NCGA)
1979: padr~ao SIGGRAPH CORE Graphi s
1980: funda ~ao da Apollo Computer
1980: Disney utiliza omputa ~ao gra a para o lme Tron
1981: IEEE Computer Graphi s and Appli ations (publi ado pela IEEE Computer So iety and NCGA)
1982: ACM ini ia publi a ~ao da Transa tions on Graphi s
1982: Adobe e fundada pelo ientista ameri ano John Warno k
1982: Atari desenvolve luvas de dados (data glove)
1982: funda ~ao da AutoDesk; AutoCAD e lan ado

Computa
c
ao Gr
afica

H
elio Pedrini

1983: esta ~ao de trabalho SGI IRIS 1000


1983: Sony e Philips introduzem primeiro CD player
1984: Wavefront Te hnologies torna-se o primeiro pa ote omer ial de software 3D (fundada por Bill
Kova s).
1984: venda do primeiro omputador Ma intosh
1985: TV estereo
1985: Targa 16 board (AT&T) hega ao mer ado
1985: PostS ript (Adobe - John Warno k)
1986: Pixar e omprada da Lu as lm por Steve Jobs
1986: Intel introduz o-pro essador gra o 82786; Texas Instruments introduz TMS34010 Graphi s
System Pro essor
1987: GIF format (CompuServe)
1987: VGA (Video Graphi s Array) riada pela IBM
1987: Windows 2.0, MS/OS 2, Ex el
1988: Willow (Lu as lm) utiliza morphing em lme
1988: Pixar ven e Os ar por Tin Toy
1990: 3D Studio (AutoDesk)
1990: John Wiley & Sons ini ia publi a ~ao do The Journal of Visualization and Computer Ani-

mation

1991: ILM produz Terminator 2


1991: JPEG/MPEG
1992: OpenGL
1993: Jurassi Park - ILM e Steven Spielberg
1993: Nvidia ini ia fabri a ~ao de unidades de pro essamento gra a (GPU).
1993: lan amento de Myst (Cyan Worlds) torna-se o jogo mais vendido (superado pelo jogo The Sims
em 2002)
1994: ILM ganha Os ar por efeitos espe iais om Jurassi Park
1994: lan amento de Doom
1994: padr~ao HDTV para transmiss~ao e adotado nos Estados Unidos

Introdu
c
ao

(a) Doom

(b) Myst

( ) The Sims

Figura 1.8: Jogos.

Figura 1.9: Toy Story.

1995: Toy Story (Pixar): primeiro lme totalmente animado por omputador.
1995: John Lasseter da Pixar ganha Os ar pelo desenvolvimento e apli a ~ao de te ni as usadas em
Toy Story
1996: lan amento de Quake
1997: Apple Computer ompra NexT
1998: padr~ao MPEG-4 e anun iado
1999: Toy Story 2 produzido pela Pixar
2000: Playstation 2 (Sony)

1.4

Padr
oes Gr
aficos

Com o res ente aumento do interesse em Computa ~ao Gra a, torna-se onveniente a exe u ~ao das
apli a ~oes em diferentes plataformas. Um padr~ao para desenvolvimento de programas gra os fa ilita
essa tarefa, eliminando a ne essidade de es rever odigos para equipamentos gra os distintos.
Alguns exemplos de padr~oes gra os desenvolvidos s~ao:
 Linguagem

2D.

PostS ript: fa ilita a publi a ~ao de do umentos estati os ontendo textos e gra os

Computa
c
ao Gr
afica


H
elio Pedrini

X Window: para desenvolvimento de interfa es gra as 2D em esta ~oes de trabalho Unix/Linux.


Um programador utiliza o X para obter uma janela em um display gra o no qual um texto ou
um gra o 2D pode ser apresentado. Com a ado ~ao do ambiente X pela maioria dos fabri antes
de esta ~oes de trabalho, um programa desenvolvido em X pode ser exe utado em uma variedade
de esta ~oes simplesmente re ompilando o odigo.

Core Graphi s System: a primeira espe i a ~ao foi publi ada em 1977 pelo Graphi Standards
Planning Committee (GSPC). Uma vers~ao ompleta do padr~ao foi publi ada em 1979. O
padr~ao e a primeira proposta para gera ~ao de gra os 3D e foi implementada em alguns sistemas
gra os nos Estados Unidos.

Graphi al Kernel System (GKS): espe i a ~ao gra a padronizada pela Ameri an National Standards Institute (ANSI) e International Organization for Standardization (ISO) em
1985. Suporta um onjunto de primitivas gra as tais omo desenho de linhas, polgonos, ara teres, et , bem omo seus atributos. N~ao suporta agrupamentos de primitivas hierarqui as
de estruturas 3D.

Programmer's Hierar hi al Intera tive Graphi s System (PHIGS): baseado no GKS, PHIGS
e um padr~ao ANSI que prov^e meios para manipular e desenhar gra os 3D en apsulando des ri ~oes de objetos e atributos. Isto possibilita que um objeto omplexo seja des rito uma uni a
vez, mesmo exibindo-o varias vezes. PHIGS n~ao possui suporte a re ursos avan ados omo
mapeamento de textura.

PEX: extens~ao para o PHIGS em ambiente X Window, permitindo que o X pudesse manipular
e desenhar objetos 3D. Tambem n~ao suporta re ursos avan ados.

OpenGL: sistema relativamente novo (sua primeira vers~ao e de 1992) que prov^e ara tersti as
 baseado nas bibliote as GL (Graphi s Library) das esta ~oes de trabalho
gra as avan adas. E
da SGI. Atualmente um onsor io de industrias e responsavel pelo geren iamento da evolu ~ao
do OpenGL. Existe uma implementa ~ao livre do OpenGL onhe ida omo MesaGL ou Mesa3D.

1.5

Aplica
c
oes da Computac
ao Gr
afica

Diversas apli a ~oes fazem uso da Computa ~ao Gra a, alguns exemplos s~ao apresentados a seguir:


Interfa es: a maioria dos apli ativos para omputadores pessoais e esta ~oes de trabalho atualmente disp~oe de interfa es gra as baseadas em janelas, menus,  ones, et .

Automa ~ao de Es ritorios e Editora ~ao Eletr^oni a: permite a ria ~ao de do umentos que
ombinam texto, tabelas e gra os.

Projeto Auxiliado por Computador (CAD): sistemas gra os interativos utilizados para projetar omponentes, pe as e sistemas de dispositivos me ^ani os, eletri os, eletro-me ^ani os e
eletr^oni os. Isto in lui edif ios, automoveis, avi~oes, navios, ir uitos eletr^oni os, sistemas
opti os, redes telef^oni as e de omputador.

Introdu
c
ao


Simula ~ao e anima ~ao para visualiza ~ao ient a: anima ~oes omputadorizadas utilizadas
para estudar entidades matemati as abstratas e modelos matemati os de fen^omenos omo uxo
de uidos, relatividade, rea ~oes qumi as e nu leares, deforma ~ao de estruturas me ^ani as sob
diferentes tipos de press~ao, meteorologia, medi ina, biologia, et .

Controle de Pro essos: sistemas de ontrole de trafego aereo e espa ial, sistemas de ontrole
de re narias e de usinas de energia mostram gra amente os dados oletados por sensores one tados a omponentes rti os dos sistemas, de forma que os operadores possam responder
adequadamente a ondi ~oes rti as.

Geopro essamento: utilizada para produzir representa ~oes pre isas e esquemati as de
fen^omenos geogra os obtidos a partir da oleta de dados.

Entretenimento / Arte: e possvel utilizar os re ursos de omputa ~ao gra a para produzir
efeitos artsti os omo a extra ~ao de texturas, padr~oes e estruturas a partir de fotos digitalizadas,
efeitos espe iais para lmes e omer iais de televis~ao, jogos et .

Gra os de Apresenta ~ao: utiliza ~ao de te ni as gra as para demonstra ~ao de resultados,
om o objetivo de mostrar ou transmitir onhe imento espe  o omo, por exemplo, em uma
aula ou reuni~ao.

Captulo 2

Equipamentos Gr
aficos

Equipamentos asso iados a area de Computa ~ao Gra a onsistem essen ialmente em dispositivos
gra os de entrada e sada ligados a um omputador.
Diversas te nologias e diferentes tipos de dispositivos s~ao utilizados para gerar representa ~oes
visuais, sendo que o desenvolvimento dessas te nologias teve um papel fundamental na evolu ~ao da
Computa ~ao Gra a.
 possvel ainda lassi ar os dispositivos gra os em duas ategorias prin ipais, segundo a forma
E
pela qual as imagens s~ao geradas: vetoriais e matri iais.

2.1


Dispositivos de Entrada

Te lado: o te lado e o periferi o mais utilizado na omuni a ~ao entre o usuario e o omputador,
permitindo a entrada de textos, dados numeri os e omandos. As te las, representando letras,
numeros, smbolos e outras fun ~oes, s~ao ligadas a um ir uito no interior no te lado, que e
responsavel por identi ar ada te la pressionada e enviar as informa ~oes ao omputador. O
meio de onex~ao dessas informa ~oes entre o te lado e o omputador pode ser por abo (PS/2
ou USB) ou sem o. Te lados modernos in luem te las adi ionais para a sele ~ao de op ~oes em
menus e para a ativa ~ao de fun ~oes, bot~oes para apli a ~oes espe  as, te las de movimento de
ursor para sele ~ao de oordenadas de um ponto em uma tela gra a.

Figura 2.1: Te lado.

12

Computa
c
ao Gr
afica


H
elio Pedrini

Mouse: equipamento que, juntamente om o te lado, permite a movimenta ~ao do ursor na


tela do omputador, parti ularmente em programas om interfa e gra a. Ha modelos om
um, dois, tr^es ou mais bot~oes, uja fun ionalidade depende do programa sob utiliza ~ao. Um
modelo omum possui um bot~ao esquerdo para sele ionar e a ionar op ~oes, um bot~ao direito
para realizar fun o~es se undarias e um bot~ao entral para movimentar a barra de rolagem das
janelas. A onex~ao do mouse ao omputador normalmente e feita por meio de portas seriais,
PS2, USB ou, mais re entemente, sem o (infravermelho ou Bluetooth).
Um modelo bem onhe ido e formado por uma pequena esfera que rola livremente a medida
que o dispositivo se movimenta sobre uma superf ie plana. Os movimentos de rota ~ao da
esfera relativos ao mouse s~ao transmitidos me ani amente a dois poten i^ometros que medem o
deslo amento do mouse em rela ~ao a dois eixos ortogonais xos. Como o sistema de eixos e xo
em rela ~ao a aixa que ontem a esfera, o dispositivo e apaz apenas de dete tar movimentos
relativos a sua propria posi ~ao atual. Ele pode ser levantado da superf ie, movido e re olo ado
sobre a superf ie sem que a sua posi ~ao orrente no sistema seja alterada.
Os modelos modernos s~ao totalmente opti os, em que o movimento do dispositivo e medido por
meio de um feixe de laser emitido em uma superf ie n~ao re exiva.

Figura 2.2: Mouse.

Joysti k: dispositivo que informa a posi ~ao do ursor na tela. A informa ~ao de posi ionamento
n~ao e dada ex lusivamente pela pequena alavan a, tambem e indispensavel o a ompanhamento
visual atraves de um ursor, um smbolo espe ial que se move na tela. Os joysti ks podem
indi ar a posi ~ao em um plano, a partir da medida do deslo amento da alavan a em rela ~ao ao
entro. A manipula ~ao e per ebida por poten i^ometros olo ados na base da alavan a. O sinal
eletri o e odi ado e enviado ao omputador. Os joysti ks s~ao usados frequentemente para
ontrolar jogos de vdeo.


Caneta Opti a
: e um dispositivo que fun iona asso iado a um monitor de vdeo, sendo apaz
de dete tar luz. A aneta tem em sua ponta uma elula fotoeletri a e um interruptor de press~ao.
Ao ser pressionado ontra a tela, o interruptor habilita a elula a dete tar o pulso de luz emitido
pelo fosforo que re obre a tela no ponto sendo apontado. Quando a aneta dete ta um pulso de
luz em um terminal de varredura, o onteudo dos registradores X e Y do ontrolador de vdeo
e armazenado e o pro essamento e interrompido. Atraves dos valores armazenados, o programa
gra o determina as oordenadas do pixel apontado pela aneta.

Equipamentos Gr
aficos

13

Figura 2.3: Joysti k.

Figura 2.4: Caneta oti a.

Mesa Digitalizadora: dispositivo que permite o desenho de imagens diretamente no omputador. Uma mesa digitalizadora onsiste em uma superf ie plana e um dispositivo semelhante a
uma aneta que pode ser posi ionado sobre a superf ie. Um tipo de te nologia utiliza indu ~ao
eletromagneti a, em que a propria mesa fun iona omo bobina transmissora e re eptora. A mesa
gera um sinal, que e re ebido por um ir uito na aneta. A mudan a de press~ao na aneta se
re ete no sinal gerado pela aneta.

Figura 2.5: Mesa digitalizadora.

Tela Sensvel ao Toque: e um tipo de tela sensvel a press~ao. O dispositivo e utilizado para a
sele ~ao de op o~es de omandos, dispensando a ne essidade de outro periferi o de entrada omo o
te lado. O usuario to a a tela indi ando o omando sele ionado. A posi ~ao do dedo e identi ada
por um onjunto de sensores dispostos em torno da tela. O tipo mais omum emprega diodos

14

Computa
c
ao Gr
afica

H
elio Pedrini

emissores de radia ~ao infravermelha e elulas fotoeletri as. Ao olo ar o dedo na tela, o usuario
interrompe os feixes de luz nos dois eixos. As elulas que deixaram de re eber luz podem ser
identi adas e um al ulo simples pode rela ionar o par de elulas om a op ~ao da tela. O uso
de infravermelho evita a interfer^en ia da luz ambiente.

Figura 2.6: Tela sensvel ao toque.

Luva: dispositivo de intera ~ao utilizado em apli a ~oes de realidade virtual. Consiste de um
onjunto de sensores a oplados a uma luva que dete tam movimento e for a dos dedos. Antenas
de transmiss~ao e re ep ~ao s~ao responsaveis por forne er o posi ionamento das m~aos. Assim, a
posi ~ao das m~aos pode indi ar a posi ~ao de objetos que s~ao ent~ao mapeados para a tela ou outro
dispositivo.

Figura 2.7: Luva digital.

2.2


Dispositivos de Sada

Impressoras
Matri iais: tipo de impressora de impa to, ujos ara teres s~ao impressos por meio de

um onjunto de agulhas. Um ponto e impresso quando uma agulha pressiona uma ta


impregnada om tinta sobre o papel. As agulhas s~ao montadas sobre um abe ote movel e
os diferentes ara teres s~ao obtidos pelo a ionamento das agulhas a medida que o abe ote se
movimenta. Estas impressoras podem operar no modo texto para a impress~ao de ara teres
ou em um modo gra o pelo qual e possvel ontrolar ada agulha de modo independente.

Equipamentos Gr
aficos

15

Cada padr~ao a ser impresso e de nido por uma pequena matriz de pontos, onde ada ponto
pode ser tra ado ou n~ao.
Laser: tipo de impressora que produz textos ou gra os om alta qualidade. O pro esso

de impress~ao e semelhante ao das foto opiadoras. Um feixe de raio laser ria uma imagem
eletrostati a de uma pagina ompleta a ser impressa. O bombardeio do feixe arrega um
tambor fotossensvel om uma arga eletrostati a n~ao uniforme. Por efeito da intensidade
da arga, um po (toner) adere ao tambor apenas nas areas sensibilizadas, que e transferido
ao papel por meio de press~ao e aque imento, formando as letras e imagens da pagina.
Jato de Tinta: tipo de impressora que possui um abe ote que transporta um pequeno

bi o que expele a tinta em um jato urto e no sobre o papel por meio de pequenos
or ios. Pode-se variar a intensidade do jato, obtendo assim ontrole sobre a densidade de
impress~ao. Algumas impressoras disp~oem de varios artu hos om tintas de ores diferentes,
uja mistura produz diversas tonalidades.

(a) matri ial

(b) jato de tinta

( ) laser

Figura 2.8: Impressoras.

Tra adores Gra os: os tra adores gra os (plotters) s~ao dispositivos eletrome ^ani os que
produzem o desenho pelo movimento de uma aneta sobre a superf ie do papel. A primitiva
gra a basi a nesse tipo de dispositivo e o segmento de reta. Ar os, urvas e ara teres s~ao
produzidos pelo tra ado de uma serie de pequenos segmentos.
Figuras s~ao tra adas pela varia ~ao ontrolada da posi ~ao da aneta (eixo x e y) e pelo ontrole
do estado da aneta (abaixada ou levantada).
Tra adores de Mesa: o papel e xado sobre uma superf ie plana retangular sobre a qual

esta lo alizado um bra o me ^ani o que se movimenta por transla ~ao. Ao longo do bra o
deslo a-se um abe ote que suporta uma aneta perpendi ularmente a mesa, a qual pode
ser pressionada ontra o papel ou levantada de forma a n~ao to a-lo.
Tra adores de Rolo: o bra o e xo e o papel e movimentado para frente e para tras por

a ~ao de um rolo, omo em uma maquina de es rever.




Terminais de Vdeo:
Os terminais ou monitores de vdeo s~ao o meio de sada mais utilizado em Computa ~ao Gra a,
devido a sua apa idade de representar imagens de forma din^ami a.

16

Computa
c
ao Gr
afica

(a) tra ador de mesa

H
elio Pedrini

(b) tra ador de rolo

Figura 2.9: Tra adores gra os.

O projeto dos terminais de vdeo teve, durante sua evolu ~ao, muitas abordagens te nologi as
diferentes que resultaram em omportamentos distintos, tanto do ponto de vista do programador
do sistema gra o quanto do ponto de vista do usuario.
Duas te nologias bastante difundidas na fabri a ~ao de terminais de vdeo s~ao tubos de raios
atodi os (CRT, do ingl^es Cathodi Ray Tube) e tela de ristal lquido (LCD, do ingl^es Liquid
Cristal Display).

(a) monitor CRT

(b) monitor LCD

Figura 2.10: Monitores de vdeo.

A te nologia CRT utiliza o mesmo prin pio dos aparelhos de televis~ao. Um atodo aque ido
emite um feixe eletr^oni o que e onvenientemente fo alizado por um onjunto de lentes e a elerado por uma diferen a de poten ial. O feixe, de alta velo idade, in ide sobre a superf ie
do tubo, que e re oberta om fosforo. O ponto de fosforo bombardeado pelos eletrons emite
luz. O onjunto de pontos a esos forma a gura. Um onjunto de bobinas e utilizado para
desviar o feixe eletr^oni o sobre o ponto a ser a eso, o que e feito atraves da apli a ~ao de tens~ao
propor ional ao deslo amento que se pretende obter.
No aso de terminais oloridos, tem-se um onjunto de tr^es anh~oes que emitem tr^es feixes de
eletrons. Os anh~oes s~ao dispostos de tal forma que in idam sobre a tela em tr^es pontos distintos,
onde se en ontram depositados tr^es tipos diferentes de fosforo: o verde, o vermelho e o azul.
Os tr^es pontos de fosforo am bastante proximos entre si, de tal forma que o olho humano v^e
um so ponto olorido na tela. A intensidade luminosa de ada ponto de fosforo pode ser obtida
variando-se a a elera ~ao de ada feixe, obtendo-se os inumeros tons de ores.

Equipamentos Gr
aficos

17
bobinas de deflexo

feixe
catodo
tela revestida
de fsforo

lentes

Figura 2.11: Tubos de raios atodi os.

Fsforo em Linha

Mscara

Canhes

Figura 2.12: Canh~oes de eletrons.

A disposi ~ao dos anh~oes e dos pontos de fosforo e geralmente arranjada em ret^angulos, formando
linhas verti ais. Cada um dos tr^es anh~oes re ebe uma entrada de tens~ao que regula a intensidade
do feixe eletr^oni o em ada ponto da linha de varredura. A de ex~ao dos tr^es feixes eletr^oni os e
ontrolada por pulsos de sin ronismo horizontal e verti al, re ebidos pelo monitor. Estes sinais
ontrolam o retra o do feixe, isto e, o reposi ionamento do feixe durante sua movimenta ~ao, ate
o in io da proxima linha de varredura no aso de retra o horizontal, ou ate o topo da tela no
aso de retra o verti al.
A sequ^en ia de varredura de um terminal e mostrada na gura 2.13, desta ando-se o uso de
entrela amento, ou seja, a varredura de todas as linhas mpares seguida de varredura das linhas
pares. Esta te ni a e usada para diminuir a intila ~ao da imagem: devido a baixa persist^en ia
do fosforo, as linhas superiores ome am a se apagar quando o feixe esta desenhando as linhas
inferiores.

18

Computa
c
ao Gr
afica

H
elio Pedrini

1
2
3
4
5
6
7

Figura 2.13: Sequ^en ia de varredura.

Os terminais CRT apresentam omo prin ipais vantagens sua vida util longa e alta faixa din^ami a
de ores e ontrastes. As prin ipais desvantagens desses terminais s~ao suas dimens~oes e peso,
elevado onsumo de energia e possibilidade de ausar danos a saude no aso de longos perodos
de exposi ~ao de emiss~ao de radia ~ao.
Por outro lado, a te nologia LCD onsiste em um lquido polarizador da luz, eletri amente
ontrolado, que se en ontra omprimido entre duas l^aminas transparentes polarizadoras. Os
eixos polarizadores das duas l^aminas est~ao alinhados perpendi ularmente entre si.
As prin ipais vantagens da te nologia LCD s~ao as dimens~oes reduzidas, o baixo onsumo de
energia, a aus^en ia de emiss~ao de radia o~es no ivas a saude e apa idade de forma ~ao de imagens
ntidas e sem intila ~ao. As prin ipais desvantagens s~ao maior usto de fabri a ~ao (embora
a tend^en ia om a populariza ~ao desses terminais seja um menor impa to no usto nal do
produto) e menor vida util.
Os terminais usados em Computa ~ao Gra a devem ser apazes de reter inde nidamente a
imagem apresentada. Esta reten ~ao e obtida pelo redesenho ontnuo da imagem na tela.
Os dados dessa imagem am armazenados em uma memoria de tela (frame bu er) que e
onstantemente lida pelo ir uito ontrolador para regenerar a imagem no vdeo. Esta memoria
e normalmente grande. Um monitor olorido que exibe 16 milh~oes de ores requereria 24 bits
para representar o intervalo ompleto de ores, resultando em 3 bytes para ada pixel na memoria
de tela. Para uma tela om resolu ~ao de 640 480 pixels, por exemplo, o monitor requereria
921.600 bytes (64048024), ou seja, aproximadamente 1 Mbyte.
Ao inves de armazenar o valor de 24 bits de ada pixel diretamente na memoria de tela, a pla a
de vdeo poderia restringir o numero de ores que podem ser exibidas simultaneamente. Por
exemplo, as 256 ores mais relevantes para a apli a ~ao dentre as 16 milh~oes possveis podem
ser armazenadas em uma tabela ou mapa de ores. Assim, a pla a de vdeo teria a esso ao
intervalo total de ores, embora apenas 256 possam ser exibidas em um determinado instante
( gura 2.14).

Equipamentos Gr
aficos

19

75%

25%

0
1
...

12 100%

12

...

Memria de Tela
Tabela de Cores

Figura 2.14: Mapa de ores.

R
0
0
0
0
1
1
1
1

G
0
0
1
1
0
0
1
1

B
0
1
0
1
0
1
0
1

Valor Binario
0
1
2
3
4
5
6
7

Cor
preto
azul
verde
iano
vermelho
magenta
amarelo
bran o

Tabela 2.1: Tabela de ores.

2.3

Sistemas de Coordenadas

A obten ~ao de uma imagem a partir de objetos em uma ena requer a transforma ~ao entre diferentes
sistemas de oordenadas. A gura 2.15 ilustra os prin ipais sistemas de oordenadas envolvidos no
pro esso.
coordenadas
do
objeto

coordenadas
do
mundo

coordenadas
da
cmera

coordenadas
normalizadas

coordenadas
da
tela

Figura 2.15: Sistemas de oordenadas.

sistema de oordenadas do mundo: utilizado pelo usuario para de nir das oordenadas dos
objetos;

sistema de oordenadas da ^amera: utilizado para observa ~ao dos objetos;

sistema de oordenadas normalizadas: oordenadas de nidas no intervalo [0, 1];

20

Computa
c
ao Gr
afica


H
elio Pedrini

sistema de oordenadas da tela: onjunto de pixels endere aveis pelo dispositivo. Os pixels
s~ao endere ados por dois numeros inteiros que d~ao suas oordenadas horizontal e verti al. Em
geral, o pixel (0, 0) lo aliza-se no anto superior esquerdo do ret^angulo de visualiza ~ao.

2.4

Resoluc
ao Gr
afica

A resolu ~ao de um dispositivo e dada pela densidade de pontos, em ada dimens~ao, que podem ser
exibidos, por exemplo, 400 pontos por polegada. A resolu ~ao gra a de um dispositivo normalmente
e utilizada para de nir dimens~oes de imagens formadas no dispositivo, de nida omo o numero de
pontos horizontais e verti ais que podem ser exibidos.

2.5


Visualiza
c
ao

Janela de Desenho (Janela): de ne a por ~ao do desenho que deve apare er no dispositivo
gra o. Normalmente esta janela e de nida por meio de um ret^angulo indi ado por dois pontos:
anto inferior (xd1 , yd1 ) e anto superior (xd2 , yd2 ). O sistema de oordenadas de desenho
asso iado a janela e denominado de oordenadas do usuario.

Janela de Visualiza ~ao (Viewport): de ne a por ~ao do dispositivo gra o de sada onde deve
ser apresentada a por ~ao do desenho de nida por sua janela. O sistema de oordenadas asso iado
e denominado de sistema de oordenadas do dispositivo.

4
(a) quatro janelas de nidas
sobre um desenho

(b) tr^es janelas de visualiza ~ao


exibindo a janela de desenho 3

Figura 2.16: Janelas de desenho e de visualiza ~ao.

2.6

Mapeamento entre Sistemas de Coordenadas

O pro esso de visualiza ~ao baseia-se na mudan a de sistemas de oordenadas. Este mapeamento e
matemati amente des rito atraves de formulas expressando a propor ionalidade, ou seja, o posi ionamento relativo de um ponto (xd, yd) na janela de desenho deve orresponder ao ponto (xv, yv) na
janela de visualiza ~ao.
Assim,
xd xd1
xv xv1
xv xv1
=
(xd xd1 )
xv = xv1 + 2
(2.1)
xd2 xd1

xv2 xv1

xd2 xd1

Equipamentos Gr
aficos

21

ou seja
x

xv = xv1 + fx (xd xd1 )

(2.2)

yv = yv1 + fy (yd yd1 )

(2.3)

em que fx = xdv2 xdv1


2
1
Analogamente,
y

em que fy = ydv2 ydv1


2
1
Desta forma, al ula-se para ada ponto (xd, yd) da janela de desenho, o orrespondente ponto na
janela de visualiza ~ao (xv, yv). Os fatores de visualiza ~ao fx e fy expli am as deforma o~es nos asos de
janelas geometri amente n~ao semelhantes: se estes fatores forem diferentes, a imagem sera deformada.

Captulo 3

Modelos de Cores

Cor e uma propriedade importante na analise de imagens realizada pelos seres humanos om ou
sem o auxlio de omputador. A identi a ~ao de objetos e a interpreta ~ao de uma ena podem, em
geral, ser simpli adas om o uso de or. Com base em experimentos realizados om o sistema visual
humano, o olho humano pode dis ernir milhares de tons e intensidades de ores, omparado om
apenas algumas dezenas de nveis de inza.
Este aptulo des reve os prin ipais aspe tos fsi os das ores e apresenta um onjunto de modelos
de representa ~ao para fa ilitar a espe i a ~ao e a manipula ~ao de ores.

3.1

Fundamentos de Cor

Embora o pro esso psi o siologi o de per ep ~ao de ores pelo erebro humano n~ao seja ompletamente
ompreendido, os aspe tos fsi os da or, estudados ha muitos anos por diversos pesquisadores, podem
ser expressos por meio de uma base formal fundamentada por resultados teori os e experimentais.
A ompreens~ao da natureza da luz e essen ial no estudo das ores. A or e uma manifesta ~ao
per eptual da luz que, por sua vez, e um sinal eletromagneti o. Um raio luminoso e onstitudo de
part ulas, hamadas fotons, uja frequ^en ia e velo idade determinam o omprimento de onda dos
fotons.
Na forma ~ao das ores, dois pro essos prin ipais podem ser desta ados, o pro esso aditivo e o
subtrativo. No pro esso aditivo de forma ~ao de or, as energias dos fotons orrespondentes a dois ou
mais raios luminosos que est~ao sendo ombinados s~ao somadas. O pro esso subtrativo de forma ~ao de
or o orre quando a luz que os olhos re ebem e proveniente de material transparente ( ltro), orantes
ou pigmentos, em que parte da energia luminosa in idente e absorvida e parte e transmitida.
Do ponto de vista per eptual, os diferentes omprimentos de onda est~ao asso iados a diferentes
ores. Em 1666, Isaa Newton (1642-1727) des obriu que um feixe de luz bran a ao atravessar um
prisma de vidro poderia ser de omposto em um espe tro ontnuo de ores, variando do violeta ao
vermelho. Esse intervalo, denominado de faixa visvel do espe tro, orresponde a uma pequena
regi~ao do espe tro eletromagneti o ujo omprimento de onda e apaz de sensibilizar o olho humano.
A gura 3.1 mostra o espe tro total de radia ~oes eletromagneti as, in luindo as ondas de radio,

24

Computa
c
ao Gr
afica

H
elio Pedrini

mi roondas, os raios infravermelhos, os raios X e os raios gama, om destaque para a faixa visvel do
espe tro.
4

10

10

10

10

10

Rdio

Microondas

12

14

10

16

10

Infravermelho

18

10

Ultravioleta

22

20

10

10

10

Raios X

Raios Gama

frequncia
(Hertz)

Faixa Visvel

700

600

Vermelho Alaranjado

500

Amarelo

Verde

400
Azul

Violeta

comprimento
de onda (nm)

Figura 3.1: Espe tro eletromagneti o om destaque para sua faixa visvel.

A or e per ebida pelo olho quando a luz e re etida por um objeto. Isaa Newton a reditava
que o olho humano possua inumeras elulas fotossensveis as diversas faixas do espe tro visvel.
Em 1801, o fsi o Thomas Young (1773-1829) prop^os o modelo tri romati o para a per ep ~ao de
ores do olho humano. Segundo o modelo de Young, os ones ( elulas fotossensveis que omp~oem a
retina juntamente om os bastonetes) s~ao subdivididos em tr^es ategorias, ujos valores maximos de
sensibilidade situam-se proximos do vermelho, verde e azul.
Dessa forma, todas as sensa ~oes de or per ebidas pelo olho humano s~ao, na verdade, ombina ~oes
das intensidades dos estmulos re ebidos pelos tr^es tipos de ones. Ini ialmente, houve muita resist^en ia por parte da omunidade ient a em a eitar a teoria tri romati a formulada por Young.
Varios experimentos de per ep ~ao de or realizados pelo fsi o alem~ao Hermann von Helmholtz (18211894) ontriburam para apoiar a teoria de Young, que assim ou onhe ida omo teoria de YoungHelmholtz.
Em 1931, a Comiss~ao Interna ional de Ilumina ~ao (CIE, do fran ^es Commission Internationale

de l'E lairage
) adotou um sistema de representa ~ao do espa o de ores, uja base e onstituda
por tr^es ores nas faixas vermelha, verde e azul do espe tro visvel. A ada uma dessas tr^es ores,
onhe idas omo ores primarias, a CIE atribuiu os valores de omprimentos de onda 435.8 nm para
azul, 546.1 nm para verde e 700 nm para vermelho.
As ara tersti as normalmente usadas para distinguir uma or de outra s~ao o brilho, o matiz e a
satura a~o. O brilho ou lumin^an ia representa a no ~ao de intensidade luminosa da radia ~ao. O matiz
e uma propriedade asso iada ao omprimento de onda predominante na ombina ~ao de ondas de luz.
A satura ~ao expressa a pureza do matiz ou, de modo similar, o grau de mistura do matiz original om
a luz bran a. As ores puras s~ao ompletamente saturadas.
O matiz e a satura ~ao, quando tomados juntos, s~ao hamados de romin^an ia e, portanto, uma or
pode ser ara terizada pelo seu brilho e romin^an ia. No modelo de ores desenvolvido pela CIE, ores
s~ao espe i adas pela ombina ~ao das ores primarias X, Y e Z. As quantidades das ores primarias
presentes em uma or s~ao hamadas de oe ientes tri romati os, dados por
x=

X
X+Y +Z

y=

Y
X+Y+Z

z=

Z
X+Y +Z

(3.1)

Modelos de Cores

25

A soma dos tr^es oe ientes tri romati os reduz o espa o de ores tridimensional a um plano
bidimensional que satisfaz a restri ~ao
x+y+z = 1
(3.2)
Esse plano, onhe ido omo plano de romin^an ia ou plano de Maxwell, ilustrado na gura 3.2,
forma uma rela ~ao entre oordenadas de romati idade (x, y) e oordenadas tri romati as (X, Y, Z).
Como z = 1 x y, o omponente z e redundante, tal que o par (x, y) espe i a a romin^an ia da
or.
Y
(0,1,0)

(1,0,0)
X

(0,0,1)
Z

Figura 3.2: Plano de romin^an ia ou plano de Maxwell.

Os valores dos oe ientes tri romati os de ada or podem ser obtidos a partir de urvas ou
tabelas que foram al uladas om base em resultados experimentais. A CIE riou uma representa ~ao
bidimensional do espa o de or hamada diagrama de romati idade, ilustrado na gura 3.3, o qual
mostra a omposi ~ao de ores omo uma fun ~ao das ores primarias X e Y , ou seja, a ultima oordenada
do espa o e ex luda. Conforme pode ser observado na gura, a luz bran a esta no entro do diagrama

de romati idade. Cores totalmente saturadas est~ao lo alizadas ao longo da borda do diagrama. A
medida que um ponto se afasta da borda e se aproxima do entro do diagrama, mais luz bran a e
adi ionada a or, tornando-a menos saturada.

3.2

Modelos de Cores

Os modelos ou espa os de ores permitem a espe i a ~ao de ores em um formato padronizado para
atender a diferentes dispositivos gra os ou apli a ~oes que requerem a manipula ~ao de ores.
Um modelo de or e essen ialmente uma representa ~ao tridimensional na qual ada or e espe i ada por um ponto no sistema de oordenadas tridimensionais.
O universo de ores que podem ser reproduzidas por um modelo e hamado de espa o ou gamute
de ores. N~ao ha um modelo que des reva todos os aspe tos referentes as ores, portanto, modelos
diferentes s~ao utilizados para espe i ar as ara tersti as das ores.
Os modelos de ores podem ser aditivos ou subtrativos. Nos modelos aditivos, a or e gerada
pela ombina ~ao de varios omprimentos de onda luminosa. A or bran a e gerada pela adi ~ao das
ores primarias verde, vermelha e azul. A or preta indi a que nenhuma luz esta sendo transmitida.

26

Computa
c
ao Gr
afica

H
elio Pedrini

Y
1.0
0.9
0.8
0.7

520
regio de energia espectral
(comprimento de onda em nanmetros)

540
510
Verde
560

0.6
0.5

500
Ciano

Amarelo

0.4

580
600

Branco
490
Azul

0.3
0.2

480

0.1

Vermelho

700

Prpura

400
0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

Figura 3.3: Diagrama de romati idade da CIE.

Exemplos de modelos aditivos in luem XYZ, RGB, HSV e HLS, des ritos a seguir. Nos modelos
subtrativos, a or preta e produzida pela ombina ~ao das ores primarias iano, magenta e amarelo. A
or bran a orresponde a aus^en ia dessas ores primarias. Exemplos de modelos subtrativos in luem
CMY e CMYK. A gura 3.4 ilustra a ombina ~ao de ores nos modelos aditivos e subtrativos.

vermelho

amarelo

verde

azul

ciano

preto

branco
magenta

magenta

ciano

verde

vermelho

azul

amarelo

(a)

(b)

Figura 3.4: Modelos de ores. (a) aditivo; (b) subtrativo.

As proximas se ~oes des revem os modelos mais utilizados para representa ~ao de ores, in luindo
suas ara tersti as basi as e apli a ~oes em pro essamento de imagens.

Modelos de Cores

3.2.1

27

Modelo de Munsell

O modelo de Munsell, desenvolvido por Albert Henry Munsell (1858-1918), e uma das representa ~oes
mais antigas para espe i ar ores. O modelo, ilustrado na gura 3.5, de ne uma or omo um ponto
no espa o tridimensional que representa os tr^es atributos de per ep ~ao de ores, que s~ao o matiz, o
valor e o roma.
Valor
10

Branco

9
8

5YR
5R

5Y
5GY

7
6

5RP

5G

2
4
6

5P
Matiz

5PB 3

5B

5BG
10
12
14

2
1

Preto

Croma

Figura 3.5: Modelo de Munsell.

O eixo entral do modelo representa os valores de brilho, que podem variar de 1 (preto) a 10
(bran o). Os matizes s~ao organizados ao redor do eixo entral, enquanto o roma aumenta a medida
que se distan ia da origem do modelo. O roma e analogo ao omponente de satura ~ao na representa ~ao
CIE, des revendo a pureza da or.
O modelo de Munsell e onstitudo de in o ores primarias, que s~ao o vermelho (R, red), amarelo
(Y, yellow), verde (G, green), azul (B, blue) e purpura (P, purple). As ombina o~es de ores YR,
GY, BG, PB e RP formam in o meio-matizes. A espe i a ~ao de uma or e dada por meio de uma
nota ~ao que in lui os atributos de matiz, valor e roma. Por exemplo, para a or 5R 7/12, em que 5R
representa o matiz vermelho, 7 representa o brilho e 12 e a satura ~ao da or.
3.2.2

Modelo RGB

Este modelo de ores e baseado em um sistema de oordenadas artesianas, em que o espa o de ores
e um ubo, omo mostrado na gura 3.6. As ores primarias vermelho (R, red), verde (G, green) e
azul (B, blue) est~ao em tr^es verti es do ubo, as ores primarias omplementares iano, magenta e
amarelo est~ao em outros tr^es verti es, o verti e junto a origem e o preto e o mais afastado da origem
orresponde a or bran a.
No modelo RGB, a es ala de inza se estende atraves da diagonal do ubo, ou seja, a reta que une
a origem (preto) ate o verti e mais distante (bran o). Por onveni^en ia, geralmente assume-se que os
valores R, G e B est~ao normalizados entre 0 e 1. O modelo RGB e muito utilizado em dispositivos
omo monitores e ^ameras de vdeo.

28

Computa
c
ao Gr
afica

H
elio Pedrini

G
Verde

Ciano

Amarelo

Branco

Escala de cinza

Vermelho
Preto

Azul
Magenta
B

Figura 3.6: Modelo RGB.

3.2.3

Modelo XYZ

O modelo de ores XYZ foi proposto pela CIE e e baseado nas ores primarias imaginarias X, Y e Z.
Neste modelo teori o, qualquer ombina ~ao aditiva entre duas ores sempre sera lo alizada na reta
que one ta estas duas ores no plano XY.
As ores primarias X, Y e Z est~ao linearmente rela ionadas om o modelo RGB por


R
X
0.490 0.310 0.200


Y = 0.177 0.813 0.010 G


0.000 0.010 0.990
B
Z

(3.3)

A or bran a e representada por X = Y = Z = 1. Os oe ientes de romati idade x = X/(X+Y+Z)


e y = Y/(X + Y + Z) podem ser utilizados para produzir o diagrama de romati idade mostrado na
gura 3.3.

3.2.4

Modelo CMY

Este modelo e baseado nas ores primarias omplementares iano (C, yan), magenta (M, magenta)
e amarelo (Y, yellow), as quais podem ser obtidas omo


B
G

M = R + B

Y
R
G
C

(3.4)

Uma outra maneira de obter o modelo CMY e realizar uma mudan a de oordenadas tomando-se
omo refer^en ia o modelo RGB. Essa onvers~ao e feita subtraindo-se as ores primarias R, G e B da

Modelos de Cores

29

or bran a (W, white), representada por W = (1, 1, 1). Assim



1
R

M = 1 G

Y
1
B

(3.5)

em que 0 R, G, B 1.
O modelo CMY e muito utilizado em dispositivos que depositam pigmentos oloridos sobre papel,
omo as impressoras de jato de tinta ou foto opiadoras oloridas. Entretanto, algumas di uldades
surgem ao tentar reproduzir a or preta a partir das tr^es ores primarias CMY. A sobreposi ~ao dessas
ores primarias para gerar a or preta normalmente impli a um onsumo elevado de tinta, aumentando
o usto da impress~ao e riando problemas de umidade no papel. Alem disso, a ombina ~ao em iguais
quantidades das ores CMY para produzir a or preta tipi amente gera uma tonalidade proxima do
marrom es uro.
Devido a esses problemas, normalmente adi iona-se o omponente de or preta ao modelo de ores
CMY, obtendo-se assim o modelo CMYK1 .
3.2.5

Modelo YIQ

Neste modelo, o omponente Y orresponde a lumin^an ia e os omponentes I (matiz) e Q (satura ~ao)


juntos odi am as informa ~oes de romin^an ia.
A onvers~ao do modelo RGB para YIQ e de nida omo


R
Y
0.299 0.587
0.114


I = 0.596 0.275 0.321 G


B
Q
0.212 0.523 0.311

(3.6)

em que 0 R, G, B 1. A soma dos elementos da primeira linha da matriz e igual a 1, enquanto a


soma das duas outras linhas e igual a 0. Assim, para uma imagem tom de inza, em que todos os
omponentes R, G e B s~ao iguais, os omponentes I e Q s~ao 0.
O modelo YIQ e utilizado para transmiss~ao de sinal de televis~ao a ores. O uso do modelo YIQ
possui a vantagem de que o sinal de lumin^an ia Y pode ser utilizado diretamente pelos aparelhos
de televis~ao em preto-e-bran o, mantendo a ompatibilidade entre sistemas de televis~ao olorida e
em preto-e-bran o. O modelo YIQ e utilizado pelo padr~ao ameri ano NTSC (National Television
System Committee).
3.2.6

Modelo YUV

O modelo YUV e utilizado para representar ores nos padr~oes de televis~ao PAL (do ingl^es, Phase
Alternation by Line) e SECAM (do fran ^es, Sequentiel Couleur a Memoire). O omponente Y
orresponde a lumin^an ia e os omponentes U e V odi am as informa ~oes de romin^an ia.
1

A letra K e utilizada para representar a or preta (bla k, em ingl^es), ja que o uso da letra B e onsagrado para a or
azul (blue, em ingl^es).

30

Computa
c
ao Gr
afica

H
elio Pedrini

A transforma ~ao do sistema RGB para YUV e dada por




R
Y
0.299
0.587
0.114


U = 0.147 0.289 0.436 G


B
V
0.615 0.515 0.100

em que 0 R, G, B 1.
3.2.7

(3.7)

Modelo YCbCr

O modelo YCbCr e largamente utilizado em vdeos digitais. Neste modelo, a informa ~ao de lumin^an ia
e representada pelo omponente Y , enquanto a informa ~ao de or e armazenada nos omponentes Cb
e Cr. O omponente Cb e a diferen a entre a or azul e um valor de refer^en ia, o omponente Cr e a
diferen a entre a or vermelha e um valor de refer^en ia.
A onvers~ao do sistema RGB para YCbCr e dada por

R


Cb = 0.169 0.331

0.5
G

Cr
0.5
0.419 0.081
B

3.2.8

0.299

0.587

0.114

(3.8)

Modelo HSV

O modelo HSV e de nido pelos par^ametros matiz (H, hue), satura ~ao (S, saturation) e lumin^an ia (V,
value). A representa ~ao gra a tridimensional do modelo HSV e uma pir^amide hexagonal derivada
do ubo RGB, omo mostrado na gura 3.7(a).
Luminncia

Verde

Amarelo

Luminncia
Ciano

Vermelho

Branco
Azul

(Luminncia = 1)

Magenta

Saturao

Matiz

(b)

Preto

(Luminncia = 0)

(a)

Figura 3.7: Modelo HSV. (a) representa ~ao gra a do modelo; (b) varia ~ao dos par^ametros no modelo HSV.

Os diferentes matizes est~ao representados na parte superior da pir^amide, a satura ~ao e medida ao
longo do eixo horizontal e a lumin^an ia e medida ao longo do eixo verti al, o qual passa pelo entro

Modelos de Cores

31

da pir^amide. Nessa base hexagonal da pir^amide, ada verti e orresponde a uma das ores primarias
RGB ou as ores primarias omplementares ( iano, magenta e amarelo). O ^angulo entre os verti es e
de 60 . O vermelho e dado pelo ^angulo 0 , o amarelo igual a 60 e assim por diante.
A satura ~ao varia de 0 a 1 e e representada omo sendo a raz~ao entre a pureza de um determinado
matiz e sua pureza maxima (S = 1). Um determinado matiz possui 1/4 de pureza em S = 0.25.
Quando S = 0, tem-se a es ala de inzas. A lumin^an ia varia de 0 (no pi o da pir^amide), que
representa a or preta, a 1 (na base), onde as intensidades das ores s~ao maximas. A gura 3.7(b)
mostra a varia ~ao desses par^ametros na pir^amide do modelo HSV.
A onvers~ao do modelo RGB para o modelo HSV pode ser realizada por meio das seguintes
equa ~oes:

(G B)

60
, se M = R

(M m)

(B R)
+ 120, se M = G
H = 60

(M m)

(R G)

+ 240, se M = B
60
(M m)

(M m) , se M 6= 0
M
S=

0, aso ontrario

(3.9)

V=M

em que m = min(R, G, B) e M = max(R, G, B). A lumin^an ia V e a satura ~ao S est~ao normalizadas


entre 0 e 1. O matiz H varia entre 0 e 360 graus. Pode-se observar a partir da equa ~ao 3.9 que se a
satura ~ao S for igual a 0, ent~ao o matiz H e inde nido, ou seja, a or do ponto situa-se ao longo da
es ala de inzas. Se o valor V for igual a 0, ou seja, M = 0, ent~ao a satura ~ao S e inde nida.

3.2.9

Modelo HSL

O modelo HSL e de nido pelos par^ametros matiz (H, hue), satura ~ao (S, saturation) e luminosidade
(L, lightness). A representa ~ao gra a do modelo HSL e formada por dois ones de altura 1, ujas
bases s~ao oin identes, onforme mostra a gura 3.8.
O matiz e determinado pelos pontos no r ulo da borda das duas bases omuns aos ones. A
satura ~ao varia de 0 a 1, onforme a dist^an ia ao eixo do one. A luminosidade varia de 0 (preto) a
1 (bran o) ao longo do eixo omum aos dois ones, onde se en ontra a es ala de inza. Os matizes
puros s~ao en ontrados no plano onde a luminosidade e igual a 0.5 e a satura ~ao e igual a 1.

32

Computa
c
ao Gr
afica
Branco

Vermelho

(Luminosidade = 1)

Magenta

Amarelo

Azul
Verde

H
elio Pedrini

(Luminosidade = 0.5)

Ciano

Escala de cinza

Preto

(Luminosidade = 0)

Figura 3.8: Modelo HSL.

A onvers~ao do modelo RGB para o modelo HSL pode ser realizada por meio das seguintes
equa ~oes:

(G B)

, se M = R
60

(M m)

(B R)
+ 120, se M = G
H = 60

(M m)

(R G)

+ 240, se M = B
60
(M m)

0, se M = m

(M m)
S = (M + m) , se 0 < L 0.5

(M m)

, se L > 0.5

2 (M + m)
M+m
L=
2

(3.10)

em que m = min(R, G, B) e M = max(R, G, B). A lumin^an ia L e a satura ~ao S est~ao normalizadas


entre 0 e 1. O matiz H varia entre 0 e 360 graus.

3.2.10

Modelo HSI

O modelo HSI representa uma or em termos do matiz (H, hue), satura ~ao (S, saturation) e intensidade
(I, intensity). A ombina ~ao desses par^ametros em um espa o de ores tridimensionais resulta uma
estrutura piramidal de tr^es lados, mostrada na gura 3.9(a).
Qualquer ponto na superf ie dessa estrutura representa uma or puramente saturada. Os verti es
do tri^angulo da base omum as duas pir^amides orrespondem as ores primarias vermelho, verde e
azul ( gura 3.9(b)). Cada se ~ao transversal da estrutura piramidal e um tri^angulo om as propor ~oes
das ores primarias para produzir um determinado valor de intensidade.

Modelos de Cores

33
Branco

Azul
Azul
Vermelho

Magenta

Verde

Ciano
H

Vermelho

Amarelo

Verde

(b)

(a)

Preto

Figura 3.9: Modelo HSI. (a) representa ~ao gra a do modelo; (b) varia ~ao dos par^ametros no modelo HSI.

A partir da gura 3.9(b), pode-se observar que o matiz H e determinado pelo ^angulo do vetor om
respeito ao eixo da or vermelha. Assim, quando H = 0 , a or e vermelha, quando H = 60 , a or e
amarela, e assim por diante. A satura ~ao de uma or esta asso iada a pureza do matiz, ou seja, se a
or esta diluda pelo bran o e e propor ional a dist^an ia da or ao entro do tri^angulo. Quanto mais
distante uma or estiver do entro do tri^angulo, maior sua satura ~ao.
O omponente de intensidade no modelo HSI e medida om respeito a uma linha perpendi ular
ao tri^angulo, passando atraves de seu entro. As intensidades ao longo dessa linha que am abaixo
do tri^angulo s~ao mais es uras, enquanto as intensidades a ima do tri^angulo s~ao mais laras.
Os omponentes da representa ~ao RGB podem ser onvertidos para o modelo HSI pelas express~oes
H = ar os

(R G) + (R B)
2

(R G)2 + (R B)(G B)

3 min(R, G, B)
R+G+B
R+G+B
I=
3

S=1

(3.11)

Caso B > G, ent~ao H = 360 H. Assume-se que os omponentes R, G e B est~ao normalizados no


intervalo entre 0 e 1. A intensidade I e a satura ~ao S est~ao normalizadas entre 0 e 1. O matiz H varia
entre 0 e 360 graus. Pode-se observar a partir da equa ~ao 3.11 que, se S for igual a 0, H sera inde nido.
O valor de S sera igual a 0 se min(R, G, B) = 1/3. O valor de S sera igual a 1 se min(R, G, B) = 0, ou
seja, se o ponto estiver em uma das arestas do tri^angulo da gura 3.9(b).
Assim omo nos modelos HSV e HSL, o modelo HSI tambem permite se pensar em termos de
ores mais laras e ores mais es uras. As ores mais laras s~ao obtidas pelo aumento do brilho ou da
luminosidade, enquanto as ores mais es uras pela diminui ~ao desses valores. As ores intermediarias
s~ao obtidas pela diminui ~ao da satura ~ao.

34

3.2.11

Computa
c
ao Gr
afica

H
elio Pedrini

Modelos L*u*v* e L*a*b*

No modelo XYZ, des rito anteriormente, duas dist^an ias iguais em regi~oes diferentes do diagrama de
romati idade n~ao indi am varia ~oes equivalentes das ores em termos de per ep ~ao visual. Em 1976,
a CIE de niu dois modelos de ores para permitir es alas per eptualmente mais uniformes.
O modelo L*u*v* e derivado do modelo XYZ da CIE, des rito na se ~ao 3.2.3. O omponente
L* orresponde a lumin^an ia, enquanto os omponentes u* e v* orrespondem a informa ~ao de romin^an ia, dados por

Y
Y

> 0.008856
116( )1/3 16, se
Yn
Yn
L =
Y
Y

903.3( ), se
0.008856
Yn
Yn

u = 13L (u

(3.12)

un
)

v = 13L (v vn
)

em que u = 4X/(X + 15Y + 3Z) e v = 9Y/(X + 15Y + 3Z). Os valores un e vn s~ao de nidos de maneira
similar aos valores u e v , entretanto, s~ao apli ados om refer^en ia ao bran o (Xn, Yn, Zn). Assim,
= 4Xn/(Xn + 15Yn + 3Zn) e v = 9Yn/(Xn + 15Yn + 3Zn). O valor de L varia de 0 a 100, sendo
un
n
que a lumin^an ia relativa (Y/Yn) varia de 0 a 1.
O modelo L*a*b* tambem e derivado do modelo XYZ da CIE. O omponente L* orresponde a
lumin^an ia, enquanto os omponentes u* e v* orrespondem a informa ~ao de romin^an ia, dados por

Y
Y

> 0.008856
116( )1/3 16, se
Yn
Yn
L =
Y
Y

903.3( ), se
0.008856
Y
Yn
  n
 
X
Y
a = 500 f
f
Xn
Yn
  
 
Y
Z
b = 200 f
f
Yn
Zn

em que f(t) = t1/3 se t > 0.008856 ou, aso ontrario, f(t) = 7.787t + 16/116.

(3.13)

Captulo 4

Algebra
Linear

 Matrizes (soma, multipli a ~


ao, inversa, transposta, simetri a, diagonal, triangular inferior, tri-

angular superior)
 Determinantes

Permuta a~o: permuta ~ao de um sub onjunto dos inteiros

{1, 2, ..., n} e uma reordena ~ao

destes inteiros sem que haja repeti ~oes ou omiss~oes.


Exemplo: {1, 2, 3}
(1,2,3)
(1,3,2)

(2,1,3)
(2,3,1)

(3,1,2)
(3,2,1)

Invers~ao: diz-se que o orre uma invers~ao todas as vezes que um inteiro maior pre eder um
menor.

Permuta a~o par e aquela ujo numero total de invers~oes e um inteiro par e permuta ~ao
mpar e aquela ujo numero total de invers~oes e um inteiro mpar. A seguinte tabela
lassi a as diversas permuta ~oes de {1, 2, 3} omo sendo par ou mpar.
Permuta ~ao
(1,2,3)
(1,3,2)
(2,1,3)
(2,3,1)
(3,1,2)
(3,2,1)

Numero de Invers~oes
0
1
1
2
2
3

Classi a ~ao
par
mpar
mpar
par
par
mpar

Produto elementar de uma matriz Ann orresponde a qualquer produto de n termos de


A, dois dos quais n~ao perten entes a mesma linha ou a mesma oluna.

A permuta ~ao do onjunto {1, 2, 3} da origem a lista de produtos elementares:


a11a22a33

a12a21a33

a13a21a32

a11a23a32

a12a23a31

a13a22a31

36

Computa
c
ao Gr
afica

H
elio Pedrini

Como ilustra o exemplo a ima, uma matriz Ann possui n! produtos elementares. S~ao
os produtos da forma a1j1a2j2...anjn, onde (j1, j2, ..., jn) e uma permuta ~ao do onjunto
{1, 2, ..., n}.

Produto elementar sinalizado da matriz

Ann e o produto elementar a1j1a2j2...anjn

multipli ado por 1 ou +1. Usa-se o sinal se (j1, j2, ..., jn) for uma permuta ~ao mpar e
o sinal + se (j1, j2, ..., jn) for uma permuta ~ao par.
Exemplos:

a
11
a)
a21


a11

b) a21

a31


a12
= a11a22 a12a21
a22


a12 a13

a22 a23 = a11a22a33+a21a32a13+a31a12a23a13a22a31a23a32a11a33a12a21

a32 a33

Propriedades da Fun
c
ao Determinante:

Teorema 1: Se A for uma matriz quadrada qualquer, ent~ao det(A) = det(At).


Teorema 2: Se A e B forem matrizes quadradas de mesmo tamanho, ent~ao det(AB) =
det(A)det(B).
Teorema 3: Uma matriz A e inversvel se, e somente se, det(A) 6= 0.

4.1

Geometria em Duas Dimens


oes

4.1.1

Ponto

Um ponto P no plano pode ser lo alizado por meio do sistema de oordenadas retangular e do sistema
de oordenadas polar, ilustrados na gura 4.1.
y
b

y
P(a,b)

a
x
(a) retangular

(b) polar

Figura 4.1: Sistemas de oordenadas.

em que e o ^angulo medido no sentido anti-horario.


4.1.2

Reta

 forma expl ita: y = mx + b, em que m e a in lina ~ao da reta e b e ponto de interse  ~ao no eixo

y, onforme ilustrado na gura 4.2. Uma desvantagem e que retas verti ais, tais omo x = 1,

n~ao podem ser representadas por essa express~ao.


Algebra
Linear

37

y
y = mx + b

m = tan

x
Figura 4.2: Forma expl ita da reta.

 forma impl ita: expressa em termos de dois pontos (x1, y1) e (x2, y2) perten entes a reta ( -

gura 4.3, tal que


y y1
x x1
=
(x2 x1)(y y1) = (y2 y1)(x x1)
x2 x1
y2 y1

Se x2 = x1 e y2 6= y1, obtem-se a equa ~ao da reta verti al x = x1.


y
y2
y1
x1

x2 x

Figura 4.3: Forma impl ita da reta.

 forma perpendi ular: x os + y sen = d, em que d e a dist^an ia perpendi ular da origem a

reta e e o ^angulo da reta perpendi ular om rela ~ao ao eixo x ( gura 4.4).
y

x
Figura 4.4: Forma perpendi ular da reta.

 oordenadas polares: r os( ) = d

( gura 4.5)

 equa ~
ao parametri a: a reta ax + by + c = 0 possui as seguintes equa ~oes parametri as:

x = x1 + t(x2 x1)
y = y1 + t(y2 y1)

38

Computa
c
ao Gr
afica

H
elio Pedrini

y
P
r

Figura 4.5: Forma polar da reta.

em que o ponto P(x, y) divide a reta unindo P1 e P2 om raz~ao t : 1 t, omo mostrado na


gura 4.6.
y

1
P2

t
P
P1
Q

x
Figura 4.6: Forma parametri a da reta.

O resultado anterior pode ser veri ado atraves da similaridade entre os tri^angulos P1PQ e
P1P2R.
4.1.3

Equac
oes entre Pontos e Retas

 dist^
an ia entre dois pontos P1(x1, y1) e P2(x2, y2)

d=

(x1 x2)2 + (y1 y2)2

 dist^
an ia entre ponto P1(x1, y1) e a reta ax + by + c = 0

d=

(ax1 + by1 + c)2


a2 + b2

 interse  ~
ao de duas retas a1x + b1y + c1 = 0 e a2x + b2y + c2 = 0

x=

b1c2 b2c1
a1b2 a2b1

y=

c1a2 c2a1
a1b2 a2b1

a menos que a1b2 = a2b1, aso onde as retas s~ao paralelas (ou id^enti as)
 ^
angulo entre duas retas, a1x + b1y + c1 = 0 e a2x + b2y + c2 = 0

= ar os q

a1a2 + b1b2
(a21 + b21)(a22 + b22)


Algebra
Linear

39

 duas retas s~
ao paralelas se

a1b2 = a2b1

ou

m1 = m2

ou

m1m2 = 1

 duas retas s~
ao perpendi ulares se

a1a2 + b1b2 = 0

4.2
4.2.1

Geometria em Tr
es Dimens
oes
Ponto
z
P(x,y,z)

Figura 4.7: Sistema de oordenadas retangular.

z
P( r, ,z)

0
eixo de
referncia

x2 + y2
y
= tan1
x
x = r os
r=

y = r sen

(r,)

Figura 4.8: Sistema de oordenadas ilndri o.

x = sen os

P(, , )

0
eixo de
referncia

y = sen sen

Figura 4.9: Sistema de oordenadas esferi o.

z = os
0

0 2

40

Computa
c
ao Gr
afica

4.2.2

H
elio Pedrini

Reta

 equa ~
ao parametri a:

x = x1 + t(x2 x1)
y = y1 + t(y2 y1)
z = z1 + t(z2 z1)

em que o ponto P(x, y, z) divide a reta unindo P1(x1, y1, z1) e P2(x2, y2, z2) om raz~ao t : 1 t.

4.3

Se
c
oes C
onicas

A equa ~ao geral de uma se ~ao ^oni a e representada pela forma quadrati a
Ax2 + Bxy + Cy2 + Dx + Ey + F = 0

em que A, B, C, D, E e F s~ao onstantes e ao menos uma entre A, B e C e n~ao nula.


A representa ~ao gra a dessa equa ~ao mostra urvas planas, denominadas ^oni as (se ~oes de um
one por um plano) onforme os valores de seus oe ientes A, B e C.
A express~ao geral a ima pode tambem ser de nida omo uma matriz M e por um vetor v =
(x, y, 1)T omo

v Mv

A B/2 D/2

M=
B/2
C
E/2

D/2 E/2
F

Note que M e simetri a om rela ~ao a diagonal prin ipal. Os oe ientes A, B, C, D, E e F uni amente identi am uma urva. A urva e
 um r ulo se B = 0 e A = C
 uma elipse se B2 4AC < 0
 uma hiperbole se B2 4AC > 0
 uma par
abola se B2 4AC = 0

1. Cr ulo: a equa ~ao impl ita de um r ulo om entro em (x0, y0) e raio r e dado por
(x x0)2 + (y y0)2 = r2

parametri a: x = x0 + r sen(t)

y = y0 + r os(t)

2. Elipse: a equa ~ao de uma elipse om entro em (x0, y0), omprimento do semi-eixo maior a e
omprimento do semi-eixo menor b e
(x x0)2 (y y0)2
+
=1
a2
b2


Algebra
Linear

41

1111
0000
0000
1111
0000
1111

1111
0000
0000
1111
0000
1111
(a) r ulo

1111
0000
0000
1111
0000
1111
0000
1111
0000
1111

11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
111111
000000
000000
111111
000000
111111
000000
111111
000000
111111
( )

(b) elipse

(d) parabola

hiperbole

Figura 4.10: Se o~es ^oni as.

parametri a: x = x0 + a sen(t)

y = y0 + b os(t)

3. Hiperbole: a equa ~ao de uma hiperbole om entro em (x0, y0) e


(x x0)2 (y y0)2

=1
a2
b2

parametri a: x = x0 + a ose (t)

y = y0 + b sen(t)

4. Parabola: a equa ~ao de uma parabola om entro em (x0, y0) e


(x x0)2 = 4p(y y0)

parametri a: y = ac2t2 + b
y

y
r

y
b
a
(h,k)

b a
(h,k)

(h,k)

p
p (h,k)

(a) r ulo

(b) elipse

( ) hiperbole

Figura 4.11: Se o~es ^oni as.

4.4

Vetores

Vetores s~ao entidades possuindo magnitude e dire ~ao

(d) parabola

42

Computa
c
ao Gr
afica

H
elio Pedrini

Um vetor v no espa o n-dimensional pode ser de nido omo uma n-tupla v = (v1, v2, . . . , vn) ou,
na forma de representa ~ao matri ial, omo:

v1


v2

v= .
..

vn

Exemplo: Vetores n~ao nulos, por exemplo em 2, podem ser representados geometri amente
atraves de segmentos de reta dire ionados. Esta representa ~ao geometri a e util para visualizar omo
as opera ~oes de adi ~ao e multipli a ~ao es alar fun ionam em 2. Dado um vetor n~ao nulo v = (v1, v2),
ele pode ser interpretado om um segmento de reta no plano de (0, 0) a (v1, v2), omo mostrado na
gura 4.12.
y
(v1,v2 )
v1

v
v2

Figura 4.12: Vetor em 2 .

4.5

Corpo Num
erico

Um orpo numeri o e um sub onjunto dos numeros omplexos, fe hado em rela ~ao as opera ~oes de
adi ~ao, subtra ~ao, multipli a ~ao e divis~ao ( om divisor diferente de zero). Ou seja, se K e um orpo
numeri o e x, y K, ent~ao x + y, x y e x.y s~ao tambem elementos de K, e se y 6= 0, ent~ao x/y K.
Exemplos de orpos numeri os: onjunto dos numeros omplexos, dos reais e dos ra ionais. O
onjunto dos numeros inteiros n~ao onstitui um orpo numeri o (mostre!).
Defini
c
ao: Um orpo numeri o K e um sub onjunto dos n
umeros omplexos tal que:
1. x, y K, ent~ao x + y K e x.y K
2. os numeros 0 e 1 s~ao elementos de K
3. x K, ent~ao x K
4. x K, om x 6= 0, ent~ao 1/x K
5. x, y, z K, ent~ao x + (y + z) = (x + y) + z, x(yz) = (xy)z
6. x, y K, temos que x + y = y + x e xy = yx
7. x, y, z K, temos que (x + y)z = xz + yz

(asso iatividade)

( omutatividade)
(distributividade)


Algebra
Linear

4.6

43

Espa
cos Vetoriais

Seja V um onjunto arbitrario de elementos sobre o qual se de nem duas opera ~oes: a soma e a
multipli a ~ao por es alares (numeros reais). Por soma, entende-se uma lei que asso ia a ada par
de elementos u e v em V um elemento u + v, hamado soma de u e v; e, por multipli a ~ao por
es alar, entende-se uma lei que asso ia a ada es alar a e a ada elemento u em V um elemento au,
hamado multiplo es alar de u por a. Se todos os elementos u, v, w em V e todos os es alares a e b
satis zerem os axiomas apresentados a seguir, ent~ao V e denominado espa o vetorial e tais elementos
em V , vetores.
1. se u e v forem elementos perten entes a V , ent~ao u + v perten era a V
2. u + v = v + u

( omutatividade)

3. u + (v + w) = (u + v) + w

(asso iatividade)

4. existe um elemento 0 perten ente a V , tal que 0 + u = u + 0 = u para todo u perten ente a V
5. para ada u perten ente a V existe um elemento u perten ente a V hamado negativo de u,
de modo que u + (u) = (u) + u = 0
6. se a for um numero real qualquer e u um elemento qualquer perten ente a V ent~ao au perten era
aV
7. a(u + v) = au + av

(distributividade)

8. (a + b)u = au + bu

(distributividade)

9. a(bu) = (ab)u
10. 1u = u
Exerccio: Provar que u + v = v + u.
Solu
c
ao: u + v = (u1, u2, ..., un) + (v1, v2, ..., vn) = (u1 + v1, u2 + v2, ..., un + vn) = (v1 + u1, v2 +
u2, ..., vn + un) = (v1, v2, ..., vn) + (u1, u2, ..., un) = v + u
Exemplo 1: O onjunto V = n om as opera ~oes usuais de soma e multipli a ~ao por es alar e

um espa o vetorial.
Exemplo 2: Os pontos sobre uma reta V passando pela origem em 3 formam um espa o vetorial
sob as opera ~oes usuais de soma e multipli a ~ao por es alar nos vetores de 3. O argumento baseia-se
no fato de que os pontos de V satisfazem as equa ~oes parametri as da forma
x = at
y = bt
z = ct

< t < +

Exemplo 3: O onjunto V de todas as matrizes m n om termos reais, juntamente om as

opera ~oes de soma de matrizes e multipli a ~ao por es alar, e um espa o vetorial. A matriz zero m n

44

Computa
c
ao Gr
afica

H
elio Pedrini

e o vetor 0, e se u for uma matriz Amn, ent~ao a matriz (A) orrespondera ao vetor (u) do axioma
5 a ima.
Exemplo 4: Seja V o onjunto das fun ~oes reais de nidas em toda a reta real. Se f = f(x) e
g = g(x) forem duas destas fun o~es e se k for um n
umero real qualquer, de ne-se a fun ~ao soma f + g
e o multiplo es alar kf por
(f + g)(x) = f(x) + g(x)
(kf )(x) = kf(x)

Em outras palavras, o valor da fun ~ao f + g em x sera obtido pela soma dos valores de f e de g
em x. O onjunto V e um espa o vetorial sob tais opera ~oes. O vetor zero, neste espa o, e a fun ~ao
onstante zero, isto e, a fun ~ao ujo gra o e uma reta horizontal passando pela origem.
Exemplo 5: Seja V o onjunto de todos os pontos (x, y) em 2 perten entes ao primeiro quadrante, isto e, pontos tais que x 0 e y 0. O onjunto V n~ao e um espa o vetorial sob as opera ~oes
usuais em 2, ja que os axiomas 5 e 6 n~ao se veri am. Para visualizar tal fato, observar que u = (1, 1)
perten e a V , mas (1)u = u = (1, 1) n~ao perten e a V ( gura 4.13).
y
V
(1,1)

(1,1)

Figura 4.13: Conjunto de pontos perten entes a V .


Exemplo 6: Seja V um onjunto onsistindo em um u
ni o elemento o qual e denotado por 0 e

de nido por
0+0=0
k0 = 0

 fa il on luir que todos os axiomas de espa o vetorial s~ao satisfeitos. Tal
para todos os es alares k. E
onjunto hama-se espa o vetorial nulo.

4.7

Subespacos

Defini
c
ao: O sub onjunto W de um espa o vetorial V hama-se subespa o de V , quando W por si

proprio e um espa o vetorial sob as opera ~oes de soma e multipli a ~ao por es alar de nidas em V .


Algebra
Linear

45

Em geral, deve-se testar os dez axiomas de espa o vetorial para mostrar que um onjunto W
juntamente om a soma e a multipli a ~ao por es alar onstituem um espa o vetorial. No entanto, se
W zer parte de um onjunto maior V (espa o vetorial), ent~ao n~ao havera ne essidade de veri ar
ertos axiomas para W , pois ja haviam sido herdados de V . O teorema abaixo esta rela ionado a este
fato.
Teorema: Se W for um onjunto om um ou mais vetores provenientes de um espa o vetorial V ,

ent~ao W sera um subespa o de V se, e somente se, as seguintes ondi o~es forem satisfeitas:
1. Se u e v forem vetores perten entes a W , ent~ao u + v perten era a W .
2. Se k for um es alar qualquer e u um vetor qualquer perten ente a W , ent~ao ku perten era a W .
Todo espa o vetorial V admite pelo menos dois subespa os. V e um subespa o de si mesmo e
o onjunto 0 que onsiste apenas no vetor zero (perten ente a V ) e um subespa o, que se hama
subespa o nulo.
Exemplo: Mostrar que o onjunto W de todas as matrizes 2 2, possuindo zeros na diagonal

prin ipal, e um subespa o do espa o vetorial M22 de todas as matrizes 2 2.

Solu a~o: Sejam

A=

"

0
a21

#
a12
0

B=

"

0
b21

#
b12
0

duas matrizes quaisquer perten entes a W e k um es alar qualquer. Ent~ao


kA =

"

0
ka21

#
ka12
0

A+B=

"

0
a21 + b21

#
a12 + b12
0

Como kA e A + B possuem zeros na diagonal prin ipal, on lui-se que perten em a W . Logo, W
e um subespa o de M22.

4.8

Combina
c
ao Linear

Defini
c
ao: Se V e um espa o vetorial sobre um orpo K, e v1, v2, . . . , vn s~ao vetores de V , dizemos

que w V e uma ombina ~ao linear de v1, v2, . . . , vn se existem es alares k1, k2, . . . , kn K tais que
w = k1v1 + k2v2 + . . . + knvn

Exemplo: Considerar os vetores u = (1, 2, 1) e v = (6, 4, 2) em 3. Mostrar que w = (9, 2, 7) e

uma ombina ~ao linear de u e v e que w = (4, 1, 8) n~ao e uma ombina ~ao linear de u e v.

Solu a~o: A m de que w seja uma ombina ~ao linear de u e v, e pre iso que existam es alares k1
e k2 de modo que w = k1u + k2v, ou seja
(9, 2, 7) = k1(1, 2, 1) + k2(6, 4, 2) = (k1 + 6k2, 2k1 + 4k2, k1 + 2k2)

46

Computa
c
ao Gr
afica

H
elio Pedrini

Equa ionando-se as omponentes orrespondentes, resulta em


k1 + 6k2 = 9
2k1 + 4k2 = 2
k1 + 2k2 = 7

Resolvendo-se tal sistema, obtem-se k1 = 3, k2 = 2 e, portanto,


w = 3u + 2v

Analogamente, para que w seja uma ombina ~ao linear de u e v, e pre iso existir es alares k1 e
k2 de modo que w = k1u + k2v, ou seja
(4, 1, 8) = k1(1, 2, 1) + k2(6, 4, 2) = (k1 + 6k2, 2k1 + 4k2, k1 + 2k2)

Equa ionando-se as omponentes orrespondentes, resulta em


k1 + 6k2 = 4
2k1 + 4k2 = 1
k1 + 2k2 = 8

Tal sistema de equa o~es e in onsistente (veri ar) e, portanto, tais es alares n~ao existem. Consequentemente, w n~ao e uma ombina ~ao linear de u e v.

4.9

Conjuntos Geradores

Defini
c
ao: Se v1, v2, . . . , vn forem vetores perten entes a um espa o vetorial V e se todo vetor

perten ente a V puder ser expresso omo uma ombina ~ao linear de v1, v2, . . . , vn, diz-se ent~ao que
tais vetores geram V .
Exemplo 1: Os vetores i = (1, 0, 0), j = (0, 1, 0) e k = (0, 0, 1) geram o espa o 3, pois todo vetor
(a, b, ) em 3 pode ser es rito omo
(a, b, c) = ai + bj + ck

que e uma ombina ~ao linear de i, j e k.


Exemplo 2: Os polin^omios 1, x, x2, x3, . . . , xn geram o espa o vetorial Pn, ja que ada polin^omio
p em Pn pode ser es rito omo
p = a0 + a1x + . . . + anxn

e uma ombina ~ao linear de 1, x, x2, x3, . . . , xn.


Exemplo 3: Veri ar se os vetores v1 = (1, 1, 2), v2 = (1, 0, 1) e v3 = (2, 1, 3) geram o espa o 3.
Deve-se examinar se um vetor arbitrario w = (w1, w2, w3) em 3 pode ser es rito omo uma
ombina ~ao linear
w = k1v1 + k2v2 + k3v3


Algebra
Linear

47

dos vetores v1, v2 e v3. Expressando-se tal equa ~ao em termos de omponentes, resulta em
(w1, w2, w3) = k1(1, 1, 2) + k2(1, 0, 1) + k3(2, 1, 3)

ou
k1 + k2+2k3 = w1
+k3 = w2

k1

2k1 + k2+3k3 = w3

O problema, portanto, reduz-se a veri ar se tal sistema e onsistente ou n~ao. O sistema sera
onsistente se, e somente se, a matriz dos oe ientes

1 1 2

A=
1 0 1
2 1 3

for inversvel. Como det(A) = 0, ent~ao A n~ao e inversvel e, onsequentemente, v1, v2 e v3 n~ao geram
3.

4.10

Independ
encia Linear

Defini
c
ao: Os vetores v1, v2, . . . , vn V s~ao

linearmente independentes se, dada uma ombina ~ao

linear k1v1 + k2v2 + . . . + knvn = 0, ent~ao ne essariamente k1 = k2 = . . . = kn = 0.


Se v1, v2, . . . , vn s~ao linearmente independentes, dizemos que o onjunto {v1, v2, . . . , vn} e linearmente independente.
Exemplo 1: O onjunto de vetores de S = {v1, v2, v3} onde v1 = (2, 1, 0, 3), v2 = (1, 2, 5, 1),
v3 = (7, 1, 5, 8) e linearmente dependente, pois 3v1 + v2 v3 = 0.
Exemplo 2: Os polin^omios p1 = 1 x, p2 = 5 + 3x 2x2 e p3 = 1 + 3x x2 formam um onjunto
linearmente dependente em P2, pois 3p1 p2 + 2p3 = 0.
Exemplo 3: Considerar os vetores i = (1, 0, 0), j = (0, 1, 0) e k = (0, 0, 1) em 3. Em termos de
omponentes, a equa ~ao vetorial
k1i + k2j + k3k = 0

torna-se
k1(1, 0, 0) + k2(0, 1, 0) + k3(0, 0, 1) = (0, 0, 0)

ou, de modo equivalente,


(k1, k2, k3) = (0, 0, 0)

Logo, k1 = k2 = k3 = 0 e o onjunto S = {i, j, k} e, portanto, linearmente independente.


Defini
c
ao: Por outro lado, os vetores v1, v2, . . . , vn V s~ao linearmente dependentes quando
existem es alares k1, k2, ..., kn, pelo menos um dos quais n~ao nulo, tais que k1v1+k2v2+. . .+knvn = 0.
Interpreta
c
ao Geom
etrica

48

Computa
c
ao Gr
afica

H
elio Pedrini

Os dois exemplos seguintes apresentam uma interpreta ~ao geometri a de depend^en ia linear em
2 e em 3.
Exemplo 1: Dois vetores v1 e v2 formam um onjunto linearmente dependente se, e somente se,
um dos vetores for um multiplo es alar do outro. Para entender a raz~ao, suponha que S = {v1, v2}
seja linearmente dependente. Como a equa ~ao vetorial k1v1 + k2v2 = 0 admite uma solu ~ao diferente
de k1 = k2 = 0, a equa ~ao podera ser rees rita omo
v1 =


k1

v2
k2

ou

v1 =


k1

v2
k2

Ou seja, isto diz que v1 e um multiplo es alar de v2, ou v2 e um multiplo de v1. Segue-se que
dois vetores em 2 ou 3 s~ao linearmente dependentes se, e somente se, perten erem a mesma reta
passando pela origem ( gura 4.14).
y

v2

v1

v1

v1

v2

v2
x

x
z

z
(a) linearmente dependente

x
z

(b) linearmente dependente

( ) linearmente independente

Figura 4.14: Dois vetores em 3 .


Exemplo 2: Se v1, v2 e v3 forem tr^es vetores em 3, ent~ao o onjunto S = {v1, v2, v3} sera

linearmente dependente se, e somente se, os tr^es vetores perten erem a um mesmo plano que passa
pela origem e quando forem olo ados de forma que seus pontos ini iais oin idam na origem. Isto
o orre porque se v1, v2 e v3 s~ao linearmente dependentes ent~ao pelo menos um dos vetores e uma
ombina ~ao linear dos outros dois ou, de modo equivalente, pelo menos um dos vetores perten e ao
espa o gerado pelos outros dois. Mas o espa o gerado por dois vetores quaisquer em 3 ou e uma
reta que passa pela origem, ou um plano que passa pela origem, ou ent~ao a propria origem. Em
qualquer aso, o espa o gerado por dois vetores em 3 perten era a um plano que passa pela origem
( gura 4.15).
y

v2

v2
x
z

v1

v3

v3

v1
(a) linearmente dependente

v2
x

v1
(b) linearmente dependente

Figura 4.15: Tr^es vetores em 3 .

x
z

v1
( ) linearmente independente


Algebra
Linear

4.11

49

Base e Dimens
ao

Defini
c
ao: Se V for um espa o vetorial qualquer e S = {v1, v2, v3} um onjunto nito de vetores

perten entes a V , S sera hamado base de V se:


1. S for linearmente independente
2. S gerar V
 simples mosExemplo 1: Sejam v1 = (1, 0, 0, . . . , 0), v2 = (0, 1, 0, . . . , 0) e vn = (0, 0, 0, . . . , 1). E
trar que S e um onjunto linearmente independente em n. Como qualquer vetor v = (v1, v2, . . . , vn)
em n pode ser es rito omo w = w1v1 + w2v2 + . . . + wnvn, on lui-se que S gera o espa o n e,
portanto, e uma base, que se hama base an^oni a de n.
Exemplo 2: Sejam v1 = (1, 2, 1), v2 = (2, 9, 0) e v3 = (3, 3, 4). Mostrar que o onjunto S =
{v1, v2, v3} e uma base de 3.

Para mostrar que S gera o espa o 3, deve-se mostrar que um vetor arbitrario w = (w1, w2, w3)
pode ser expresso omo uma ombina ~ao linear
w = k1v1 + k2v2 + k3v3

dos vetores em S. Expressando-se tal equa ~ao em termos de omponentes, resulta em


(w1, w2, w3) = k1(1, 2, 1) + k2(2, 9, 0) + k3(3, 3, 4)

ou
k1 + 2k2+3k3 = w1
2k1 + 9k2+3k3 = w2
k1

+4k3 = w3

Portanto, para mostrar que S gera V , deve-se demonstrar que o sistema a ima admite uma solu ~ao
para quaisquer valores de w = (w1, w2, w3). Para provar que S e linearmente independente, deve-se
mostrar que a uni a solu ~ao de
k1v1 + k2v2 + k3v3 = 0

e k1 = k2 = k3 = 0.
Pode-se provar que S e linearmente independente e gera o espa o 3, demonstrando-se que a
matriz dos oe ientes

1 2 3

A = 2 9 3

1 0 4

e inversvel. Como det(A) = 1, ent~ao A e inversvel. Logo, S e uma base de 3.

50

Computa
c
ao Gr
afica

4.12

H
elio Pedrini

Opera
c
oes

 igualdade: dois vetores s~


ao iguais quando possuem a mesma magnitude e dire ~ao.

y
(a+v1, b+v2 )
v

(v1 , v2 )

(a,b)
(0,0)

Figura 4.16: Igualdade entre vetores.

 adi ~
ao: a adi ~ao de dois vetores v = (v1, v2) 2 e w = (w1, w2) 2 e de nida por

v + w = (v1 + w1, v2 + w2).

v+w
v
x

Figura 4.17: Adi ~ao de vetores.

se ambos v e w est~ao posi ionados na origem e um paralelogramo e formado omo ilustrado


a ima, as diagonais do paralelogramo representar~ao a soma v + w.
 nega ~
ao: o vetor v e de nido omo o vetor possuindo a mesma magnitude de v, mas om

dire ~ao oposta.


y

y
v
x

Figura 4.18: Nega ~ao de vetor.

 multipli a ~
ao es alar: o vetor v e um vetor possuindo a mesma dire ~ao de v, mas a magnitude

de v e multipli ada por


 Norma, magnitude ou omprimento de um vetor
q
2 : kvk = v21 + v22
q
3
: kvk = v21 + v22 + v23


Algebra
Linear

51

2v

v
x

Figura 4.19: Multipli a ~ao es alar.

(v1 , v2 )
x

Figura 4.20: Norma de vetor em 2 .

(v1 , v2 , v3)

x
z
Figura 4.21: Norma de vetor em 3 .

 Vetor unit
ario: e um vetor ujo omprimento e 1 (um vetor unitario e tambem hamado de vetor

normalizado). Para normalizar um vetor v, deve-se fazer


v =

v
kvk

Em 3, os vetores unitarios i, j e k s~ao de nidos omo


i = (1, 0, 0)

j = (0, 1, 0)

k = (0, 0, 1)

Ent~ao, todo vetor pode ser es rito omo uma ombina ~ao linear de i, j e k. Por exemplo, se
v = (x0, y0, z0), tem-se:
v = (x0, y0, z0) = (x0, 0, 0) + (0, y0, 0) + (0, 0, z0) =
= x0(1, 0, 0) + y0(0, 1, 0) + z0(0, 0, 1) = x0 i + y0 j + z0 k

52

Computa
c
ao Gr
afica

H
elio Pedrini

 Produto Es alar:

Dados dois vetores em n, v = (v1, v2, . . . , vn) e w = (w1, w2, . . . , wn), o produto entre v e w
e dado por:
v w = v1w1 + v2w2 + v3w3 + . . . + vnwn =

n
X

viwi

i=1

 ^
angulo entre dois vetores

u v = kukkvk os

ou seja
os =

uv
kukkvk

vu
u

^
Figura 4.22: Angulo
entre dois vetores.

Prova: lei dos ossenos


kv uk2 = kuk2 + kvk2 2kukkvk os

(v1 u1)2 + (v2 u2)2 = u21 + u22 + v21 + v22 2kukkvk os


2u1v1 2u2v2 = 2kukkvk os
u1v1 + u2v2 = kukkvk os
u v = kukkvk os

Obs.: o ^angulo entre u e v orresponde ao menor ^angulo entre os vetores (0 )


u

^
Figura 4.23: Angulo
entre vetores.
Exerccio 1: Determinar o ^angulo entre a diagonal de um ubo e um de seus lados.
Solu
c
ao: Seja l o omprimento de um lado.


Algebra
Linear

53
y
(0,l,0)

u2

(1,0,0)
u1

u3

(0,0,l)
z

^
Figura 4.24: Angulo
entre a diagonal e um dos lados de um ubo.

Sendo u1 = (l, 0, 0), u2 = (0, l, 0) e u3 = (0, 0, l), ent~ao o vetor


d = (l, l, l) = u1 + u2 + u3

sera uma diagonal do ubo. O ^angulo entre d e o lado u1 satisfaz


os =

1
l2
u1 d
=
=
2
ku1kkdk
3
l( 3l )

Logo
= os

54

Exerccio 2: Determinar o ^angulo entre as diagonais de duas fa es adja entes de um ubo.


Solu
c
ao: Seja l o omprimento de um lado.
z

^
Figura 4.25: Angulo
entre diagonais de fa es adja entes de um ubo.

Tomando as diagonais (ver gura) representada pelos vetores u = (0, l, l) e v = (l, 0, l), o ^angulo
formado entre u e v e
os =

uv
1
l2
(0, l, l) (l, 0, l)

=
=
=
2
2
2
2
2
2
2
kukkvk
2
(l 2)
0 +l +l l +0 +l

Logo
= os

 
1
= 60
2

54

Computa
c
ao Gr
afica

H
elio Pedrini

Teorema: Sejam u e v dois vetores em um espa o bi ou tridimensional.

(a) v v = kvk2, isto e, kvk = (v v)1/2


(b) se u e v forem vetores n~ao-nulos e se for o ^angulo entre eles, ent~ao:
sera agudo se, e somente se, u v > 0
sera obtuso se, e somente se, u v < 0

=
se, e somente se, u v = 0. Nesse aso, os vetores u e v s~ao denominados
2

ortogonais.

vetores

Demonstra ~ao:
(a) Como o ^angulo entre v e v e 0, tem-se que
v v = kvkkvk os = kvk2 os 0 = kvk2

(b) Como kuk > 0, kvk > 0 e u v = kuk kvk os , u.v tera o mesmo sinal que os . Como
satisfaz 0 , o ^angulo sera agudo se, e somente se, os > 0; sera obtuso se, e somente

se, os < 0 e = se, e somente se, os = 0.


2
Propriedades do produto escalar

Sejam u, v e w vetores em 2 ou 3 e k um es alar, ent~ao


a) u v = v u

( omutatividade)

b) u (v + w) = uv + uw

(distributividade)

) k(u v) = (ku) v = u (kv)

d) v v 0 (v v = 0 se, e somente se, v = 0)


- Desigualdade de Cau hy-S hwartz:
Para quaisquer vetores u e v em n, |u v| kukkvk
- Desigualdade Triangular:
Para quaisquer vetores u e v em n, ku + vk kuk + kvk
Prova: ambos os lados da desigualdade s~ao n~ao negativos:
ku + vk2 = (u + v) (u + v)
= u u + 2(u v) + v v
kuk2 + 2|u v| + kvk2

kuk2 + 2kukkvk + kvk2

= (kuk + kvk)2
 Produto Vetorial


Algebra
Linear

55

O produto vetorial entre dois vetores u = (u1, u2, u3) e v = (v1, v2, v3) em 3 e de nido omo
u v = (u2v3 u3v2, u3v1 u1v3, u1v2 u2v1)

u2
uv=
v2



u
u3
1
,
v1
v3


u3 u1
,
v3 v1


u2

v2

Alternativamente, o produto vetorial entre dois vetores em 3 pode ser expresso atraves do
determinante:




j
k
i


u v = u1 u2 u3


v1 v2 v3

O produto vetorial u v e perpendi ular a u e a v.


u xv

Figura 4.26: Produto vetorial.

Portanto, u (u v) = v (u v) = 0.
Exemplo: Sejam os vetores de u = (1, 2, 2) e v = (3, 0, 1), ent~ao o produto vetorial




i j k


u v = 1 2 2 = 2i 7j 6k = (2, 7, 6)


3 0 1

Propriedades do produto vetorial

Sejam u, v e w vetores em 2 ou 3 e k um es alar, ent~ao


a) u v = (v u)
b) u (v + w) = (u v) + (u w)
) (u + v) w = (u w) + (v w)
d) k(u + v) = (ku) v = u (kv)
e) u 0 = 0 u = 0
f) u u = 0

56

Computa
c
ao Gr
afica

H
elio Pedrini

Rela
co
es entre produtos escalar e vetorial

Sejam u, v e w vetores em 2 ou 3, ent~ao


a) u (u v) = 0 (u v e ortogonal a u)

b) v (u v) = 0 (u v e ortogonal a v)
) ku vk2 = kuk2kvk2 (u v)2

(identidade de Lagrange)

d) u (v w) = (u w)v (u v)w

e) (u v) w = (u w)v (v w)u

Interpreta
c
ao Geom
etrica

Se u e v s~ao vetores no espa o, o produto vetorial u v tem uma interpreta ~ao geometri a.
ku vk = kukkvk sen

Demonstra ~ao: Tomando-se a identidade de Lagrange e o produto es alar entre u e v, tem-se


ku vk2 = kuk2kvk2 (u.v)2

= kuk2kvk2 kuk2kuk2 kvk2k( os )2


= kuk2kvk2(sen )2

Como 0 , segue que sen > 0, e portanto


ku vk = kukkvk sen


Area
de um paralelogramo: base altura
v
|| v||

|| v|| sen

u
|| u||

Figura 4.27: Area
de paralelogramo.

Como a altura do paralelogramo e kvk sen , a area do paralelogramo e kukkvk sen = ku vk.

 Area
de um tri^angulo
=

1
1
1
AC AB sen = b a sen = ka bk
2
2
2

 Produto Triplo

O produto triplo e o produto es alar de um vetor kA Bk por um vetor C, es rito omo

(A B) C


Algebra
Linear

57

B
a

A B sen


Figura 4.28: Area
de tri^angulo.

O produto triplo e um es alar e pode ser visto omo o volume de um paraleleppedo, onforme
ilustrado na gura 4.29.
AxB
||C|| cos

C
B
rea da base: ||A x B||
A

Figura 4.29: Produto triplo.

O produto triplo tambem pode ser es rito na forma de determinante






a1 a2 a3


(A B) C = b1 b2 b3


c1 c2 c3

A magnitude do produto vetorial de dois vetores e a area de um paralelogramo formado por


estes vetores: se A e B s~ao vetores, ent~ao kA Bk e a area do paralelogramo om lados A e B.
O produto vetorial pode ser al ulado a partir do determinante:


i

A0


Bo

Exerccio:

j
A1
B1



k

A2 = (A1 B2 A2 B1 )i + (A2 B0 A0 B2 )j + (A0 B1 A1 B0 )k

B2

Cal ular a area do tri^angulo formado pelos pontos P1(2, 2, 0), P2(1, 0, 2) e

P3(0, 4, 3).

Solu ~ao: a area de um tri^angulo pode ser vista omo a metade da area de um paralelogramo, ou
seja, 12 ku vk. O paralelogramo e formado pelos vetores P1P2 e P1P3. Ent~ao
1
1
1

= kP1P2 P1P3k = (10, 5, 10) = 15 = 7.5
Area
2

4.13

Algumas Aplica
c
oes de Determinantes

1. produto vetorial
2. area e volume de paralelogramo

58

Computa
c
ao Gr
afica

H
elio Pedrini

3. retas e planos
Suponha dois pontos distintos (x1, y1) e (x2, y2) em um plano. A reta que passa por esses pontos
e da forma geral ax+by+c = 0. Como os pontos est~ao sobre a reta, suas oordenadas satisfazem
a equa ~ao. Assim
ax1 + by1 + c = 0
ax2 + by2 + c = 0

As equa ~oes podem ser vistas omo um sistema de equa ~oes lineares nas variaveis a, b e c.
Como existe uma solu ~ao n~ao trivial (pois a reta existe), a matriz dos oe ientes n~ao pode ser
inversvel:




x y 1


x1 y1 1




x2 y2 1

onsequentemente, seu determinante deve ser zero. Assim, a equa ~ao da reta que passa pelos
pontos (x1, y1) e (x2, y2) e dada por

Exerccios





x y 1


x1 y1 1 = 0




x2 y2 1

1. En ontre a equa ~ao da reta que passa pelos pontos (2, 3) e (1, 0).
2. Prove que tr^es pontos (x1, y1), (x2, y2) e (x3, y3) s~ao olineares se, e somente se




x1 y1 1


x2 y2 1 = 0




x3 y3 1

3. Mostre que a equa ~ao do plano que passa pelos tr^es pontos n~ao olineares (x1, y1, z1), (x2, y2, x2)
e (x3, y3, z3) e dada por

4.14

x y z


x1 y1 z1


x2 y2 z2

x3 y3 z3

1

1
=0
1

1

Retas e Planos no Espa


co Tridimensional

Um metodo para des rever a in lina ~ao de um plano e espe i ar um vetor n~ao nulo, hamado vetor
normal, que e perpendi ular ao plano. Suponha que queremos en ontrar a equa ~ao do plano que
 evidente pela gura a
passa pelo ponto P0(x0, y0, z0) e que tenha o vetor normal n = (a, b, c). E


Algebra
Linear

59

seguir que o plano onsiste pre isamente nos pontos P(x, y, z) para os quais o vetor P0P e ortogonal a
n, ou seja

n P0P = 0
(4.1)
z

P(x,y,z)

Po
x

Figura 4.30: Vetor normal.

Como P0P = (x x0, y y0, z z0), a equa ~ao 4.1 pode ser rees rita omo
(4.2)

a(x x0) + b(y y0) + c(z z0) = 0

onhe ida omo a forma ponto-normal da equa ~ao de uma reta.


Exemplo: Equa ~ao do plano que passa pelo ponto (3, 1, 7) e e perpendi ular ao vetor n =
(4, 2, 5)

Solu ~ao: 4(x 3) + 2(y + 1) 5(z 7) = 4x + 2y 5z + 25 = 0


Teorema: Se a, b, c e d s~ao onstantes e a, b e c n~ao s~ao todas nulas, ent~ao o gra o da equa ~ao
ax + by + cz + d = 0 e um plano em um vetor normal n = (a, b, c).
Exer  io: En ontre a equa ~ao de um plano passando pelos pontos P1(1, 2, 1), P2(2, 3, 1) e
P3(3, 1, 2).
Solu ~ao: Como os tr^es pontos est~ao no plano, suas oordenadas devem satisfazer a equa ~ao geral
ax + by + cz + d = 0 do plano. Assim
a + 2b c + d = 0
2a + 3b + c + d = 0
3a b + 2c + d = 0

Resolvendo o sistema
a=

9
t
16

b=

16
t

c=

5
t
16

d=t

Tomando-se, por exemplo, t = 16, resulta a equa ~ao desejada 9x + y 5z 16 = 0

Captulo 5

Transformac
oes Geom
etricas

Defini
c
ao: Sejam V e W dois espa os vetoriais sobre um mesmo orpo K. Uma

linear T

transforma ~ao

: V W e uma fun ~ao de V em W que satisfaz as propriedades:

1) T (u + v) = T (u) + T (v) para todos os vetores u e v perten entes a V .


2) T (ku) = kT (u) para todos os vetores u perten entes a V e para todos os es alares k.
Exemplo 1: Seja T uma fun ~ao de nida omo T (u) = 3u, u 2.

Desde que

T (u + v) = 3(u + v) = 3u + 3v = T (u) + T (v)

e
T (ku) = 3(ku) = k(3u) = kT (u)

ent~ao T e uma transforma ~ao linear.


Exemplo 2: Considere a fun ~ao T de nida omo T (u) = (u1, u2), para ada u = (u1, u2) 2.
Desde que
T (u + v) = (u1 + v1, (u2 + v2)) = (u1, u2) + (v1, v2)) = T (u) + T (v)

e
T (ku) = (ku1, ku2) = k(u1, u2) = kT (u)

ent~ao T e uma transforma ~ao linear.


Exemplo 3: Considere a fun ~ao T de nida omo T (u) = u + p, onde p e um vetor n~ao nulo em
2.
Desde que
T (u + v) = (u + v) + p = (u + p) + v = T (u) + v 6= T (u) + T (v)

ent~ao T n~ao e uma transforma ~ao linear.


Exemplo 4: Considere a fun ~ao T : 2 3 de nida omo T (v) = (x, x + y, x y), onde v e
um vetor em 2.

62

Computa
c
ao Gr
afica

H
elio Pedrini

Se u = (x1, y1) e v = (x2, y2), ent~ao u + v = (x1 + x2, y1 + y2), onde


T (u + v) = (x1 + x2, [x1 + x2] + [y1 + y2], [x1 + x2] [y1 + y2])
= (x1, x1 + y1, x1 y1) + (x2, x2 + y2, x2 y2)
= T (u) + T (v)

e, se k for um es alar, ku = (kx1, ky1), onde


T (ku) = (kx1, kx1 + ky1, kx1 ky1)
= k(x1, x1 + y1, x1 y1)
= kT (u)

logo, T e uma transforma ~ao linear.


Exemplo 5: Sejam V e W dois espa os vetoriais quaisquer. A fun ~ao T : V W tal que T (v) = 0
para todo v perten ente a V e uma transforma ~ao linear hamada transformada zero. Para veri ar
que T e linear, observe que
T (u + v) = 0, T (u) = 0, T (v) = 0 e T (ku) = 0

Portanto,
T (u + v) = T (u) + T (v) e T (ku) = kT (u)
Exemplo 6: Seja T : Mnn R a transforma ~ao que leva uma matriz n n em seu determinante,

ou seja, T (A) = det(A).


Solu ~ao: se n > 1, ent~ao a transforma ~ao n~ao satisfaz nenhuma das duas possibilidades requeridas
por uma transforma ~ao linear. Em geral, det(A1 + A2) 6= det(A1) + det(A2). Alem disso, det(cA) =
cndet(A), tal que, em geral, det(cA) 6= c det(A). Assim, T n~ao e uma transforma ~ao linear.

Transforma ~oes geometri as s~ao a base de inumeras apli a ~oes gra as, permitindo a altera ~ao de
ara tersti as de desenhos, tais omo es ala e orienta ~ao.
As guras s~ao formadas por primitivas gra as, as quais t^em omo par^ametros oordenadas artesianas de pontos no espa o. As transforma ~oes agem sobre estas oordenadas, de modo que, ao
desenhar novamente estas primitivas om as novas oordenadas transformadas, o desenho tambem
a transformado.
A seguir ser~ao apresentados os tipos fundamentais de transforma o~es geometri as.

5.1

Transformac
oes Geom
etricas 2D

Escala

A transforma ~ao de es ala e obtida pela multipli a ~ao de todas as oordenadas que de nem o desenho
por fatores de es ala n~ao nulos. Estes fatores, no aso bidimensional, s~ao o fator de es ala horizontal
que multipli a as oordenadas referentes ao eixo x do sistema artesiano e o fator de es ala verti al
que multipli a as oordenadas referentes ao eixo y.

Transforma
co
es Geom
etricas

63

Chamando-se os fatores de es ala horizontal e verti al de Sx e Sy, respe tivamente, as oordenadas


(x , y ) obtidas pela transforma ~ao de es ala das oordenadas (x, y) valem
x = Sx x
y = Sy y

ou na forma matri ial

" #
x
y

"

#" #
x

Sx

Sy

ou

P = S P

2
1
1

4
(a) original

8
2
(b) apos es ala

Figura 5.1: Es ala.

Translac
ao

A transforma ~ao de transla ~ao orresponde a movimenta ~ao de uma gura para uma outra posi ~ao no
sistema de oordenadas, de modo que todos os pontos da imagem sejam deslo ados de uma mesma
dist^an ia em rela ~ao a sua posi ~ao anterior.
A transforma ~ao de transla ~ao e obtida adi ionando-se onstantes de transla ~ao a todas as oordenadas que de nem o desenho. No aso bidimensional, existem duas onstantes: uma referente ao
deslo amento paralelo ao eixo x e outra referente ao deslo amento paralelo ao eixo y. Chamando-se
estas onstantes, respe tivamente, de Tx e Ty, as oordenadas (x , y ) obtidas pela transla ~ao do ponto
de oordenadas (x, y) valem:
x = Tx + x
y = Ty + y

ou na forma matri ial

" #
x
y

"

Tx

Ty

" #
x
y

ou

P = T + P

Rotac
ao

A transforma ~ao de rota ~ao em torno da origem orresponde a movimenta ~ao de uma gura para
uma outra posi ~ao no sistema de oordenadas, de modo que todos os pontos da imagem mantenham
a mesma dist^an ia da origem que possuam antes da transforma ~ao. Para a obten ~ao de uma rota ~ao

64

Computa
c
ao Gr
afica

H
elio Pedrini

6
4
3
1
1

4
(a) original

3
6
(b) apos transla ~ao

Figura 5.2: Transla ~ao.

em torno de um ponto qualquer que n~ao a origem, deve-se fazer uma ombina ~ao de transforma ~oes
de transla ~ao e de rota ~ao em torno da origem.
O uni o par^ametro da transforma ~ao de rota ~ao e o ^angulo , que indi a o valor do deslo amento
angular no sentido anti-horario. Um exemplo de rota ~ao e mostrado na gura 5.3.
y
P

Figura 5.3: Rota ~ao de um ponto em torno da origem.

As oordenadas (x , y ) obtidas pela rota ~ao do ponto de oordenadas (x, y) de um ^angulo em


torno da origem s~ao:
x = x os y sen
y = x sen + y os

ou na forma matri ial


" #
x
y

os sen
=
sen os
"

#" #
x
y

ou

P = R P

Sendo r a dist^an ia de P a origem e o ^angulo que este segmento forma om o eixo x, tem-se que:
r=

x 2 + y2

x = r os
y = r sen

Transforma
co
es Geom
etricas

65
y

6
4
3
2
1

4
(a) original

x
2
(b) apos rota ~ao

Figura 5.4: Rota ~ao.

Como o novo ponto x , y deve manter a mesma dist^an ia da origem, o tamanho do segmento que
une este ponto a origem tambem deve valer r. Assim temos:
r=

x 2 + y 2

x = r os( + ) = r os os r sen sen


y = r sen( + ) = r os sen + r sen os

Desse modo, tem-se que:


x = x os y sen
y = x sen + y os

Reflex
ao ou Espelhamento

Uma re ex~ao em torno do eixo y e dada pela express~ao


x = x
y = y

y
P

P
x

P
y
(a)

(b)

Figura 5.5: Re ex~ao.

ou na forma matri ial

" #
x
y

"

1 0
0

#" #
x
y

ou

P = Ey P

66

Computa
c
ao Gr
afica

H
elio Pedrini

Uma re ex~ao em torno do eixo x e dada pela express~ao


x = x
y = y

ou na forma matri ial

" #
x
y

"

#" #
x

0 1

ou

P = Ex P

Cisalhamento

Um isalhamento om rela ~ao a oordenada x e dada pela express~ao


x = x + ay
y = y

ou na forma matri ial

" #
x
y

"

1 a
0 1

#" #
x
y

ou

P = Cx P

Um isalhamento om rela ~ao a oordenada y e dada pela express~ao


x = x
y = bx + y

ou na forma matri ial

" #
x
y

"

#" #
1 0 x

b 1

ou

P = Cy P

y
ay

x= x + ay

P
P

y= bx + y

bx
(a)

Figura 5.6: Cisalhamento.

(b)

Transforma
co
es Geom
etricas

5.2

67

Coordenadas Homog
eneas e Matrizes de Transformac
ao

Para a es ala, transla ~ao e rota ~ao, as matrizes de transforma ~ao s~ao respe tivamente:
P = S P
P = T + P
P = R P

Entretanto, a transla ~ao e tratada diferentemente ( omo uma soma) da es ala e rota ~ao, que s~ao
tratadas por meio de multipli a ~oes. Para que possamos ombinar fa ilmente essas transforma ~oes,
devemos poder tratar do mesmo modo todas as tr^es transforma ~oes de uma forma onsistente.
Se os pontos s~ao expressos em oordenadas homog^eneas, todas as tr^es transforma ~oes podem ser
tratadas omo multipli a o~es. Em oordenadas homog^eneas, adi ionamos um ter eira oordenada ao
ponto. Logo, ao inves de um ponto ser representado por um par de valores (x, y), ele e representado
por um tripla (x, y, W). Pelo menos uma das oordenadas homog^eneas ne essita ser diferente de zero,
assim (0, 0, 0) n~ao e permitido.
Se W e a oordenada n~ao zero, podemos dividir (x, y, W) por ela, obtendo o mesmo ponto
(x/W, y/W, 1). Os n
umeros x/W e y/W s~ao hamados de oordenadas artesianas do ponto homog^eneo. Usualmente, triplas representam pontos em um espa o 3D, mas agora est~ao sendo usadas
para representar pontos em 2D. Se homogeneizamos o ponto, ou seja, dividimos por W , obtemos
um ponto da forma (x, y, 1). Logo, os pontos homogeneizados formam o plano de nido pela equa ~ao
W = 1 no espa o (x, y, W). A gura 5.7 mostra esse rela ionamento.
W

X
Y

Plano W=1

Figura 5.7: O espa o de oordenadas homog^eneas XYW , om o plano W = 1 e o ponto P(X, Y, W) projetado
sobre o plano W = 1.

Como agora os pontos s~ao vetores de 3 elementos, as matrizes de transforma ~oes que multipli am
um ponto tambem pre isam ser de 3 3.
Translac
ao

A equa ~ao de transla ~ao em oordenadas homog^eneas torna-se:




x
1 0 Tx
x


y = 0 1 Ty y


1
0 0 1
1

68

Computa
c
ao Gr
afica

H
elio Pedrini

Assim, a equa ~ao pode ser representada omo


P = T P

O que a onte e se um ponto P e transladado por T1 para P e ent~ao e transladado por T2 para P ?
Intuitivamente esperamos que essas transla ~oes sejam equivalentes a T (Tx1 + Tx2 , Ty1 + Ty2 ). Ou seja,
se:
P = T1 P
P = T2 P

Substituindo a primeira equa ~ao na segunda, temos:


P = T2 T1 P

e a matriz produto das matrizes T1 e T2 e:

1 0 Tx2

1 0 Tx1

1 0 Tx1 + Tx2

0 1 Ty 0 1 Ty = 0 1 Ty + T y
1
1
2
2

0 0 1
0 0
1
0 0 1

Portanto, a transla ~ao e aditiva.

Essa transforma ~ao expressa pelas duas transforma ~oes e hamada de transforma ~ao de omposi ~ao. Podemos mostrar similarmente que e tambem possvel realizar omposi ~oes om a es ala e a
rota ~ao.

Escala

As equa ~oes de es ala s~ao representadas matri ialmente:




x
Sx 0 0
x


y = 0 S y 0 y


1
0 0 1
1

Assim, a equa ~ao pode ser representada omo

P = S P

O que a onte e se um ponto P e es alado por S1 para P e ent~ao e es alado por S2 para P ?
Intuitivamente esperamos que essas es alas sejam equivalentes a S(Sx1 .Sx2 , Sy1 .Sy2 ). Ou seja, se:
P = S1 P
P = S2 P

Transforma
co
es Geom
etricas

69

e substituindo
P = S2 S1 P

e a matriz produto das matrizes S1 e S2 e:

Sx
2
0

0
Sy2
0

0 Sx1

0
0
0
1


0
Sx .Sx
1 2

0
= 0
1
0

0
Sy1
0

Portanto, a es ala e multipli ativa.

0
Sy1 .Sx2
0

Rotac
ao

Finalmente, veri ando-se as equa ~oes de rota ~ao:

De nindo



os sen 0 x
x


y = sen os 0 y


1
0
0
1
1

os sen 0

R=
sen os 0
0

temos que:

P = R P

Como exer  io, mostre que duas rota ~oes s~ao aditivas.
Reflex
ao ou Espelhamento

A transforma ~ao de re ex~ao ou espelhamento, apli ada a um objeto, produz um objeto que e o
espelho do original. No aso de uma re ex~ao 2D, o espelho e gerado relativamente a um eixo de
re ex~ao apli ando uma rota ~ao de 180 no objeto em torno do eixo de re ex~ao. Por exemplo, pode-se
apli ar uma re ex~ao em torno da linha y = 0 (eixo x) usando a seguinte matriz de transforma ~ao:

0 1 0

0 0 1

Esta transforma ~ao mantem as oordenadas x do objeto inalteradas, porem inverte os valores das
oordenadas y, alterando a orienta ~ao espa ial do objeto.
Analogamente, pode-se de nir uma re ex~ao em torno do eixo y que inverteria as oordenadas x
do objeto.
Pode-se tambem de nir uma re ex~ao em torno de um eixo perpendi ular ao plano xy e passando,
por exemplo, pela origem do sistema de oordenadas, invertendo nesse aso ambas as oordenadas x

70

Computa
c
ao Gr
afica

H
elio Pedrini

y
1

Figura 5.8: Re ex~ao em torno do eixo x.

e y. A matriz de transforma ~ao e dada por:

1 0 0

0 1 0

0
0 1

A opera ~ao e ilustrada na gura 5.9. Observe que a matriz de re ex~ao a ima e id^enti a a matriz
de rota ~ao R() om = 180 , ou seja, o objeto esta apenas sofrendo uma rota ~ao de 180 em torno
da origem.
y
3
2
1
1

2
3

Figura 5.9: Re ex~ao em torno do eixo y = x.

A opera ~ao pode ser generalizada para adotar qualquer ponto de re ex~ao lo alizado no plano xy
e o efeito e o mesmo que apli ar uma rota ~ao de 180 em torno do ponto de refer^en ia da re ex~ao.
Cisalhamento

Shearing ou isalhamento e uma transforma ~ao que distor e o formato de um objeto. Uma distor ~ao
na dire ~ao x e produzida om a seguinte matriz de transforma ~ao:

1 a 0

0 1 0

0 0 1

Transforma
co
es Geom
etricas

71

As oordenadas do objeto s~ao transformadas da seguinte forma:


x = x + ay
y = y

Similarmente, a matriz

1 0 0

b 1 0

0 0 1

distor e o objeto ao longo do eixo y.

(a) original

(b) isalhamento em x

( ) isalhamento em y

Figura 5.10: Cisalhamento.

Qualquer numero real pode ser usado omo par^ametro. O resultado e que as oordenadas (x, y) s~ao
deslo adas horizontalmente segundo um valor propor ional a sua dist^an ia em torno do eixo x. Por
exemplo, se Cx e igual a 2, um quadrado sera transformado em um paralelogramo. Valores negativos
deslo am as oordenadas para a esquerda.
Pode-se gerar distor o~es na dire ~ao relativamente a outros eixos de refer^en ia y = yref om a
matriz

1 a ayref

0 1
0

0 0
1

produzindo as seguintes transforma ~oes sobre as oordenadas:


x = x + a(y yref)
y = y

Esta transforma ~ao deslo a as oordenadas de uma posi ~ao verti almente segundo um fator propor ional a sua dist^an ia da linha de refer^en ia x = xref.

72

Computa
c
ao Gr
afica

5.3

H
elio Pedrini

Propriedades da Matriz de Rotac


ao

a) avaliando-se o determinante da matriz de rota ~ao:




os sen


detR =
= os2 + sen2 = 1
sen os

b) suponha que desejamos apli ar uma rota ~ao no ponto P de volta para P, ou seja, realizar a
transforma ~ao inversa da rota ~ao. O ^angulo de rota ~ao requerido e, obviamente, . Da equa ~ao de
transforma ~ao de rota ~ao temos:
os() sen()
os sen
=
R1
=
sen() os()
sen os
#

"

"

desde que os() = os e sen() = sen .


) pode-se mostrar que a matriz R1 e a inversa de R re ordando que o produto de uma matriz e
sua inversa e a matriz identidade:
R.R1

os sen
=
sen os
"

"

#"

os sen
os2 + sen2
sen os sen os
=
sen os sen os
sen2 + os2
sen os
#

"

#
1 0
0 1

d) a transposta de R, denotada RT , e igual a inversa de R, R1:


os sen
= R1
R =
sen os
T

"

(5.1)

Portanto, a inversa de qualquer matriz de rota ~ao R e sua transposta. Desde que formalmente
a determina ~ao da inversa de uma matriz e omputa ionalmente mais ara do que determinar sua
transposta, o resultado a ima e importante e prati o.

5.4

Transformac
oes Geom
etricas 3D

Escala

Sx

0
S(Sx, Sy, Sz) =

0
0

Sy

Sz

0
1

Transforma
co
es Geom
etricas

73

Translac
ao

0
T (Tx, Ty, Tz) =

0
0

0 0 Tx

1 0 Ty

0 1 Tz
0 0 1

Rotac
ao

os sen 0 0

sen os 0 0

Rz() =

0
0

0
0

1 0
0 1

Isto e fa ilmente veri ado: uma rota ~ao de 90 de [1 0 0 1]T , o qual e o vetor unitario ao longo
do eixo x deve produzir o vetor unitario [0 1 0 1]T ao longo do eixo y. Avaliando o produto


1


0 0
0

1 0 0
0 1
1

0 1 0 0

0
0

0
0
0


0

1

resulta o valor

0
1

A matriz de rota ~ao ao longo do eixo x e:

1
0
0

0 os sen
Rx() =

0 sen os
0
0
0

0
1

A matriz de rota ~ao ao longo do eixo y e:

0 sen 0

0
1
0
0

Ry() =

sen 0 os 0
0
0
0
1

os

Reflex
ao

Em uma re ex~ao atraves do plano xy, apenas os valores de oordenadas z dos vetores de posi ~ao do
objeto sofrem altera ~ao (invers~ao de sinal). Portanto,

0 1 0 0

Exy =

0 0 1 0
0 0 0 1
1 0

74

Computa
c
ao Gr
afica

H
elio Pedrini

Uma re ex~ao atraves do plano yz e dada por

1 0 0 0

0 1 0 0

Eyz =

0 0 1 0
0 0 0 1

Uma re ex~ao atraves do plano xz e dada por

0 0

0 1 0 0

Exz =

0
0
1
0

0 0 0 1
1

Cisalhamento

1 a b 0

c 1 d 0

C=

e f 1 0
0 0

5.5

0 1

Composi
c
ao de Transformac
oes

Usaremos omposi ~ao omo uma ombina ~ao de matrizes de transforma ~ao T , S e R. O proposito
de se ompor transforma ~oes e o ganho de e i^en ia que se obtem ao apli armos uma transforma ~ao
omposta a um ponto em vez de apli armos uma serie de transforma ~oes, uma apos a outra.

Rotac
ao em torno de um ponto arbitr
ario

Considere a rota ~ao 2D de um objeto em torno de um ponto arbitrario P1. Sabemos apenas apli ar
a rota ~ao em um ponto em torno da origem. Assim, podemos dividir este problema de rota ~ao em 3
problemas simples, ou seja:
1) efetuar transla ~ao, levando P1 a origem;
2) efetuar a rota ~ao desejada;
3) efetuar transla ~ao oposta a realizada em (1), levando P1 a posi ~ao anterior.
Esta sequ^en ia e ilustrada na gura 5.11, onde o objeto sofre uma rota ~ao em P1(x1, y1). A
primeira transla ~ao e por (x1, y1) e a ultima transla ~ao (oposta a primeira) e por (x1, y1).

Transforma
co
es Geom
etricas
y

75

P1

P1

P1

P1

Figura 5.11: Composi ~ao de transforma o~es.

A transforma ~ao em sequ^en ia e:

os sen 0 1 0 x1

sen os 0 0 1 y1
T (x1, y1) R() T (x1, y1) =
0
1
y
1

1 0 x1
0 0

0 0

os sen x1(1 os ) + y1 sen

=
sen

os

y
(1

os
)

x
sen

1
1

0
0
1

Esse pro edimento pode ser usado de forma similar para se efetuar a es ala de um objeto em
rela ~ao a um ponto arbitrario P1. Primeiramente, o ponto P1 e transladado para a origem, ent~ao e
feita a es ala desejada e, ent~ao, o ponto P1 e transladado de volta. Dessa forma, a transforma ~ao em
sequ^en ia e:

Sx 0 x1(1 Sx)
Sx 0 0 1 0 x1
1 0 x1

T (x1, y1) Sxy T (x1, y1) =


0 1 y1 0 Sy 0 0 1 y1 = 0 Sy y1(1 Sy)
1
0 0
1
0 0 1 0 0
0 0 1

Vamos supor que se deseja apli ar as transforma ~oes de es ala, rota ~ao e transla ~ao em um objeto
onforme mostrado na gura 5.12, em que o ponto P1(x1, y1) e o entro da rota ~ao e da es ala. A
sequ^en ia de transforma ~oes aria a seguinte:
1) efetuar transla ~ao, levando P1 a origem;
2) efetuar a es ala e a rota ~ao desejadas;
3) efetuar transla ~ao da origem a nova posi ~ao P2, onde o objeto deve ser posi ionado.
y

y
P2

P1
x

Figura 5.12: Sequ^en ia de transforma o~es.

Cuidado: Ordem das Transforma


co
es

76

Computa
c
ao Gr
afica

H
elio Pedrini

A ordem na qual as transforma ~oes s~ao realizadas pode afetar o resultado nal. Considere, por
exemplo, a transla ~ao e a rota ~ao de um objeto. Observe a diferen a quando fazemos (a) uma rota ~ao
seguida de uma transla ~ao e (b) uma transla ~ao seguida de uma rota ~ao.
y

final
rotao

final
rotao

translao

translao

inicial

inicial

Figura 5.13: Ordem das transforma o~es.

Se M1 e M2 representam duas transforma ~oes fundamentais (es ala, transla ~ao ou rota ~ao), em
quais asos M1 M2 = M2 M1, ou seja, quando suas matrizes de transforma ~ao s~ao omutativas?
Sabemos que nem sempre a multipli a ~ao de matrizes e omutativa, entretanto, n~ao e dif il mostrar
que nos asos espe iais mostrados na tabela 5.1 a omutatividade existe. Nestes asos, a ordem das
matrizes de transforma ~ao n~ao e relevante.
M1

M2

Transla ~ao
Es ala
Rota ~ao
Es ala (Sx = Sy)

Transla ~ao
Es ala
Rota ~ao
Rota ~ao

Tabela 5.1: Ordem das transforma o~es.

Rotac
ao em torno de um eixo arbitr
ario

Um exemplo de omposi ~ao de transforma ~oes 3D e a rota ~ao de um objeto em torno de um eixo
arbitrario. Uma solu ~ao para esse problema e fazer om que o eixo de rota ~ao arbitrario oin ida om
um dos eixos de oordenadas. Seja o eixo arbitrario formado pelos pontos P1(x1, y1, z1) e P2(x2, y2, z2),
onforme a gura 5.14(a). A rota ~ao sobre esse eixo em um ^angulo e realizada por meio dos seguintes
passos:
1) transladar o ponto P1 para a origem do sistema de oordenadas;
2) apli ar rota o~es apropriadas tal que o eixo de rota ~ao oin ida om um dos eixos de oordenadas,
por exemplo, o eixo z;
3) apli ar rota ~ao no objeto ao longo do eixo z pelo ^angulo ;
4) apli ar inversa da rota ~ao ombinada;
5) apli ar inversa da transla ~ao no ponto P1.

Transforma
co
es Geom
etricas

77

Ini ialmente, um dos pontos do eixo, por exemplo, P1 e transladado para a origem, onforme a
gura 5.14(b). Em geral, fazer um eixo arbitrario que passa pela origem oin idir om um dos eixos
de oordenadas requer duas rota o~es su essivas ao longo dos outros dois eixos de oordenadas. Para
fazer o eixo de rota ~ao arbitrario oin idir om o eixo z ( gura 5.14( )), primeiro pode-se apli ar uma
rota ~ao sobre o eixo x e ent~ao sobre o eixo y. Para determinar o ^angulo de rota ~ao sobre o eixo x
usado para posi ionar o eixo arbitrario no plano xz, primeiro projeta-se o vetor unitario ao longo do
eixo sobre o plano yz, omo ilustrado na gura 5.14(d). Os omponentes y e z do vetor projetado s~ao
cy e cz, ou seja, os ossenos de dire ~ao do vetor unitario ao longo do eixo arbitrario. Da gura 5.14(d),
obtem-se que
q
c2y + c2z

d=

e tambem

os =
y

cz
d

sen =

cy
d
y

y
P2

P2

P1
P1
z

P1

(a)

(b)

P2
( )

z
cy

cx

cz

cx

P(c x,0,d)
y

O
y

d
x

(d)

(e)

Figura 5.14: Rota ~ao sobre eixo arbitrario.

Depois da rota ~ao sobre o eixo x no plano xz, o omponente z do vetor unitario e d e o omponente
x e cx, ou seja, o osseno dire ~ao da dire ~ao x, omo mostrado na gura 5.14(e). O omprimento do
vetor unitario, e laro, e igual a 1. Ent~ao, o ^angulo de rota ~ao ao longo do eixo y ne essario para
fazer om que o eixo arbitrario oin ida om o eixo z e
os = d

sen = cx

A transforma ~ao ompleta e ent~ao


1 1
M = T Rx Ry R R1
y Rx T

78

Computa
c
ao Gr
afica

H
elio Pedrini

em que a matriz de transla ~ao requerida e

1 0 0 x0

0 1 0 y0

T =

0 0 1 z0
0 0 0

A matriz de transforma ~ao para rota ~ao sobre o eixo x e

1
0
0

0 os sen
Rx =

0 sen os
0
0
0

e sobre o eixo y

os()

1
0
0

0
= 0 cz/d cy/d

0 0 cy/d cz/d
1
0
0
0
0

0 sen() 0

0
1
0
0

= 0
Rx =

sen() 0 os() 0 cx
0
0
0
1
0

0
1

0 cx 0

1
0
0

0 d 0
0
0
1

A rota ~ao ao longo do eixo arbitrario e dada pela matriz de rota ~ao no eixo z
os sen 0 0

sen os 0 0

R =
0
0

1 0
0 1

Finalmente, a transla ~ao de P1(x1, y1, z1) para a posi ~ao original e

1 0 0 x0

0 1 0 y0

T =

0 0 1 z0
0 0 0 1

5.6

Transformac
oes Afins

As transforma o~es vistas anteriormente (es ala, transla ~ao, rota ~ao, re ex~ao e isalhamento) s~ao asos
parti ulares das transforma ~oes a ns, uja forma artesiana no plano e dada por:
x = ax + by + e
y = cx + dy + f

ou na forma matri ial

" #
x
y

"
#" #
a b x
c d

" #
e
f

Transforma
co
es Geom
etricas

79

A vers~ao utilizando oordenadas homog^eneas e:




x
a b e
x


y = c d f y


1
1
0 0 1

Toda transforma ~ao a m preserva o paralelismo entre retas e planos. Em geral, as transforma ~oes
a ns n~ao preservam omprimentos, dist^an ias, areas, volumes, ^angulos ou perpendi ularidade. Podese mostrar, no entanto, que elas preservam a raz~ao entre os volumes de dois solidos, a raz~ao entre
as areas de duas guras planas oplanares ou paralelas, e a raz~ao entre os omprimentos de dois
segmentos olineares ou paralelos. Em parti ular, o ponto medio de um segmento e mapeado para o
ponto medio da imagem desse segmento.

5.7

N
umeros Complexos

Antes de des rever os quaternios, algumas onsidera ~oes importantes sobre numeros omplexos ser~ao
des ritas.
Imaginria

Imaginria

z = a + bi

z = a + bi

(a)

Real

(b)

Real

Figura 5.15: Numeros omplexos. (a) forma artesiana; (b) forma polar.

Um numero omplexo pode ser de nido na forma artesiana omo


z = a + bi

em que a e b perte em ao onjunto dos numeros reais e  e a unidade imaginaria. Nesta representa ~ao,
a e a parte real e y e hamada parte imaginaria do n
umero omplexo. A unidade imaginaria satisfaz
i2 = 1.
As opera ~oes de adi ~ao e produto de dois numeros omplexos z1 e z2 s~ao de nidas respe tivamente
omo
z1 + z2 = (a1 + b1 i) + (a2 + b2 i) = (a1 + a2) + (b1 + b2 i)
z1 z2 = (a1 + b1 i)(a2 + b2 i) = (a1a2 b1b2) + (a1b2 + b1a2) i

O onjugado de um numero omplexo, denotado z , e de nido omo


z = a b i

80

Computa
c
ao Gr
afica

H
elio Pedrini

A soma de um numero omplexo por seu onjugado e


z + z = (a + b i) + (a b i) = (a + a) + (b b)i = 2a

O produto de um numero omplexo por seu onjugado e


z z = (a + b i)(a b i) = a2 abi + abi b2i2 = a2 b2i2 = a2 + b2

A norma de um numero omplexo e


kzk =

a2 + b2

Outra representa ~ao de numero omplexos e na forma polar


z = ( os + i sen ) = ei

em que os + i sen = ei, dada pela formula de Euler.


As opera ~oes de adi ~ao e multipli a ~ao s~ao de nidas omo
z1 + z2 = 1ei1 + 2ei2 = 1 os 1 + 2 os 2 + i(1 sen 1 + 2 sen 2)
z1 z2 = 1ei1 2ei2 = 12ei(1 +2 )

O onjugado de um numero omplexo na forma polar e


z = ei

O produto de um numero omplexo pelo seu onjugado e


z z = eiei = 2eii = 2

Exer  io: Mostre que, para dois numeros omplexos z1 e z2: kz1z2k = kz1kkz2k
Prova: kz1z2k2 = (z1z2)(z1z2) = z1z2z1z2 = z1z1z2z2 = kz1k2kz2k2
Assim, kz1z2k = kz1kz2k

5.8

Quat
ernios

Numeros omplexos s~ao estendidos para dimens~oes mais altas usando quaternios:
q = s +xi + yj + zk

Transforma
co
es Geom
etricas

81

em que os oe ientes x, y e z nos termos imaginaveis s~ao numeros reais e o par^ametro s e um numero
real hamado parte es alar. Os par^ametros i, j e k s~ao de nidos om as propriedades:
i2 = j2 = k2 = 1
i j = j i = k
j k = k j = i
k i = i k = j
i jk = 1

A adi ~ao de quaternios e dada por


q1 + q2 = (s1 + s2) + (x1 + x2) i + (y1 + y2) j + (z1 + z2) k

A adi ~ao de quaternios e asso iativa e omutativa.


O produto de quaternios e dado por
q1 q2 = (s1 + x1 i + y1 j + z1 k)(s2 + x2 i + y2 j + z2 k)
= (s1s2 x1x2 y1y2 z1z2) + (s1x2 + x1s2 + y1z2 z1y2) i +
+ (s1y2 + y1s2 + z1x2 x1z2) j + (s1z2 + z1s2 + x1y2 y1x2) k

O produto de quaternios e asso iativo, porem, n~ao omutativo, ou seja, existem q1 e q2 tais que
q1 6= q2.
O onjugado de um quaternio e de nido omo

q = s x i y j z k

A norma de um quaternio e de nida omo


kqk =

qq =

p
s2 + x2 + y2 + z2

A inversa de um quaternio e avaliada usando a express~ao


q1 =

q
q
=
qq
kqk2

Se um quaternio tem norma igual a 1, diz-se que o quaternio e unitario. A inversa de um quaternio
unitario e seu onjugado, ou seja, q1 = q .
Um quaternio tambem pode ser representado omo um par ordenado
q = (s, v)

O par^ametro v e o vetor (x, y, z). Nessa nota ~ao, a adi ~ao de dois quaternios q1 e q2 torna-se
q1 + q2 = (s1 + s2, v1 + v2)

82

Computa
c
ao Gr
afica

H
elio Pedrini

O produto de dois quaternios q1 e q2 pode ser expresso de maneira relativamente ompa ta em


termos de produto es alar e produto vetorial:
q1 q2 = (s1s2 v1 v2, s1v2 + s2v1 + v1 v2)

A norma de um quaternio e de nida por analogia om opera ~oes de numero omplexo, usando a
seguinte soma dos quadrados dos omponentes do quaternio:
kqk2 = s2 + vv

A inversa de um quaternio e avaliada usando a express~ao


q1 =

1
(s, v), tal que qq1 = q1q = (1, 0)
kqk2

Quat
ernios e Rotac
oes no Espaco 3D

Como visto na se ~ao 5.5, a rota ~ao de um vetor no espa o pode ser representada por meio de uma
matriz obtida pelo produto de matrizes su essivas. Caso a rota ~ao seja efetuada em torno de um vetor
(eixo) arbitrario, uma de omposi ~ao deve ser realizada para alinhar o vetor em torno de um dos eixos
x, y ou z. Essa opera ~ao se torna mais simples om o uso de quaternios.
Um ponto P = (x, y, z) no espa o 3D pode ser representado pelo quaternio p = (0, P). A rota ~ao
do ponto P por um ^angulo em torno do vetor unitario u pode ser es rita pela seguinte transforma ~ao
p = qpq

em que o quaternio p tem a forma (0, P ).


Para realizar uma rota ~ao em torno do vetor unitario u, esta rota ~ao pode ser representada pelo
quaternio


q = (s, v) =

os , u sen

= os

+ u sen
2
2

Exemplo: Suponha a rota ~ao de 120 em torno do eixo u = i + j + k. Ent~ao


= 120 =

A norma de u e

2
3

3. Como deve-se onsiderar um quaternio unitario

+ u sen = os 60 + u sen 60
2
2

3 1 (i + j + k) 3
1

+
= +u
2
2 2
2
3
1+i+j+k
=
2


1 1 1 1
=
,( , , )
2 2 2 2

q = os

Transforma
co
es Geom
etricas

83

Composic
ao de Quat
ernios

A omposi ~ao de rota o~es pode ser des rita pelo produto de quaternios
r = pq

ent~ao
r(0, u)r = pq(0, u)(pq) = pq(0, u)q p = p(q(0, u)q )p

Assim omo visto anteriormente em omposi ~ao de rota ~oes, deve-se ter uidado om a ordem das
transforma ~oes. Na nota ~ao utilizada aqui, rota ~oes devem ser apli adas da direita para a esquerda.

Convers
ao de Quat
ernios na Forma Matricial

As rota o~es em sistemas gra os, tais omo o OpenGL, normalmente s~ao representadas por matrizes.
Dessa forma, deve-se transformar as rota ~oes espe i adas por quaternios em nota ~ao matri ial.
Dada uma rota ~ao espe i ada pelo quaternio q = (s, x, y, z), a matriz pode ser derivada do
produto qpq , resultando

1 2y2 2z2
2xy 2sz
2xz 2sy

2
2
2xy + 2sz
1 2x 2z
2yz 2sx
Mq =

2yz + 2sx
1 2x2 2y2
2xz 2sy
0
0
0

0
1

(5.2)

Inversamente, dada uma matriz de rota ~ao qualquer da forma

m11 m12 m13 0

m21 m22 m23 0

m31 m32 m33 0


0
0
0
1

pode-se al ular s asso iado ao quaternio observando que a soma da diagonal da matriz (ou seja, o
tra o da matriz) e dada por
4 2(2x2 + 2y2 + 2z2) = 1 + m11 + m22 + m33

Como o quaternio de rota ~ao e unitario, tem-se


x2 + y2 + z2 = 1 s2

ou seja
4 4(1 s2) = 1 + m11 + m22 + m33

assim
s=

1p
1 + m11 + m22 + m33
2

84

Computa
c
ao Gr
afica

H
elio Pedrini

De maneira similar, tem-se


m32 m23
4s
m13 m31
y=
4s
m21 m12
z=
4s
x=

Os al ulos envolvidos na matriz podem ser reduzidos substituindo valores expl itos para os
par^ametros s, x, y e z, ent~ao usar as seguintes igualdades trigonometri as para simpli ar os termos

sen2 = 1 2 sen2 = os
2
2
2

2 os sen = sen
2
2

os2

Ent~ao, rees revendo a matriz 5.2

uxuy(1 os ) uz sen uxuz(1 os ) + uy sen 0

uxuy(1 os ) + uz sen
u2y(1 os ) + os
uyuz(1 os ) ux sen 0

MR() =

2(1 os ) + os
u
u
(1

os
)

u
sen

u
u
(1

os
)
+
u
sen

u
0

x z
y
y z
x
z
0
0
0
1

u2x(1 os ) + os

em que ux, uy e uz s~ao as omponentes do vetor unitario u.


Exemplo: Realizar a rota ~ao sobre o eixo z onsiderando o vetor u omo o vetor unitario (0, 0, 1).
Substituindo os omponentes desse vetor na matriz MR(), obtem-se a matriz de rota ~ao Rz()
vista na se ~ao 5.4. Outra forma de al ular a rota ~ao e utilizar o quaternio
r = os

+ u sen = os + (0, 0, 1) sen


2
2
2
2

A rota ~ao de um ponto arbitrario P = (x, y, z) resulta no quaternio


p = qpq = q(0, P)q = (0, P )

em que P = (x os y sen , x sen + y os , z).


Assim, obtem-se o resultado esperado, porem om menos opera ~oes.
Considerac
oes sobre Desempenho

Quaternios requerem menos espa o de armazenamento omparado om uma matriz 4 4 e a es rita


de pro edimentos de quaternio para sequ^en ias de transforma ~ao e simples. Isto e parti ularmente
importante em anima ~oes que requerem movimentos ompli ados e interpola ~oes de movimento entre
duas dadas posi ~oes de um objeto.

5.9

Exerccios

1) Prove que duas rota ~oes 2D su essivas s~ao aditivas.

Transforma
co
es Geom
etricas

85

2) Prove que a rota ~ao e a es ala 2D s~ao omutativas se Sx = Sy.


3) Obter as matrizes de transforma ~ao 3 3 em oordenadas homog^eneas bidimensionais que exe utam as seguintes transforma ~oes, na ordem espe i ada:
a) rota ~ao de 30 em torno do ponto (4, 5); amplia ~ao de 2 vezes na dire ~ao x e de 4 vezes na
dire ~ao y;
b) transla ~ao para a direita de 4 unidades e para baixo de 2; rota ~ao de 45 em torno da
origem;
) espelhamento em rela ~ao a reta de nida pelos pontos (1, 3) e (1, 0); amplia ~ao de 3 vezes
em ambos os eixos.
4) Apli ar as matrizes obtidas no exer  io anterior sobre o tri^angulo delimitado pelos pontos
A = (1, 2), B = (3, 4) e C = (5, 6), obtendo os orrespondentes tri^angulos transformados.
5) Obter as matrizes de transforma ~ao 4 4 em oordenadas homog^eneas tridimensionais que
exe utam as seguintes transforma o~es:
a) transla ~ao de 4 unidades no eixo x, 5 no eixo y e -2 no eixo z; amplia ~ao de 3 vezes em
rela ~ao a origem do sistema de oordenadas;
b) rota ~ao de 30 em torno do eixo de nido pelos pontos (0, 0, 0) e (1, 2, 3).
6) Veri que que a matriz de rota ~ao

os sen
sen os

"

e igual a

os

os

"

#"

tan

#
tan
1

ou seja, qualquer rota ~ao em duas dimens~oes e uma ombina ~ao de es ala e isalhamento (verdadeiro para todos os ^angulos satisfazendo tan 6= ).

7) Es reva o quaternio que representa uma rota ~ao de 60 graus em torno do eixo (2, 1, 0) que passa
pela origem.

Captulo 6

Proje
c
oes Planares

O mapeamento de objetos tridimensionais em um dispositivo (imagem bidimensional) e onhe ido


omo proje ~ao geometri a. Quando a proje ~ao e realizada sobre um plano, em vez de uma superf ie
urva, ela e onhe ida omo proje ~ao geometri a planar.
Uma lassi a ~ao das proje ~oes planares e ilustrada na gura 6.1. As proje ~oes planares podem ser
divididas em duas ategorias basi as, as proje ~oes paralelas e as proje ~oes perspe tivas. Nas proje ~oes
paralelas, os raios de proje ~ao que interse tam os objetos tridimensionais s~ao paralelos entre si. As
proje ~oes paralelas podem ser ortogra a, axonometri a ou oblqua. Por outro lado, nas proje ~oes
perspe tivas, os raios de proje ~ao divergem de um ponto que esta a uma dist^an ia nita do plano de
proje ~ao e v~ao para o in nito.
Projees Geomtricas Planares

Paralela

Ortogrfica

Perspectiva

Axonomtrica

Oblqua

Cavalier

Trimtrica

Dimtrica

Cabinet

Isomtrica

Figura 6.1: Proje o~es geometri as planares.

6.1

Proje
c
oes Paralelas

Em proje ~oes paralelas, os raios de proje ~ao s~ao paralelos entre si. Dessa forma, retas paralelas no
objeto produzem retas paralelas no plano de proje ~ao. Quando os raios de proje ~ao interse tam o
plano de proje ~ao em ^angulo perpendi ular, a proje ~ao e denominada ortogra a ou axonometri a.

88

Computa
c
ao Gr
afica

H
elio Pedrini

Quando os raios de proje ~ao interse tam o plano de proje ~ao em ^angulo oblquo para produzir a
imagem projetada, a proje ~ao e denominada oblqua.

Projec
ao Ortogr
afica

A proje ~ao paralela mais simples e a proje ~ao ortogra a, normalmente utilizada em desenhos de
engenharia. Nesta proje ~ao, o tamanho e a forma dos objetos s~ao mostradas sem distor ~oes. Proje ~oes
ortogra as s~ao proje o~es em um dos planos x = 0, y = 0 ou z = 0.
No aso de proje ~ao no plano z = 0, o ponto P e projetado omo:
xp = x

yp = y

zp = 0

Esta proje ~ao e representada pela matriz:

Mortz

1 0 0 0

0 1 0 0

0 0 0 0
0 0 0 1

Similarmente, as matrizes de proje ~ao nos planos x = 0 e y = 0 s~ao, respe tivamente

Mortx

Morty

0 0 0 0

0 1 0 0

0
0
1
0

0 0 0 1

1 0 0 0

0 0 0 0

0 0 1 0
0 0 0 1

Exemplo de proje o~es ortogra as de um objeto nos planos x = 0, y = 0 e z = 0 a partir dos


entros de proje ~ao lo alizados no in nito e mostrado na gura 6.2.
Uma uni a proje ~ao ortogra a n~ao forne e informa ~ao su iente para re onstruir visualmente a
forma de um objeto. Consequentemente, multiplas proje ~oes ortogra as s~ao ne essarias, onforme
ilustrado na gura 6.3. As vistas de frente, direita e topo s~ao obtidas pela proje ~ao nos planos z = 0,
x = 0 e y = 0, respe tivamente, a partir dos entros de proje ~ao no in nito nos eixos +z, +x e +y,
respe tivamente. A vista de tras, esquerda e de baixo s~ao obtidas pela proje ~ao nos planos z = 0,
x = 0 e y = 0, respe tivamente, a partir dos entros de proje ~ao no in nito nos eixos z, x e y.
Os eixos de oordenadas n~ao s~ao normalmente mostrados nas vistas.
 interessante notar que todas as seis vistas podem ser obtidas atraves de ombina ~oes de re ex~ao,
E
rota ~ao e transla ~ao, seguidas por proje ~ao no plano z = 0 om um entro de proje ~ao no in nito no
eixo +z.

Proje
co
es Planares

89
y

x
z
y

y
x
z

x
z

y=0

z=0

x=0

Figura 6.2: Proje o~es ortogra as de objeto.


y

x
y

topo

trs

esquerda

z
y

z
x
z
baixo

frente

direita

Figura 6.3: Multiplas proje o~es ortogra as.

Por exemplo, a vista de tras e obtida pela re ex~ao atraves do plano z = 0, seguida pela proje ~ao
no plano z = 0. Semelhantemente, a vista esquerda e obtida pela rota ~ao de 90 em torno do eixo y,
seguida pela proje ~ao no plano z = 0.
Uso das proje o~es ortogra as: desenho de pe as, projetos de engenharia/arquitetura.
 vantagens: possveis medidas pre isas; todas as vistas om a mesma es ala.
 desvantagens: n~
ao forne e vista \realista" ou senso da natureza 3D.

6.2

Proje
c
ao Axonom
etrica

Uma uni a proje ~ao ortogra a falha em ilustrar a forma 3D geral de um objeto. Proje ~oes axonometri as orrigem essa limita ~ao. Uma proje ~ao axonometri a e onstruda manipulando-se o ob-

90

Computa
c
ao Gr
afica

H
elio Pedrini

jeto por meio de rota o~es, tal que no mnimo tr^es fa es adja entes s~ao mostradas. O resultado e
ent~ao projetado a partir de um entro de proje ~ao no in nito em um dos planos de oordenadas,
normalmente o plano z = 0.
Nas proje ~oes axonometri as, os raios de proje ~ao s~ao perpendi ulares ao plano de proje ~ao, entretanto, o plano de proje ~ao pode ter qualquer orienta ~ao om respeito ao objeto. Se o plano de
proje ~ao e posi ionado de maneira simetri a om rela ~ao aos tr^es eixos de oordenadas, tem-se a
proje ~ao isometri a. Se o plano de proje ~ao e posi ionado simetri amente om rela ~ao a dois dos
eixos de oordenadas, a proje ~ao e hamada dimetri a. O aso mais geral e onhe ido omo proje ~ao
trimetri a.
Na proje ~ao isometri a, o omprimento de um segmento de reta no espa o da imagem e menor do
que o omprimento medido no espa o do objeto. Esta redu ~ao de dist^an ias e a mesma nas tr^es dire ~oes
prin ipais, tal que medidas de dist^an ias ainda possam ser realizadas. Na proje ~ao dimetri a, ha dois
fatores de redu ~ao, enquanto na proje ~ao trimetri a ha tr^es fatores. Embora retas paralelas sejam
preservadas na imagem, ^angulos n~ao s~ao preservados. Proje o~es axonometri as s~ao muito utilizadas
em desenho me ^ani o e arquitet^oni o.

(a)

(b)

( )

Figura 6.4: Proje o~es axonometri as. (a) isometri a; (b) dimetri a; ( ) trimetri a.

 isometri a: ^
angulos entre todos os 3 eixos prin ipais s~ao iguais (120 ); mesmo fator de es ala e

apli ado ao longo de ada eixo;


 dimetri a: ^
angulos entre 2 dos prin ipais eixos s~ao iguais; 2 fatores de es ala;
 trimetri a: ^
angulos diferentes entre os 3 eixos prin ipais; 3 fatores de es ala.

Uso das proje ~oes axonometri as: ilustra ~oes em atalogos; projeto de moveis; desenho estrutural.
 vantagens: n~
ao ne essita de multiplas vistas; ilustra natureza 3D do objeto; medidas podem ser

feitas para es alar ao longo dos eixos prin ipais;


 desvantagens: falta de \redu ~
ao" da es ala ria apar^en ia distor ida; mais util para formas

retangulares do que urvas.

6.3

Proje
c
ao Oblqua

Em ontraste om as proje ~oes ortogra as e axonometri as para as quais os projetores s~ao perpendi ulares ao plano de proje ~ao, uma proje ~ao oblqua e formada por projetores paralelos a partir de
um entro de proje ~ao no in nito que interse ta o plano de proje ~ao em um ^angulo oblquo.

Proje
co
es Planares

91
y

Figura 6.5: Proje ~ao oblqua.

Proje ~oes oblquas ilustram a forma 3D geral de um objeto. Entretanto, apenas fa es do objeto
paralelas ao plano de proje ~ao s~ao mostradas em seus tamanhos e forma reais, ou seja, ^angulos e
omprimentos s~ao preservados para estas fa es apenas. De fato, a proje ~ao oblqua destas fa es e
equivalente a uma vista frontal ortogra a. Fa es n~ao paralelas ao plano de proje ~ao s~ao distor idas.
Duas proje ~oes oblquas s~ao de parti ular interesse: avalier e abinet. Uma proje ~ao avalier
e obtida quando o ^angulo entre os projetores oblquos e o plano de proje ~ao e igual a 45 . Em uma
proje ~ao avalier, os fatores de redu ~ao para todas as tr^es dire ~oes prin ipais s~ao iguais. Uma proje ~ao
oblqua em que o fator de redu ~ao para arestas perpendi ulares ao plano de proje ~ao e 0.5 e onhe ida
omo proje ~ao abinet. O ^angulo entre os raios de proje ~ao e o plano de proje ~ao em uma proje ~ao
abinet e igual a ar tan(2) 63.4 .

1
= 45
1
cavalier

2/3

3/4

Figura 6.6: Proje o~es oblquas

avalier e abinet.

1/2
= arctan(2)
1
cabinet

Considere a gura 6.7(a), onde um ubo unitario e projetado no plano xy. Desta gura pode-se
veri ar que o ponto P(0, 0, 1) do ubo e projetado em P (l os , l sen , 0) no plano xy, onforme
ilustrado na gura 6.7(b). Por de ni ~ao, isto signi a que a dire ~ao de proje ~ao e a mesma dada pela
linha PP passando atraves destes dois pontos. Esta dire ~ao e P P = (l os , l sen , 1). A dire ~ao
de proje ~ao faz um ^angulo om o plano xy. Agora onsidere um ponto generi o x, y, z. Qual sua
proje ~ao oblqua (x , y ) no plano xy? A gura 6.7( ) mostra duas vistas do ponto e o projetor, o
qual e paralelo ao projetor da gura anterior.

92

Computa
c
ao Gr
afica

H
elio Pedrini
y

l sen
Projetor

P(0,0,1)

l cos

(a)

(b)

y
y

x,y,z
y=(l sen)z + y
z
z
x=(l cos)z + x
x,y,z

x
x

( )

Figura 6.7: Proje ~ao oblqua de um ubo.

As equa ~oes s~ao para os valores x e y do projetor omo uma fun ~ao de z e s~ao da forma y = mz+b.
Resolvendo as duas equa ~oes para x e y , obtemos
x = x + z(l os )

y = y + z(l sen )

A matriz 4 4 que realiza estas opera ~oes e, portanto, representa a proje ~ao oblqua e:

Mob

1 0 l os 0

0 1 l sen 0

0
0
0
0

0 0
0
1

Para uma proje ~ao avalier, l = 1, tal que o ^angulo e 45 ( = 45 tambem). Para a proje ~ao
abinet, l = 1/2 e = 45 (o ^angulo e ar tan(2) = 63.4 ). Para uma proje ~ao ortogra a, l = 0 e
= 90 , tal que Mob e reduzida a matriz ortogra a Mort vista anteriormente.
Uso da proje ~ao oblqua: proje ~oes de idades (arranha- eus)

Proje
co
es Planares

93

 vantagens: pode apresentar a mesma forma de uma fa e de um objeto (pode ter medidas pre i-

sas); melhor para formas elpti as do que proje ~oes axonometri as; falta de redu ~ao (perspe tiva
torna ompara ~ao de tamanhos mais simples; exibe alguma apar^en ia 3D;
 desvantagens: objetos podem pare er distor idos se es olha n~ao e feita uidadosamente sobre o

plano de proje ~ao (ex: r ulos se tornam elipses); falta de redu ~ao (apar^en ia n~ao realista).

6.4

Proje
c
ao Perspectiva

Em ontraste om as proje ~oes paralelas dis utidas anteriormente, em proje ~oes perspe tivas o tamanho do objeto e reduzido om o aumento da dist^an ia do entro de proje ~ao. Tambem o orre uma
redu ~ao n~ao uniforme de linhas no objeto omo uma fun ~ao de orienta ~ao e dist^an ia do objeto do
entro de proje ~ao. Estes efeitos ajudam na per ep ~ao de profundidade do sistema visual humano,
mas a forma do objeto n~ao e preservada.
O ponto para o qual um onjunto de retas paralelas projetadas pare e onvergir e hamado de ponto
de fuga. A gura 6.8 ilustra alguns tipos de proje ~oes perspe tivas para um ubo. Em perspe tiva om
um ponto de fuga, as fa es da frente e de tras do ubo s~ao paralelas ao plano da gura. Em perspe tiva
om dois pontos de fuga, quatro arestas verti ais do ubo s~ao agora paralelas. Em perspe tiva om
tr^es pontos de fuga, os tr^es eixos onvergem em pontos de fuga.

(a)

(b)

( )

Figura 6.8: Perspe tiva. (a) um ponto de fuga; (b) dois pontos de fuga; ( ) tr^es pontos de fuga.

O al ulo da proje ~ao perspe tiva e simples. Suponha um ponto P no espa o, onforme ilustrado
na gura 6.9. O sistema projetivo e de nido pelo entro de proje ~ao C olo ado na origem dos eixos
e pelo plano de proje ~ao, em z = d perpendi ular a este eixo.
Pode-se observar que os tri^angulos s~ao formados pela proje ~ao do ponto P nos planos yz e xz. No
plano yz, os tri^angulos CSV e CTQ s~ao semelhantes. Da semelhan a extrai-se a seguinte rela ~ao que

94

Computa
c
ao Gr
afica

H
elio Pedrini

y
S
T

y
Q

P
V
z

W
R
x

Figura 6.9: Proje ~ao perspe tiva.

al ula a oordenada y da tela:


y
y
=
d
z

y =

y.d
y
=
z
z/d

Analogamente, dos tri^angulos CQW e CVR, no plano xz, extraem-se as rela o~es que permitem
al ular x :

x
x
=
d
z

x =

x.d
x
=
z
z/d

Destas rela o~es obtem-se a matriz de proje ~ao perspe tiva:

0 1 0 0

Mpersp =

0 0 1 0
0 0 1/d 0
1 0

Um ponto no espa o om oordenadas [x y z 1] e transformado por esta matriz em um ponto no


espa o tridimensional:

P4D =

z/d

Devolvendo-se ao espa o 3D, utilizando o on eito de oordenadas homog^eneas:


x
z/d
y

z/d
P3D =

Uma formula ~ao alternativa para a proje ~ao perspe tiva posi iona o plano de proje ~ao em z = 0 e
o entro de proje ~ao em z = d, omo mostrado na gura 6.10.

Proje
co
es Planares

95
plano de projeo
x
P(x,y,z)
x

d
d

P(x,y,z)

y
plano de projeo

Figura 6.10: Proje ~ao perspe tiva.

Por similaridade de tri^angulos:


x
x
=
d
z+d

x =

y
y
=
d
z+d

A matriz de transforma ~ao nesse aso e

y =

x.d
x
=
z+d
z/d + 1
y.d
y
=
z+d
z/d + 1

0 1 0 0

Mpersp =

0
0
0
0

0 0 1/d 1

1 0

Esta formula ~ao permite que d, a dist^an ia ao entro de proje ~ao, tenda para in nito. A proje ~ao
ortogra a em um plano de proje ~ao em z = 0 pode ser agora diretamente derivada desta formula ~ao.
A dire ~ao de proje ~ao e no eixo z, ent~ao o ponto P projeta-se omo
x = x

y = y

z = 0

Observe que quando d tende para in nito na matriz Mpersp


, essa torna-se a matriz de proje ~ao
ortogra a. Isto e porque a proje ~ao ortogra a e um aso espe ial da proje ~ao perspe tiva.

6.5

Exerccios

1) Es reva

equivalente

a

gluPerspective(30,1.5,2,100).

hamada

de

glFrustum

para

hamada

de

Captulo 7

Tracado de Primitivas Gr
aficas

A exibi ~ao de primitivas gra as requer pro edimentos para a onstru ~ao da forma geometri a
orrespondente ao elemento desejado na matriz de pixels do dispositivo de sada. Esses pro edimentos
onvertem elementos gra os em representa ~ao vetorial para a representa ~ao matri ial.
Os prin ipais tipos de primitivas geometri as s~ao pontos, segmentos de reta, urvas e polgonos.
Cada tipo de primitiva requer algoritmos espe  os para exibi ~ao no dispositivo de sada.

7.1

Segmentos de Reta

Um segmento de reta em uma ena e de nido pelas oordenadas dos pontos ini ial e nal do segmento. A gera ~ao de segmentos de reta em dispositivos matri iais apresenta algumas di uldades,
uma vez que a matriz da tela e formada por um onjunto de pontos dis retos (pixels). O segmento
de reta deve ini iar e terminar nos pontos espe i ados, n~ao deve apresentar interrup ~oes indesejaveis
(des ontinuidades), manter espessura uniforme e ter apar^en ia linear. A linearidade e trivial quando
o segmento de reta possui orienta ~ao ujo ^angulo e multiplo de 45 ; em outros asos, a dis retiza ~ao
pode a arretar apar^en ia serrilhada do segmento de reta, omo ilustrado na gura 7.1.
y

Figura 7.1: Tra ado de segmento de reta em dispositivo matri ial.

98

Computa
c
ao Gr
afica

7.1.1

H
elio Pedrini

Equac
ao da Reta

Uma primeira abordagem para se obter um segmento de reta entre os pontos (x1, y1) e (x2, y2) e
utilizar a equa ~ao analti a da reta
y = y1 + m(x + x1)
(7.1)
em que m = (y2 y1)/(x2 x1) e o oe iente angular da reta, ou seja, a tangente do ^angulo de
in lina ~ao.
Dados os pontos extremos do segmento de reta (x1, y1) e (x2, y2), pode-se al ular os valores de
y a partir de in rementos unitarios em x. O algoritmo 7.1 ilustra a te ni a para segmentos de reta
perten entes ao primeiro o tante (0 m 1). Alem disso, ele requer opera o~es om ponto utuante,
o que ompromente o desempenho omputa ional.
1
2
3
4

void reta(int x1, int y1, int x2, int y2)


{
int x, y, cor;
float m;

if (x1 != x2) {
m = (float) (y2 - y1) / (x2 - x1);
for (x = x1; x <= x2; x++) {
y = y1 + m * (x - x1);
PutPixel(x, y, cor);
}
}
else for (y = y1; y <= y2; y++)
PutPixel(x, y, cor);

6
7
8
9
10
11
12
13
14
15

Algoritmo 7.1: Tra ado de segmento de reta pela equa ~ao expl ita da reta.

Os segmentos de reta gerados pelo algoritmo 7.1 tornam-se ada vez mais des ontnuos quando a
in lina ~ao m da reta e maior do que 1. Como o algoritmo al ula valores de x entre x1 e x2, ha um
pixel desenhado em ada oluna. Quando a in lina ~ao e maior do que 1, normalmente mais do que
um pixel deve ser desenhado em ada oluna para que o segmento de reta pare a ontnuo.
7.1.2

Algoritmo DDA

Um algoritmo in remental bastante onhe ido e hamado de digital di erential analyzer (DDA), o
qual utiliza a equa ~ao diferen ial da reta
dy
= onstante
dx

ou

y
y2 y1
=
x
x2 x1

(7.2)

A solu ~ao para a equa ~ao diferen ial 7.2 e


yi+1 = yi + y = yi +

y2 y1
x
x2 x1

(7.3)

em que x1, x2, y1 e y2 s~ao os pontos extremos do segmento de reta e yi e o valor ini ial para ada
passo ao longo da reta. O maior valor entre x e y e es olhido omo uma unidade de dis retiza ~ao.

Tra
cado de Primitivas Gr
aficas

99

O pseudo odigo 7.2 apresenta a te ni a DDA para segmentos de reta om in lina ~oes arbitrarias.
Diferen as na horizontal e verti al entre os pontos ini ial e nal s~ao atribudos, respe tivamente, a dx e
dy. A maior diferen a determina o valor do par^ametro passos. A partir do pixel (x0, y0), determina-se
o deslo amento a ada passo para gerar o proximo pixel ao longo da reta. Caso o valor de dx seja
maior do que dy e x1 seja menor do que x2, ent~ao s~ao usados de rementos -1 e in lina ~ao m para
gerar ada um dos novos pontos da reta. Caso ontrario, usa-se in remento ou de remento unitario
na dire ~ao y e um in remento e de remento unitario de 1/m.
O algoritmo DDA e mais rapido do que o metodo para al ulo das oordenadas de pixels que
implementa diretamente a equa ~ao 7.1, pois elimina a multipli a ~ao e utiliza in rementos apropriados
nas dire ~oes x ou y. Entretanto, o a umulo de erro de arredondamento em adi ~oes su essivas de
in rementos em numeros fra ionarios pode desviar o tra ado do segmento de reta em rela ~ao a reta
real. Alem disso, as opera ~oes de arredondamento e aritmeti a n~ao inteira demandam tempo adi ional.
1
2
3
4

void DDA(int x1, int y1, int x2, int y2)


{
int i, dx, dy, passos;
float x, y, incremento_x, incremento_y;

x = x1 + 0.5;
y = y1 + 0.5;
dx = abs(x2 - x1);
dy = abs(y2 - y1);

6
7
8
9
10

if (dx > dy)


passos = dx;
else
passos = dy;
incremento_x = (float) (dx) / passos;
incremento_y = (float) (dy) / passos;

11
12
13
14
15
16
17
18
19
20
21
22
23
24

PutPixel((int) x, (int) y, cor);


for (i = 1; i <= passos; i++) {
x = x + incremento_x;
y = y + incremento_y;
PutPixel((int) x, (int) y, cor);
}

7.1.3

Algoritmo 7.2: Tra ado de segmento de reta pela te ni a DDA.

Algoritmo de Bresenham

O algoritmo de Bresenham, originalmente desenvolvido para plotters, e apropriado para desenhar


segmentos de retas em dispositivos matri iais. O algoritmo pro ura sele ionar as posi ~oes dis retas
otimas para representar o segmento de reta.
Dependendo da in lina ~ao da reta, a itera ~ao do algoritmo o orre na oordenada x ou y. O
in remento na outra variavel (de zero ou um) e determinado pela analise da dist^an ia entre a posi ~ao
da reta real e as posi ~oes dis retas mais proximas. Esta dist^an ia e hamada de erro. O algoritmo e
uidadosamente onstrudo de tal forma que apenas o sinal do erro e ne essario na analise.

100

Computa
c
ao Gr
afica

H
elio Pedrini

Ini ialmente, apenas segmentos de reta om in lina ~ao 0 < m < 1 ser~ao onsiderados. Assim,
ada oluna su essiva (posi ~ao x) e in rementada em uma unidade e es olhe-se o pixel ujo valor y
estiver mais proximo da reta real. Assumindo que o pixel (xi, yi) sera exibido, deve-se de idir qual a
oordenada do pixel na oluna xi+1 = xi + 1, ou seja, o pixel om posi ~ao (xi + 1, yi) ou (xi+1, yi+1).
As dist^an ias verti ais, na oluna xi+1, entre a reta real e o pixel a ser es olhido s~ao d1 e d2, onforme
ilustrado na gura 7.2.
y

Figura 7.2: Base do algoritmo de Bresenham.

A oordenada y na reta para a posi ~ao xi + 1 e dada por


y = m(xi + 1) + b

(7.4)

Ent~ao
d1 = y yi = m(xi + 1) + b yi

(7.5)

d2 = yi + 1) y = yi + 1 m(xi + 1) b

(7.6)

A diferen a entre essas duas dist^an ias e


d1 d2 = 2m(xi + 1) 2yi + 2b 1

(7.7)

Um par^ametro de de is~ao pi para a i-esima itera ~ao pode ser de nido para determinar qual dos
dois pixels esta mais proximo da reta. Substituindo m = y/x, a equa ~ao 7.7 pode ser rees rita de
forma a envolver apenas aritmeti a inteira
pi = x(d1 d2) = 2yxi 2xyi + c

(7.8)

em que a onstante c tem o valor 2y + x(2b 1), ou seja, e independente da posi ~ao do pixel,
podendo ser eliminada do al ulo de pi. O par^ametro pi e negativo se o pixel na posi ~ao yi estiver
mais proximo da reta real do que o pixel na posi ~ao yi + 1.
Como as mudan as de oordenadas o orrem em passos unitarios em x ou em y, pode-se obter os
valores su essivos de par^ametros usando al ulos inteiros. Na itera ~ao i + 1, o par^ametro de de is~ao e
avaliado a partir da equa ~ao 7.9 omo
pi+1 = 2yxi+1 2xyi+1 + c

(7.9)

Tra
cado de Primitivas Gr
aficas

101

Subtraindo a equa ~ao 7.8 de 7.9, tem-se


pi+1 pi = 2y(xi+1 xi) 2x(yi+1 yi)

(7.10)

Como xi+1 = xi + 1, ent~ao


pi+1 = pi2y 2x(yi+1 y i)

(7.11)

A equa ~ao 7.11 permite o al ulo do valor de ada par^ametro su essivo a partir da anterior. O
primeiro par^ametro, p0, e obtido avaliando-se a equa ~ao 7.9 om (x0, y0) omo o ponto ini ial e
m = y/x
p0 = 2y x

(7.12)

A te ni a de Bresenham para o primeiro o tante (0 < m < 1) e apresentada no algoritmo 7.3.
1
2
3
4

void Bresenham(float x1, float y1, float x2, float y2)


{
int x, y, dx, dy;
float e;

5
6
7
8
9
10

x = x1;
y = y1;
dx = x2 - x1;
dy = y2 - y1;
e = dy / dx - 1/2;

11
12
13
14
15
16
17
18
19
20

for (i = 1; i < dx; i++) {


PutPixel(x, y, cor);
while (e >= 0) {
y = y + 1;
e = e - 1;
}
x = x + 1;
e = e + dy / dx;
}

Algoritmo 7.3: Tra ado de segmento de reta no primeiro o tante pela te ni a de Bresenham.
Uma vers~ao da te ni a de Bresenham utilizando apenas aritmeti a inteira para o primeiro quadrante e dada no algoritmo 7.4.
O algoritmo de Bresenham pode ser estendido para segmentos de reta om in lina ~oes arbitrarias
levando-se em onta a simetria entre os demais o tantes do plano xy. Para um segmento om in lina ~ao
maior do que 1, tro a-se o omportamento das oordenadas x e y, ou seja, a itera ~ao o orre ao longo
da dire ~ao y em passos unitarios e al ula-se posi ~oes su essivas de x. Para in lina ~oes negativas,
o pro edimento e similar, ex eto que agora uma oordenada e de rementada enquanto a outra e
in rementada. Finalmente, asos parti ulares de segmentos de reta horizontais (y = 0), segmentos
verti ais (x = 0) e segmentos diagonais (|x| = |y|) s~ao manipulados separadamete.
A implementa ~ao do algoritmo de Bresenham para fun ionar em outros o tantes requer a analise
da posi ~ao da reta e sua in lina ~ao. Quando a magnitude absoluta da in lina ~ao da reta for maior do
que 1, y e in rementado de um e o riterio de erro de Bresenham e utilizado para determinar quando

102
1
2
3

Computa
c
ao Gr
afica

H
elio Pedrini

void Bresenham(float x1, float y1, float x2, float y2)


{
int x, y, dx, dy;

4
5
6
7
8
9

x = x1;
y = y1;
dx = x2 - x1;
dy = y2 - y1;
e = 2 * dy - dx;

10
11
12
13
14
15
16
17
18
19

for (i = 1; i < dx; i++) {


PutPixel(x, y, cor);
while (e >= 0) {
y = y + 1;
e = e - 2 * dx;
}
x = x + 1;
e = e + 2 * dy;
}

Algoritmo 7.4: Tra ado de segmento de reta om aritmeti a inteira pela te ni a de Bresenham.
in rementar x. Se x ou y deve ser in rementado por 1 ou +1 depende do quadrante. Isto e ilustrado
na gura 7.3.

x=x1
y=y+1

x=x+1
y=y+1

x=x1
y=y1

x=x+1
y=y1

Figura 7.3: Condi o~es para o algoritmo geral de Bresenham.

O algoritmo 7.5 apresenta a te ni a de Bresenham para todos os quadrantes utilizando apenas
aritmeti a inteira.

7.2

Tra
cado de Circunfer
encia

A equa ~ao de uma ir unfer^en ia om entro na origem e raio r, em oordenadas artesianas, e dada
por:
x2 + y2 = r2
(7.13)
Cir unfer^en ias n~ao entradas na origem podem ser transladadas para a posi ~ao (0, 0), e os pixels
reais podem ser tra ados apli ando-se um deslo amento aos pixels gerados pelo algoritmo de tra ado.

Tra
cado de Primitivas Gr
aficas

1
2
3
4
5
6
7
8
9

103

void Bresenham(float x1, float y1, float x2, float y2)


{
int x, y, dx, dy, s1, s2, aux;
x = x1;
y = y1;
dx = abs(x2 - x1);
dy = abs(y2 - y1);
s1 = sign(x2 - x1);
s2 = sign(y2 - y2);

10

// trocar dy e dx, dependendo da inclina


c~
ao da reta
if (dx > dy) {
aux = dx;
dx = dy;
dy = aux;
trocou = 1;
}
else trocou = 0;

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

e = 2 * dy - dx;
for (i = 1; i < dx; i++) {
PutPixel(x, y, cor);
while (e >= 0) {
if (trocou == 1)
x = x + s1;
else
y = y + s2;
e = e - 2 * dx;
}
if (trocou == 1)
y = y + s1;
else
x = x + s1;
e = e + 2 * dy;
}

Algoritmo 7.5: Tra ado de segmento de reta om aritmeti a inteira pela te ni a geral de Bresenham.

104

Computa
c
ao Gr
afica

H
elio Pedrini

Outra abordagem seria utilizar a equa ~ao parametri a da ir unfer^en ia:


x = r os(t)

(7.14)

y = r sen(t)

(7.15)

em que 0 t 2
Note que o tra ado de uma ir unfer^en ia pode tirar proveito de sua simetria. Considere uma
ir unfer^en ia entrada na origem. Se o ponto (x, y) perten e a ir unfer^en ia, pode-se al ular de
maneira trivial sete outros pontos da ir unfer^en ia, onforme ilustrado na gura 7.4. Consequentemente, basta al ular um ar o de ir unfer^en ia de 45 graus para obter a ir unfer^en ia toda. Para
uma ir unfer^en ia om entro na origem, os oito pontos simetri os podem ser tra ados usando o
algoritmo 7.6.
(y, x)

(y, x)

(x, y)

(x, y)

(x, y)

(x, y)
(y, x)

(y, x)

Figura 7.4: Simetria em uma ir unfer^en ia.

1
2
3
4
5
6
7
8
9
10
11

void CirclePoints(int x, int y, int cor)


{
PutPixel(x, y, cor);
PutPixel(y, x, cor);
PutPixel(y, -x, cor);
PutPixel(x, -y, cor);
PutPixel(-x, -y, cor);
PutPixel(-y, -x, cor);
PutPixel(-y, x, cor);
PutPixel(-x, y, cor);
}

Algoritmo 7.6: Oito pontos simetri os em uma ir unfer^en ia.

O algoritmo 7.7 ilustra a te ni a de Bresenham para tra ado de ir unfer^en ia om entro em
(0, 0).

Tra
cado de Primitivas Gr
aficas

1
2
3

void Circunferencia(int raio)


{
int x, y, d;

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

x = 0;
y = raio;
d = 3 - 2 * raio;
while (x < y) {
CirclePoints(x, y, cor)
if (d < 0)
d = d + 4 * x + 6;
else {
d = d + 4 * (x - y) + 10;
y = y - 1;
}
x = x + 1;
}
if (x == y)
CirclePoints(x, y, cor);
end

Algoritmo 7.7: Tra ado de ir unfer^en ia.

105

Captulo 8

Preenchimento de Regi
oes

Regi~oes exibidas em um dispositivo de sada podem ser preen hidas om uma or ou textura. As
regi~oes normalmente s~ao de nidas por um onjunto de pixels que delimitam suas por ~oes internas e
externas ou por um onjunto de primitivas geometri as tais omo segmentos de retas ou urvas.
A gura 8.1 ilustra regi~oes de nidas por pixels e por segmentos de reta.

(a)

(b)

Figura 8.1: Regi~oes. (a) regi~oes de nidas por pixels; (b) regi~oes de nidas por segmentos de reta.

8.1

Algoritmo de Preenchimento por Inundac


ao

Um algoritmo para preen himento de regi~ao de nida por pixels e onhe ido omo algoritmo por
inunda a~o, onde o preen himento e espe i ado partindo-se de um pixel do interior da regi~ao (pixel
semente) e progredindo para os pixels vizinhos que s~ao onexos entre si.
Ha duas formas omuns para de nir one tividade entre pares de pixels. Um pixel possui vizinhan a-4 se apenas os quatro vizinhos horizontais e verti ais s~ao onsiderados. Um pixel possui
vizinhan a-8 se ele possui vizinhan a-4 e ainda os quatro vizinhos diagonais s~ao onexos. A gura 8.2
ilustra a vizinhan a-4 e vizinhan a-8.
Uma vers~ao re ursiva do algoritmo de preen himento por inunda ~ao para regi~oes formadas por
pixels one tados por meio de vizinhan a-4 e mostrada no algoritmo 8.1.
Uma forma de melhorar o desempenho do algoritmo de preen himento por inunda ~ao e evitar
estouro da pilha devido a exe u ~ao do metodo em regi~oes muito extensas. Isto pode ser realizado

108

Computa
c
ao Gr
afica

(a)

H
elio Pedrini

(b)

Figura 8.2: Tipos de vizinhan a. (a) vizinhan a-4; (b) vizinhan a-8.

1
2
3
4
5
6
7
8
9
10

void PintaPixel(x, y, cor antiga, cor


{
if (Pixel(x, y) == cor antiga) {
PutPixel(x, y, cor nova)
PintaInterior(x+1, y, cor antiga,
PintaInterior(x-1, y, cor antiga,
PintaInterior(x, y+1, cor antiga,
PintaInterior(x, y-1, cor antiga,
}
}

nova)

cor
cor
cor
cor

nova)
nova)
nova)
nova)

Algoritmo 8.1: Algoritmo de preen himento por inunda ~ao.

om o uso de orridas de pixels, ou seja, um grupo de pixels horizontalmente adja entes no interior
da regi~ao.
Um exemplo e ilustrado na gura 8.3(a). O pixel mar ado om a letra s indi a o pixel semente. A
orrida entre a e b, na qual s e lo alizada, e preen hida primeiro. Ent~ao, a linha a ima e per orrida
de a a b bus ando-se orridas adi ionais. Para o exemplo dado, o pixel mais a direita, c, e salvo (seu
endere o e guardado na pilha) para ser manipulado posteriormente. Em seguida, a linha abaixo e
per orrida entre a e b; uma orrida e en ontrada e seu pixel mais a direita, d, e salvo na pilha. A
gura 8.3(b) ilustra a situa ~ao ate o momento.
Agora, um pixel e retirado da pilha para produzir um novo pixel semente, d, e o pro esso e
repetido. A orrida entre d e e e preen hida; a linha a ima e per orrida, tal que nenhuma orrida e
en ontrada; a linha abaixo e per orrida entre d e e, en ontrando-se tr^es orridas. Pixels f, g e h s~ao
armazenados na pilha. O pixel h e ent~ao retirado da pilha e sua orrida e preen hida, tal que duas
orridas adi ionais i e j s~ao identi adas. A gura 8.3( ) ilustra este estagio. O pro esso ontinua ate
que a pilha que vazia, em que todos os pixels do interior da regi~ao al an ados pelo pixel semente
ter~ao sido preen hidos.

c
s

a
d

e
h

d
f

i
g
j

(a)

(b)

( )

Figura 8.3: Exemplo de preen himento de regi~oes baseado em orridas de pixels.

Preenchimento de Regi
oes

8.2

109

Algoritmo de Preenchimento por Linha de Varredura

O algoritmo 8.2 realiza o preen himento de polgonos baseado em linha de varredura.


- Para cada aresta do pol
gono
determine a intersec
c~
ao das arestas com
as linhas de varredura
- Ordene a lista por linha de varredura
- Para cada linha de varredura
ordene a lista em ordem crescente dos valores de x
enquanto houver pontos na lista
preencha de pi a pi+1
n~
ao preencha de pi+1 a pi+2

Algoritmo 8.2: Algoritmo de preen himento por linha de varredura.

O exemplo da gura 8.4 ilustra o fun ionamento do algoritmo. Os oito lados do polgono podem
ser armazenados onforme a tabela 8.1 forne ida para fa ilitar o al ulo da interse  ~ao om a linha de
varredura.
(60,70)
4
5
(20,50)
3
(40,30)

(100,30)

(110,30)

2
y = 20
7

(0,10)
1
(80,0)

(130,0)

Figura 8.4: Exemplo de preen himento pelo algoritmo baseado em linha de varredura.

Lado
1
2
3
4
5
6
7
8

ymin

0
10
30
50
30
0
0
0

ymax

10
30
50
70
70
30
30
30

x para ymin

80
0
40
20
110
130
130
80

1/m

-8,0
2,0
-1,0
2,0
-1,25
-0,67
-1,0
0,67

Tabela 8.1: Exemplo de preen himento pelo algoritmo baseado em linha de varredura.

Uma analise da interse  ~ao do polgono om a linha de varredura y = 20 pode ser realizada. Uma
veri a ~ao previa da tabela permite ex luir do tratamento os lados que ertamente n~ao interse tam a
linha y = 20. Ex luem-se os lados que possuem ymin > 20, isto e, aqueles que est~ao a ima da linha de

110

Computa
c
ao Gr
afica

H
elio Pedrini

varredura, e os que t^em ymax < 20, ou seja, os que est~ao totalmente abaixo dela. Enquadram-se no
primeiro aso, as arestas denotadas por 3, 4 e 5 e, no segundo, a aresta 1. Resta analisar as interse  ~oes
om as arestas 2, 6, 7 e 8.
Cal ula-se uma interse  ~ao pela formula:
x=

1
(yvarredura ymin) + xymin
m

para a aresta 2: x = 2(20 10) + 0 = 20


para a aresta 6: x = 0, 67(20 0) + 130 = 116, 6
para a aresta 7: x = 1(20 0) + 130 = 110
para a aresta 8: x = 0, 67(20 0) + 80 = 93, 4
Ordenando-se os pontos segundo os valores res entes de x, numeram-se estes pontos de 1 ate a
ultima interse  ~ao. S~ao preen hidos os segmentos ujo ponto ini ial e mpar e o nal e par.
Um problema o orre quando a linha de varredura en ontra um verti e, omo no aso da linha de
varredura y = 30 da gura anterior. A primeira interse  ~ao, no ponto (40, 30), deve ser interpretada
omo um uni o ponto, para mudar o estado de preen himento. Por outro lado, a interse  ~ao em
(100, 30) n~ao deve mudar este estado, pois o preen himento deve ontinuar. O verti e (100, 30) deve
ser representado na lista de interse  ~oes por um numero par de pontos: dois ou mesmo nenhum.

Captulo 9

Recorte

Os pro essos de manipula ~ao de desenhos apresentados pelos sistemas gra os devem dar a impress~ao aos seus usuarios de que estes est~ao observando o seu desenho atraves de uma pequena janela
retangular. Estes pro essos s~ao obtidos por meio de utiliza ~ao sistemati a de te ni as de transforma ~oes de oordenadas, tais omo rota ~ao, transla ~ao, es ala e mapeamento em janelas.
Para se apresentar um desenho ou parte dele no dispositivo de sada, o sistema deve tomar a
pre au ~ao de veri ar as por o~es visveis a serem enviadas ao dispositivo e as partes invisveis que
devem ser des artadas. Esse pro edimento de elimina ~ao de partes n~ao visveis e denominado re orte.
O pro esso de re orte e efetuado em fun ~ao de uma area normalmente retangular. Todo o tre ho do
desenho situado no interior do ret^angulo pode ser enviado ao dispositivo de sada; os que re aem fora
dessa area retangular s~ao des artados.
A gura 9.1 ilustra o pro esso de re orte om base na area de nida pela janela de desenho. Assim,
todo o re orte e efetuado no sistema de oordenadas do usuario, e os dispositivos de sada re ebem os
valores orretos, prontos para serem visualizados.

Figura 9.1: Re orte.

Desde que um grande numero de pontos ou segmentos de reta pode ser re ortado em uma ena
tpi a, a e i^en ia dos algoritmos de re orte e extremamente importante. Em muitos asos, a maioria
dos pontos ou segmentos de reta esta no interior ou no exterior da janela de re orte. Portanto,
e importante ser apaz de rapidamente a eitar um segmento de reta omo AB ou um ponto P ou
rejeitar um segmento omo IJ ou um ponto Q na gura 9.2.

112

Computa
c
ao Gr
afica
F

E
Q

H
elio Pedrini

G
N

C
B
M

Figura 9.2: Re orte de pontos e segmentos de reta.

9.1

Recorte de Pontos

Um ponto P(x, y) e interior a janela de re orte retangular se


xmin x xmax

ymin y ymax

(9.1)

em que xmin, xmax , ymin ymax s~ao as oordenadas que delimitam a janela de re orte retangular.

9.2

Recorte de Segmentos de Reta

Alguns algoritmos para re orte de segmentos de reta em rela ~ao a uma janela retangular s~ao apresentados nas proximas se ~oes.
9.2.1

Recorte pela Soluc


ao de Equac
oes Simult
aneas

Para re ortar uma reta, e ne essario apenas onsiderar seus pontos extremos, n~ao seus pontos interiores. A partir da gura 9.2, pode-se observar que, se ambos os pontos extremos do segmento de
reta est~ao no interior do ret^angulo de re orte (exemplo, AB), toda o segmento lo aliza-se dentro da
janela e pode ser trivialmente a eito. Se um ponto extremo esta dentro do ret^angulo de re orte e
um fora (exemplo, CD), o segmento de reta interse ta a janela de re orte e deve-se al ular o ponto
de interse  ~ao. Se ambos os pontos extremos est~ao fora da janela de re orte, o segmento de reta pode
ou n~ao interse tar a janela (EF, GH e KL) e deve-se realizar al ulos adi ionais para determinar se
existem interse  ~oes e, se elas existirem, onde elas o orrem.
A abordagem da for a bruta para re ortar um segmento de reta que n~ao pode ser trivialmente
a eito e interse tar o segmento om ada uma das quatro arestas da janela de re orte para veri ar
se algum de seus pontos de interse  ~ao est~ao nestas arestas; se sim, a reta orta a janela e esta
par ialmente visvel. Para ada segmento de reta e aresta da janela, deve-se, portanto, tomar as retas
matemati amente in nitas que as ont^em e interse ta-las. A seguir, testa-se se o ponto de interse  ~ao e
interior, ou seja, se ele esta dentro de ambos a aresta da janela e a reta; se sim; existe uma interse  ~ao
om a janela de re orte.
Equa ~oes de in lina ~ao da reta n~ao tratam retas omo segmentos nitos. Alem disso, retas verti ais
n~ao s~ao de nidas pela equa ~ao. A formula ~ao parametri a para segmentos de reta resolve esses dois

Recorte

113

problemas
x = xo + t(x1 x0)

y = yo + t(y1 y0)

(9.2)

Estas equa ~oes des revem (x, y) no segmento dire ionado de (x0, y0) a (x1, y1) para o par^ametro
t no intervalo [0, 1].
A abordagem da for a bruta envolve onsideravel omputa ~ao e testes, sendo ent~ao ine iente.
9.2.2

Algoritmo de Cohen e Sutherland

Um algoritmo de re orte mais e iente foi riado por Dan Cohen e Ivan Sutherland, o qual realiza
testes ini iais no segmento de reta para determinar se al ulos de interse  ~ao podem ser evitados.
Primeiro, pares de pontos extremos s~ao testados para a eita ~ao trivial. Se o segmento n~ao pode ser
trivialmente a eito, testes de regi~oes s~ao feitos. Por exemplo, duas ompara ~oes simples em x mostram
que os pontos extremos do segmento de reta IJ possuem oordenada x maior do que xmax e ent~ao
est~ao na regi~ao a direita da janela de re orte. Portanto, o segmento IJ pode ser trivialmente rejeitado
e n~ao ne essita ser re ortado ou mostrado. Similarmente, pode-se des artar segmentos de retas em
que ambos os pontos extremos est~ao em regi~oes a esquerda de xmin, abaixo de ymin e a ima de ymax.
Se o segmento de reta n~ao pode ser trivialmente a eito ou rejeitado, ele e dividido em dois segmentos
na aresta de re orte. Ent~ao, um segmento e iterativamente re ortado por testes de a eita ~ao ou rejei ~ao
triviais e e ent~ao subdividido ate que permane a ompletamente dentro da janela de re orte ou possa
ser trivialmente rejeitado.
O algoritmo possui dois passos. O primeiro e imediato: veri a se o segmento de reta esta totalmente dentro ou totalmente fora da janela. Nesse aso, o pro edimento se en erra. O segundo passo
e iterativo: re orta su essivamente o segmento, des artando as partes que n~ao perten em a janela.
O teste de rejei ~ao e implementado da seguinte forma: estendem-se as bordas da janela de forma
a dividir a regi~ao do desenho em nove subregi~oes, omo mostrado na gura 9.3. A ada uma dessas
regi~oes e asso iado um odigo de 4 bits.
1001 1000 1010
0001 0000 0010
0101 0100 0110
Figura 9.3: Codi a ~ao de regi~oes.

Os odigos de 4 bits ont^em os seguintes signi ados (b3b2b1b0):


 bit b0: os pontos est~
ao a esquerda da borda esquerda da janela (x < xmin)
 bit b1: os pontos est~
ao a direita da borda direita da janela (x > xmax)
 bit b2: os pontos est~
ao abaixo da borda inferior da janela (y < ymin)
 bit b3: os pontos est~
ao a ima da borda superior da janela (y > ymax)

114

Computa
c
ao Gr
afica

H
elio Pedrini

O metodo de Cohen-Sutherland e apresentado no algoritmo 9.1.


1
2
3
4
5

Para cada areasta da janela


- para o segmento P1 P2 , determine se o segmento
e totalmente vis
vel ou pode
ser trivialmente rejeitado quando invis
vel
- se P1 est
a fora da janela, continue; caso cnotr
ario, troque P1 e P2
- troque P1 com a intersec
c~
ao de P1 P2 e a aresta da janela

Algoritmo 9.1: Algoritmo de Cohen-Sutherland.

9.2.3

Algoritmo de Cyrus-Beck

Os algoritmos de re orte apresentados anteriormente assumem que a janela de re orte e uma area
poligonal retangular. Para muitos propositos, isso n~ao o orre. Suponha que a janela de re orte
retangular tenha sofrido uma rota ~ao om respeito ao sistema de oordenadas. Ent~ao, os algoritmos
dis utidos anteriormente n~ao s~ao apli aveis. Cyrus e Be k desenvolveram um algoritmo de re orte
para regi~oes onvexas arbitrarias.
y
janela de recorte
x

Figura 9.4: Exemplo de janela de visualiza ~ao.

Retornando ao algoritmo de Cohen-Sutherland para segmentos que n~ao podem ser trivialmente
a eitos ou rejeitados, deve-se al ular a interse  ~ao (x, y) de um segmento de reta om uma aresta da
janela substituindo-se o valor onhe ido de x ou y pela aresta verti al ou horizontal, respe tivamente.
O algoritmo da reta parametri a, entretanto, a ha o valor do par^ametro t na representa ~ao parametri a
do segmento de reta para o ponto no qual aquele segmento interse ta a reta in nita onde a aresta de
re orte esta situada. Como todas as arestas de re orte s~ao, em geral, interse tadas pela reta, quatro
valores de t s~ao al ulados. Uma serie de ompara ~oes simples e usada para determinar qual (se existir
algum) dos quatro valores de t orrespondem as interse  ~oes reais.
O algoritmo de Cyrus-Be k e baseado na seguinte formula ~ao da interse  ~ao entre duas retas. A
gura 9.5 mostra uma uni a aresta Ei do ret^angulo de re orte e sua normal externa Ni a aresta, assim
omo o segmento de reta de P1 a P2 que deve ser re ortada na aresta. A aresta ou o segmento de reta
pode ser estendido para se a har o ponto de interse  ~ao.
A reta entre P1 e P2 pode ser parametri amente representada omo
P(t) = P1 + t(P2 P1)

(9.3)

em que t = 0 em P1 e t = 1 em P2. Agora tome um ponto arbitrario PEi na aresta Ei e onsidere os


tr^es vetores P(t) PEi de PEi aos tr^es pontos designados na reta de P1 a P2: o ponto de interse  ~ao a

Recorte

115
Aresta Ei
fora da regio
dentro da regio
de recorte
de recorte
PEi P(t) PE
Ni . [P(t) P ] > 0
Ei
P1

P2

Ni . [P(t) P ] < 0
Ei

Ni . [P(t) P ] = 0
Ei

Ni

Figura 9.5: Algoritmo de Cyrus-Be k.

ser determinado, um ponto extremo da reta no semi-plano interno da aresta e um ponto extremo da
reta no semi-plano externo da aresta. Pode-se distinguir em qual regi~ao um ponto estara lo alizado
veri ando-se o valor do produto es alar Ni.[P(t) PEi ]. Este valor e negativo para um ponto no
semi-plano interno, zero para um ponto na reta ontendo a aresta e positivo para um ponto que
esta lo alizado no semi-plano exterior. As de ni ~oes de semi-plano interno e externo de uma aresta
orrespondem a uma enumera ~ao anti-horaria das arestas da regi~ao de re orte. Agora pode-se resolver
para qual valor de t na interse  ~ao de P1P2 om a aresta
Ni.[P(t) PEi ] = 0

(9.4)

Ni.[P1 + t(P2 P1)t PEi ] = 0

(9.5)

Primeiro, substitui-se por P(t)

Em seguida, agrupando termos e distribuindo o produto es alar


Ni.[P1 PEi ] + Ni.t[P2 P1]t = 0

(9.6)

Seja D = (P2 P1) o vetor de P1 a P2 e resolva para t


t=

Ni.[P1 PEi ]
Ni.D

(9.7)

Note que isto da um valor valido de t apenas se o denominador da express~ao e diferente de zero.
Para isto ser verdadeiro, o algoritmo veri a que
 Ni 6= 0 (ou seja, a normal deveria ser diferente de 0)
 D 6= 0 (ou seja, P2 6= P1)
 Ni.D 6= 0 (ou seja, a aresta Ei e a reta de P1 a P2 n~ao s~ao paralelas. Se elas fossem paralelas,

n~ao haveria nenhuma interse  ~ao para esta aresta, ent~ao o algoritmo iria para o proximo aso).

A equa ~ao 9.7 pode ser usada para en ontrar as interse  ~oes entre P1P2 e ada aresta do ret^angulo de
re orte. Esse al ulo e feito pela determina ~ao da normal e um PEi arbitrario (por exemplo, um ponto
extremo da aresta) para ada aresta de re orte, ent~ao usando estes valores para todos os segmentos

116

Computa
c
ao Gr
afica

H
elio Pedrini

de reta. Dados os quatro valores de t para um segmento de reta, o proximo passo e determinar qual
(se algum) dos valores orrespondem as interse  ~oes internas do segmento de reta om as arestas do
ret^angulo de re orte. Como um primeiro passo, qualquer valor de t fora do intervalo [0, 1] pode ser
des artado, desde que ele a fora de P1P2. Em seguida, pre isa-se determinar se a interse  ~ao a na
borda de re orte.
Formalmente, interse  ~oes podem ser lassi adas omo PE ou PL om base no ^angulo entre P1P2
e Ni: se o ^angulo e menor do que 90 , a interse  ~ao e PL; se ele e maior do que 90 , ele e PE. Essa
informa ~ao esta ontida no sinal do produto es alar de Ni e P1P2
Ni.D < 0 PE
Ni.D > 0 PL

^angulo maior do que 90


^angulo menor do que 90

(9.8)

Note que Ni.D e simplesmente o denominador da equa ~ao 9.7, o qual signi a que, no pro esso de
al ulo de t, a interse  ~ao pode ser trivialmente lassi ada. Com essa onsidera ~ao, a reta 3 sugere
o passo nal do pro esso. Deve-se es olher um par (PE, PL) que de ne a reta re ortada. A por ~ao da
reta in nita atraves de P1P2 que esta dentro da regi~ao de re orte esta limitada pela interse  ~ao PE
om o maior valor de t, denominado tE, e a interse  ~ao PL om menor valor de t, tL. O segmento
de reta da interse  ~ao e de nido ent~ao pelo intervalo tE, tL. Entretanto, desde que o interesse e na
interse  ~ao P1P2, n~ao na reta in nita, a de ni ~ao do intervalo deve ser posteriormente modi ado tal
que t = 0 seja um limite inferior para tE e t = 1 seja um limite superior para tL. E se tE > tL? Este e
exatamente o aso da reta. Signi a que nenhuma por ~ao de P1P2 esta dentro do ret^angulo de re orte,
e toda a reta e rejeitada. Valores de tE e tL que orrespondem as interse  ~oes reais s~ao usadas para
al ular as oordenadas orrespondentes x e y.
O pseudo odigo 9.2 apresenta a te ni a de Cyrus-Be k.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

pr
e-calcula Ni e seleciona um PEi para cada aresta
para cada segmento de reta a ser recortado {
if (P2 = P1 )
reta
e degenerada para um ponto
else {
tE = 0
tL = 1
para cada intersec
c~
ao candidata com a reta de recorte {
if (Ni . D 6= 0) {
calcula t
use sinal de Ni .D para classificar como PE ou PL
if (PE ) tE = max(tE , t)
if (PL ) tL = max(tL , t)
}
}
if (tE > tL )
return nil
else
return P(tE ) e P(tL ) como intersec
c~
oes de recorte
}

Algoritmo 9.2: Algoritmo de Cyrus-Be k para re orte de segmentos de reta.

Recorte

117

Exemplo 9.1

Considere o exemplo ilustrado na gura 9.6.


y
Esquerda

P4(1,4)

Superior

P (7,3)
2

Direita

P (1,1)
7

P8(9,3)

P1(1,1)

P6(10,1)

10

Inferior

P3 (6,1)

P (6,2)
5

Figura 9.6: Exemplo de re orte pelo algoritmo de Cyrus-Be k.

Para o segmento de reta

P7(1, 1)

a P8(9, 3), a equa ~ao parametri a do segmento e


0t1

P(t) = P7 + (P8 P7)t = (1, 1) + (10, 2)t = (10t 1)i + (2t + 1)j

Os resultados s~ao resumidos na tabela 9.1. O intervalo em que o segmento


1/10 t 9/10, ou seja, de (0, 1.2) a (8, 2.8).
Tabela 9.1: Resultados para exemplo do algoritmo Cyrus-Be k.
n
f
w
wn
Dn
t1

Aresta
Esquerda
Direita
Inferior
Superior

i = (1, 0)
i = (1, 0)
j = (0, 1)
j = (0, 1)

(0, 0)
(8, 4)
(0, 0)
(8, 4)

(1, 1)
(9, 3)
(1, 1)
(9, 3)

-1
9
1
3

10 > 0
10 < 0
2>0
2 > 0

1/10
-1/2

P7P8

(9.9)

e visvel e

t2

9/10
3/2


9.2.4

Algoritmo de Nicholl-Lee-Nicholl

Em geral, a reta que suporta um dado segmento de reta P1P2 interse ta todas as quatro arestas da
jeanela de re orte; no maximo, duas dessas interse  ~oes s~ao relevantes. Assumindo que a maioria da
sobre arga omputa ional envolve en ontrar essas interse  ~oes, deve-se evitar omputar interse  ~oes
irrelevantes. Simetria reduz o problema a tr^es asos basi os, ilustrados na gura 9.7. Cal ulos de
in lina ~ao podem ser usados para identi ar quais interse  o~es deveriam ser omputadas.
P

Figura 9.7: Tr^es possveis posi o~es para um ponto P1 do segmento de reta no algoritmo de Ni holl-Lee-Ni holl.

118

Computa
c
ao Gr
afica

H
elio Pedrini

Regi~oes de re orte formadas a partir de diferentes posi ~oes do ponto P1 para o algoritmo de
Ni holl-Lee-Ni holl s~ao mostradas na gura 9.8.

LT

L
P1

LR

R
P1

LB

(a)

(b)

P1
P1
T

TR

TR
L

L
LR

LB

LB

TB

( )

Figura 9.8: Casos para o algoritmo de Ni holl-Lee-Ni holl. (a) quatro regi~oes quando P1 esta dentro da janela
de re orte; (b) quatro regi~oes de re orte quando P1 esta a esquerda da janela de re orte; ( ) os dois possveis
onjuntos de regi~oes de re orte quando P1 esta a ima e a esquerda da janela de re orte.

9.2.5

Recorte de Polgonos de Sutherland-Hodgman

O algoritmo de re orte de polgonos de Sutherland e Hodgman realiza o re orte dos verti es do polgono
utilizando ada aresta da janela de re orte.
O pseudo odigo 9.3 apresenta a te ni a de Cyrus-Be k. A fun ~ao computa interseccao retorna
o verti e que e a interse  ~ao entre o segmento de reta e o plano de re orte. A fun ~ao saida adi iona
um verti e a uma lista.
Um exemplo para ilustrar o algoritmo de Sutherland-Hodgman e apresentado na gura 9.10.
9.2.6

Recorte de Polgonos de Weiler-Atherton

O algoritmo de Sutherland-Hodman requer que no mnimo um polgono seja onvexo. O algoritmo de


Weiler-Atherton pode manipular dois polgonos ^on avos. O algoritmo segue as arestas do polgono a

Recorte

119

dentro

fora

fora

dentro

i
p
copiar i

copiar p

dentro

fora

fora

dentro
p
i
p

s
ignorar

copiar i, p

Figura 9.9: Casos de sada para o algoritmo de re orte de Sutherland-Hodgman.

Figura 9.10: Exemplo de re orte a partir do algoritmo de Sutherland-Hodgman.

120
1
2
3
4
5
6
7
8
9
10
11
12

Computa
c
ao Gr
afica

H
elio Pedrini

vertex S = array[n];
for (i=1; i <= n; i++) {
vertex P = array[i];
if (P esta dentro do plano_recorte) {
if (S nao esta dentro do plano_recorte)
saida(computa_interseccao(S, P, plano_recorte));
saida(P);
}
else if (S esta dentro do plano_recorte)
saida(computa_interseccao(P, S, plano_recorte));
S = P;
}

Algoritmo 9.3: Algoritmo de Sutherland-Hodgman para re orte de polgonos.

ser re ortado bus ando bordas que englobam uma regi~ao preen hida re ortada. Ele en ontra multiplas
regi~oes separadas (n~ao onexas).
Um exemplo para ilustrar o algoritmo de Weiler-Atherton e apresentado na gura 9.11.
A

C
B

Figura 9.11: Exemplo de re orte a partir do algoritmo de Weiler-Atherton.

9.2.7

Recorte de Cohen-Sutherland 3D

Os odigos de 6 bits ont^em os seguintes signi ados (b5b4b3b2b1b0):


 bit b0: se x < xmin (esquerda)
 bit b1: se x > xmax (direita)
 bit b2: se y < ymin (inferior)
 bit b3: se y > ymax (superior)

as)
 bit b4: se z > zmin (tr
 bit b5: se z > zmax (frente)

Recorte

121
superior

trs

direita
esquerda

xmin = 1
ymin = 1
zmin = 1
xmax = 1
ymax = 1
zmax = 1

frente
inferior

Figura 9.12: Volume de re orte para o algoritmo de Cohen-Sutherland 3D.

9.3

Recorte de Texto

As prin ipais formas de re orte de texto s~ao ilustradas nas guras 9.13(a) a 9.13( ).

TEXTO1
TEXTO2

TEXTO2
(a)

TEXTO1

TEXTO1
TEXTO2

TEXTO2
(b)

TEXTO1

TEXTO1
TEXTO2

TEXTO2
( )

string

Figura 9.13: Re orte de texto. (a) utilizando toda a


; (b) utilizando ret^angulo envolvente em ara teres
individuais na
; ( ) realizado nos omponentes de ara teres individuais.

string

Captulo 10

Modelagem Geom
etrica

A modelagem geometri a visa a representa ~ao da geometria dos objetos. Normalmente, o objeto
e simpli ado, tal que apenas suas ara tersti as essen iais s~ao representadas. As proximas se ~oes
apresentam as prin ipais abordagens para modelagem geometri a.

10.1

Modelos S
olidos

Algumas ara tersti as desejaveis em um modelo de des ri ~ao de solidos s~ao: o domnio do modelo
deve ser grande o su iente para a des ri ~ao de objetos representativos; a representa ~ao deve ser n~aoambgua ( ompleta), uni a, ompa ta e pre isa; n~ao permitir a ria ~ao de uma representa ~ao invalida;
fa ilidade na ria ~ao de representa ~oes validas; deve permitir o uso de algoritmos e ientes para al ulo
de propriedades fsi as e gera ~ao de imagens.
Nas proximas se ~oes s~ao apresentados alguns modelos de representa ~ao de solidos, desta ando-se
tanto seus aspe tos de modelagem quanto de manipula ~ao dos solidos.
10.1.1

Instanciac
ao de Primitivas Puras

A representa ~ao de objetos por instan ia ~ao de primitivas e uma das representa ~oes mais usadas
devido a sua grande simpli idade e exibilidade. Esse tipo de representa ~ao tem por base a de ni ~ao
de objetos geometri os tridimensionais (primitivas) que possuem atributos (par^ametros), ujos valores
s~ao de nidos pelo usuario no momento da ria ~ao de uma nova inst^an ia.
O on eito de par^ametro n~ao esta on nado as dimens~oes. Assim, a primitiva pir^amide, por exemplo, pode ter omo par^ametro o numero de fa es laterais, alem de par^ametros tipi amente geometri os
omo altura e raio da sua base.
10.1.2

Enumerac
ao de Ocupac
ao Espacial

A representa ~ao por enumera ~ao de o upa ~ao espa ial subdivide o espa o 3D em volumes pequenos
id^enti os, hamados voxels (a r^onimo para elementos de volume, do ingl^es volume elements) que
juntos representam o volume o upado pelo solido.

124

Computa
c
ao Gr
afica

H
elio Pedrini

Para representar um objeto, lassi a-se esse volume omo vazio ou ontendo um solido. Esta
representa ~ao e uma varia ~ao de o trees em que o espa o 3D e subdividido re ursivamente em o tantes
e lassi ado omo heio, vazio ou par ialmente heio.
A enumera ~ao de o upa ~ao espa ial e uni a e n~ao ambgua, mas tem a falha de ser poten ialmente
prolixa, devido a sua natureza enumerativa, ou seja, s~ao ne essarios muitos elementos de volume. A
forma dos voxels impede a orreta representa ~ao dos objetos, n~ao representando de forma exata as
fronteiras existentes em planos oblquos, ja que n~ao permite o upa ~ao par ial de voxels, omo pode
ser visto na gura 10.1.

Figura 10.1: Exemplo de modelo de elipsoide om furo entral representado por enumera ~ao de o upa ~ao
espa ial. Nota-se pou a pre is~ao na des ri ~ao da fronteira.

10.1.3

Decomposic
ao de C
elulas

O metodo de de omposi ~ao de elulas possui omo base a representa ~ao do objeto nal atraves de
elementos primitivos parametri os. A de omposi ~ao do espa o probe expressamente a interse  ~ao e
imp~oe a justaposi ~ao das primitivas que partilham pontos, arestas ou fa es. Esta e tambem a diferen a
essen ial entre a de omposi ~ao do espa o em elulas e a instan ia ~ao de primitivas puras. Um exemplo
de representa ~ao de um objeto atraves de de omposi ~ao de elulas e mostrado na gura 10.2.
A de omposi ~ao de elulas pare e ser um re urso e iente de geometria para al ulos de propriedade de massa e para alguns tipos de problemas de planejamento, mas, em algoritmos gerais para
ria ~ao e ombina ~ao, tal representa ~ao n~ao e disponvel, e a valida ~ao n~ao e trivial.
10.1.4

Varredura

A representa ~ao de solidos tridimensionais por varredura tem por base a des ri ~ao do volume gerada
quando um objeto e deslo ado segundo uma dada trajetoria e forma um dado volume. O exemplo
mais simples e o de um r ulo deslo ado segundo uma trajetoria linear perpendi ular ao r ulo. O
volume varrido resultante e um ilindro obtido por transla ~ao.
Um pro esso de fabri a ~ao em que um material plasti o e obrigado a passar por um rivo om um
orif io ir ular produz um resultado id^enti o. O material toma a forma de um ilindro a sada do
rivo e o volume des rito resulta de uma varredura por extrus~ao. Se o r ulo onsiderado des rever
uma trajetoria ir ular, o volume varrido pelo r ulo toma a forma de um torus, obtido por uma

Modelagem Geom
etrica

125

Figura 10.2: Representa ~ao de um solido por de omposi ~ao em elulas, apresentando tr^es solu o~es distintas (a,
b e c) em que a solu ~ao c re orre a uma u
 ni a primitiva.

varredura por rota ~ao. A gura 10.3 apresenta essas duas formas, alem de ilustrar a di uldade da
representa ~ao por varredura em apli ar ertas opera ~oes a objetos.

Figura 10.3: Cr ulo sobre trajetoria linear e r ulo sobre trajetoria ir ular. A uni~ao de volumes des ritos por
varredura pode n~ao ser des ritvel.

Em qualquer aso, as varreduras produzem volumes om propriedades geometri as fa eis de al ular. Essa situa ~ao ompli a-se um pou o se as se ~oes bidimensionais que varrem os volumes apresentarem formas irregulares.
10.1.5

Representac
ao por Fronteiras

A modelagem geometri a por fronteiras des reve os objetos por meio das superf ies que os limitam.
As superf ies limitam os objetos mas n~ao indi am que lado da superf ie estes se en ontram. Esta
distin ~ao e feita pela forma omo ada elemento da superf ie e de nido.
Em geral, pode-se onsiderar a representa ~ao por limites (fronteira) em que os elementos das
superf ies que a onstituem podem assumir qualquer forma geometri a, mas isto signi a passar os
problemas derivados de formas omplexas para ada um dos elementos onstituintes da fronteira. Um
exemplo de objeto representado por fronteiras pode ser visto na gura 10.4.
Dentre os varios tipos de representa ~ao de fronteira, algumas s~ao:
 representa ~
ao por poliedros.
 representa ~
ao por arestas estendidas ou arestas om alas (winged-edge).

126

Computa
c
ao Gr
afica

H
elio Pedrini

 representa ~
oes n~ao poliedri as.

Figura 10.4: Exemplo de objeto representado por poliedro om um furo que o atravessa ompletamente e outro
furo que n~ao o atravessa. O poliedro tem um u ni o omponente e apresenta 36 arestas, 24 verti es, 15 fa es
(tr^es apresentam furos) e um furo que atravessa ompletamente o poliedro.

10.1.6

Geometria S
olida Construtiva

A representa ~ao de objetos por geometria solida onstrutiva (CSG) onsiste em riar representa ~oes
de objetos a partir de uma hierarquia de um onjunto de opera ~oes Booleanas (uni~ao, interse  ~ao, diferen a) apli ada a um onjunto de formas simples, hamadas primitivas. Os operandos das opera ~oes
Booleanas podem ser tanto primitivas omo os objetos resultantes das opera ~oes anteriores.
Internamente, um objeto CSG pode ser representado omo uma arvore binaria (arvore CSG), ujos
nos folhas representam as primitivas solidas e os nos internos ( ompostos) representam as opera ~oes
Booleanas. Transforma o~es podem ser armazenadas tanto nos nos folhas omo nos nos internos.
Os nos internos representam os solidos par iais resultantes da apli a ~ao das opera ~oes Booleanas
asso iadas a esses nos e aos dois subsolidos das arvores inferiores a esquerda e direita. O no raiz
representa o objeto omposto resultante.
Varias te ni as da apli a ~ao de CSG t^em sido riadas para suprir algumas das de i^en ias que o
algoritmo apresentava em sua on ep ~ao. Alem disso, varias equipes de desenvolvimento t^em bus ado
novas te ni as ombinadas de CSG om outros metodos de representa ~ao omo B-Rep e varredura.

10.2

Fractais

Os fra tais s~ao formas geometri as que podem ser subdivididas em partes, ada uma das quais e (pelo
menos aproximadamente) uma opia reduzida do todo. Diz-se que os fra tais t^em in nitos detalhes,
s~ao geralmente auto-similares e independem de es ala. Em muitos asos um fra tal pode ser gerado
por um padr~ao repetido, tipi amente um pro esso re orrente ou iterativo.
Fra tais apresentam dimens~ao fra ionaria e s~ao uteis para des rever as formas irregulares da superf ie da terra, modelar fen^omenos aparentemente imprevisveis (teoria do aos), de natureza meteorologi a, astron^omi a, biologi a, entre outros.
Alguns exemplos de fra tais in luem o onjunto de Mandelbrot, tri^angulo de Sierpinski, urva de
drag~ao e urva de Ko h.

Modelagem Geom
etrica

127

Figura 10.5: Constru ~ao de um objeto por CSG a partir de objetos primitivos sujeitos a opera o~es Booleanas e
transforma o~es estruturadas hierarqui amente.

(a)

(b)

( )

Figura 10.6: Exemplos de fra tais. (a) urva de Ko h; (b) tri^angulo de Sierpinski; ( ) o o de neve (Ko h).

10.3

Sistemas de Partculas

Sistema e de nido por uma ole ~ao de part ulas que se desenvolvem ao longo do tempo. Os objetos
s~ao ompostos de inumeros elementos \aut^onomos" e a evolu ~ao e determinada pela apli a ~ao de

128

Computa
c
ao Gr
afica

H
elio Pedrini

ertas regras probabilsti as as part ulas. As part ulas podem: gerar novas part ulas, ganhar novos
atributos, desapare er, mover-se de a ordo om leis de movimenta ~ao determinsti as ou esto asti as.
A te ni a e utilizada para modelar objetos omplexos, por exemplo, fogo, nevoeiro, fuma a, agua,
explos~oes, fogos de artif ios e arvores.

10.4

Modelos Fsicos

Objetos n~ao rgidos, omo uma orda, toalha ou bola de borra ha, podem ser representados por
modelos fsi os que des revem o omportamento do objeto em termos da intera ~ao de for as internas
e externas.
Uma forma omum para modelar objetos n~ao rgidos e aproximar o objeto om uma rede de nos
om onex~oes exveis entre eles. Um tipo simples de onex~ao e uma mola. Redes de molas similares
podem ser estabele idas em 3D para modelar uma bola de borra ha ou blo o gelatinoso. Se quisermos
que o objeto tenha propriedades diferentes em determinadas regi~oes, podemos utilizar propriedades
de mola diferentes. Quando for as externas s~ao apli adas a uma rede de molas, o valor de esti amento
ou ompress~ao das molas depende do valor usado na onstante k da mola.
Em vez de molas, pode-se modelar as onex~oes entre nos om materiais elasti os e minimizar as
fun ~oes de energia para determinar a forma do objeto sob a in u^en ia de for as externas.

Figura 10.7: Modelo fsi o de objetos om uma rede de molas.

Captulo 11

Modelos de Ilumina
c
ao

Modelos de ilumina ~ao s~ao usados para al ular a intensidade de luz per ebida ao se observar uma
superf ie. Esses al ulos de intensidade s~ao baseados nas propriedades opti as das superf ies, das
posi ~oes relativas das superf ies e de sua orienta ~ao om rela ~ao as fontes de luz.

11.1

Intensidade de Luz

A intensidade de luz vista em ada superf ie do objeto depende do tipo de fonte de luz na vizinhan a
e das ara tersti as da superf ie do objeto. Alguns objetos t^em superf ies brilhantes, outros t^em
superf ies fos as. Alem disso, alguns objetos s~ao onstrudos de material opa o, enquanto outros
s~ao mais transparentes. Um modelo de ilumina ~ao para produzir intensidades om realismo sobre as
superf ies de um objeto deve levar em onta varias propriedades.
11.1.1

Fontes de Luz

Quando um objeto e obesrvado, v^e-se a intensidade de luz re etida das superf ies do objeto. A luz
re etida das superf ies pode ser proveniente de varias fontes de luz ao redor do objeto. Se o objeto
e transparente, vemos tambem a luz de fontes que podem estar atras do objeto.
Fontes de luz que iluminam um objeto s~ao de dois tipos basi os: fontes emissoras e fontes
re etoras ( gura 11.1). Fontes emissoras de luz in luem l^ampadas e o sol. Fontes re etoras de luz
s~ao superf ies iluminadas por outros objetos, omo paredes de uma sala que est~ao proximas ao objeto
sendo visualizado. Uma superf ie que n~ao esta diretamente exposta a fonte emissora de luz ainda sera
visvel se objetos proximos forem iluminados. As multiplas re ex~oes de luz de ada objeto proximo
se ombinam para produzir uma ilumina ~ao uniforme hamada luz ambiente.
Quando as dimens~oes de uma fonte de luz s~ao pequenas omparadas om o tamanho de um objeto,
pode-se modela-la om uma fonte pontual. Essa aproxima ~ao e usada para muitas fontes, omo o sol,
que esta su ientemente distante do objeto. Em outros asos, tem-se uma fonte de luz distribuda.
Isto o orre quando se tem uma fonte grande, tal omo uma luz uores ente, uja area n~ao pode ser
onsiderada in nitamente pequena omparada ao tamanho do objeto iluminado. A gura 11.2 ilustra
esses dois tipos de fontes de luz.

130

Computa
c
ao Gr
afica

H
elio Pedrini

fonte pontual
emissora de luz

fonte refletora de luz

Figura 11.1: Fontes emissoras e re etoras de luz.

fonte de luz pontual

fonte de luz distribuda

Figura 11.2: Fontes de luz pontual e distribuda.

Um modelo de ilumina ~ao para al ular a intensidade de luz re etida de uma superf ie pode ser
determinado onsiderando-se ontribui ~oes das fontes de luz ambiente e fontes pontuais ou distribudas
na vizinhan a da superf ie. Essas fontes produzem re ex~oes de luz que s~ao espalhadas em todas as
dire ~oes. Esta luz espalhada e hamada re ex~ao difusa e e resultante da rugosidade da superf ie.
Uma superf ie fos a produz re ex~oes difusas tal que a superf ie aparenta estar igualmente iluminada
a partir de todas as dire ~oes de observa ~ao. Na re ex~ao espe ular, raios paralelos que in idem
na superf ie ontinuam paralelos apos a re ex~ao. A re ex~ao espe ular produz regi~oes brilhantes
(highlights ou bright spots) na suprf ie dos objetos. Esse efeito e mais pronun iado em superf ies
brilhantes do que em superf ies fos as. Esses dois tipos de re ex~ao s~ao mostrados na gura 11.3.

Figura 11.3: Re ex~ao difusa e espe ular.

Modelos de Ilumina
c
ao

131

Para objetos transparentes, pode-se expandir o modelo de re ex~ao para in luir efeitos de transmiss~ao de luz. Assim omo na re ex~ao, tanto transmiss~ao de luz difusa quanto espe ular podem
o orrer.
11.1.2

Luz Ambiente

Como a luz ambiente e o resultado de multiplas re ex~oes de objetos proximos, pode-se onsidera-la
omo de intensidade uniforme Ia em todas as dire ~oes. Quando a luz ambiente e re etida de uma
superf ie, ela produz uma ilumina ~ao uniforme da superf ie em qualquer posi ~ao de observa ~ao da
qual a superf ie e visvel. Se a superf ie e exposta apenas a luz ambiente, pode-se expressar a sua
intensidade em qualquer ponto da superf ie omo
I = Kd Ia

(11.1)

em que Kd e o oe iente de re ex~ao ou re etividade da superf ie, ujo valor varia entre 0 e 1, de
a ordo om as propriedades de re ex~ao da superf ie. Superf ies altamente re exivas t^em re etividade
proxima a 1, tal que a intensidade de luz re etida e proxima da luz in idente. Superf ies que absorvem
a maior parte da luz in idente t^em re etividade proxima de 0.
11.1.3

Reflex
ao Difusa

Raramente superf ies s~ao iluminadas apenas om luz ambiente. Um modelo de ilumina ~ao que al ula
intensidades de a ordo om a equa ~ao 11.1 exibiria todas as superf ies visveis de um objeto om a
mesma intensidade. Um modelo mais real e obtido in luindo-se os efeitos de fontes de luz no modelo
de ilumina ~ao.
O al ulo de re ex~ao difusa de uma fonte pontual de luz e baseado na lei do osseno de Lambert,
a qual estabele e que a intensidade de luz re etida depende do ^angulo de ilumina ~ao. Uma superf ie
que e perpendi ular a dire ~ao da luz in idente apare e mais brilhante do que uma superf ie que tem
um ^angulo em rela ~ao a dire ao de luz in idente. Quando o ^angulo aumenta, menos luz in idente
atinge a superf ie, omo mostrado na gura 11.4. A gura mostra um grupo de raios de luz paralelos
in identes em duas superf ies om orienta ~oes diferentes relativas a dire ~ao de luz in idente de uma
fonte distante.

Figura 11.4: Luz in idente.

Uma fonte de luz que esta mais proxima a superf ie, entretanto, produz raios de luz in identes
que n~ao s~ao paralelos ( gura 11.5). Para simpli ar os al ulos no modelo, assume-se que ada fonte
pontual em uma ena esta su ientemente distante da superf ie, tal que os raios de luz da fonte s~ao

132

Computa
c
ao Gr
afica

H
elio Pedrini

paralelos quando atingem a superf ie. Posteriormente, extens~oes ser~ao onsideradas para modelar
outros tipos de fontes.

superfcie

Figura 11.5: Luz in idente.

Pode-se des rever a orienta ~ao de uma superf ie om um vetor normal N e a dire ~ao da fonte de
luz om um vetor unitario L. O ^angulo entre esses dois vetores e hamado de ^angulo de in id^en ia
( gura 11.6) e a lei do osseno de Lambert estabele e que a intensidade de luz re etida e propor ional
ao valor de os(). Pode-se al ular os() pelo produto es alar entre esses dois vetores unitarios
(11.2)

os() = N L
N
L

superfcie

^
Figura 11.6: Angulo
de in id^en ia.

Uma superf ie e iluminada por uma fonte pontual apenas se o ^angulo de in id^en ia estiver entre
0 e 90 ( os() esta no intervalo de 0 a 1). Quando os() e negativo, a fonte de luz esta \atras" da
superf ie.
 esperado que o brilho de uma superf ie iluminada dependa da dist^an ia a fonte de luz, uma vez
E
que fontes mais distantes s~ao mais fra as do que as mais proximas. Esse fen^omeno, onhe ido omo
atenua ~ao, pode ser modelado usando-se um fator para reduzir o efeito da ontribui ~ao da fonte de
luz de a ordo om a dist^an ia ao objeto. O fator de atenua ~ao e al ulado omo
fat =

1
c1 + c2d + c3d2

(11.3)

em que d e a dist^an ia da luz ao objeto. Os valores c1, c2 e c3 s~ao os fatores de atenua ~ao onstante,
linear e quadrati a, respe tivamente.
Assim, a intensidade da re ex~ao difusa nessa posi ~ao da superf ie pode ser modelada omo
I=

Kd Ip os()
Kd Ip N L
=
2
c1 + c2d + c3d
c1 + c2d + c3d2

0 /2

(11.4)

Modelos de Ilumina
c
ao

133

em que se Ip e a intensidade da fonte.


A re ex~ao difusa total para uma superf ie iluminada por luz ambiente e uma fonte pontual e dada
por
I = KdIa +

Kd Ip
(N L)
c1 + c2d + c3d2

(11.5)

Se mais do que uma fonte pontual for in luda na ena, a equa ~ao 11.5 e expandida para in luir
termos para as fontes de luz adi ionais.

11.1.4

Reflex
ao Especular

Para ertos ^angulos de observa ~ao, uma superf ie brilhante re ete toda luz in idente, independentemente de valores de re etividade. Esse fen^omeno, hamado re ex~ao espe ular, produz uma regi~ao
(spot) de luz re etida que tem a mesma or da luz in idente. Normalmente, objetos s~ao iluminados
om luz bran a, tal que a re ex~ao espe ular e uma regi~ao (spot) bran a brilhante.
Para um re etor ideal (espelho perfeito), o ^angulo de in id^en ia e o ^angulo de re ex~ao espe ular
s~ao iguais ( gura 11.7). Usa-se o vetor unitario R para representar a dire ~ao da re ex~ao espe ular.
O vetor unitario V aponta na dire ~ao do observador e o vetor unitario L aponta para a fonte de luz.
Re ex~ao espe ular pode ser vista omo um re etor perfeito apenas quando V e R oin idem ( = 0).
N
L

R
V

superfcie

Figura 11.7: Re etor perfeito.

Objetos reais exibem re ex~ao espe ular sobre um intervalo de posi o~es sobre o vetor R. Superf ies
brilhantes t^em um intervalo de re ex~ao estreito, enquanto superf ies fos as t^em um intervalo de
re ex~ao mais largo. Modelos de re ex~ao espe ular devem produzir a maior intensidade na dire ~ao de
R, om o de res imo rapido de intensidade quando o ^angulo de observa ~ao aumenta.
Um metodo para modelar re ex~ao espe ular, desenvolvido por Phong, onsidera a intensidade de
re ex~ao espe ular propor ionalmente ao valor de osn(). O valor atribudo a n determina o tipo
de superf ie a ser visualizada. Uma superf ie muito brilhante e modelada om um valor alto de n
(200 ou mais) e valores baixos (menores do que 1) s~ao usados para superf ies mais fos as. Para um
perfeito re etor, n e in nito. Uma superf ie rugosa pode ter valor proximo de 1. O efeito de n no
intervalo angular para a re ex~ao espe ular de observa ~ao e mostrada na gura 11.8.
Re ex~ao espe ular tambem depende do ^angulo de in id^en ia. Em geral, a intensidade aumenta
quando o ^angulo de in id^en ia aumenta. Esse efeito e in orporado ao modelo de re ex~ao espe ular
de nindo-se a intensidade propor ional a fun ~ao de re ex~ao W(), tal que o modelo de re ex~ao

134

Computa
c
ao Gr
afica

H
elio Pedrini
N

N
L

superfcie fosca

superfcie brilhante

Figura 11.8: Re ex~ao espe ular. (a) superf ie brilhante (n alto); (b) superf ie fos a (n baixo).

ompleta e es rito omo


I = KdIa +

Ip
[Kd (N L) + W() osn ]
c1 + c2d + c3d2

(11.6)

A forma fun ional para W() depende do material da superf ie. Alguns materiais, omo vidro,
exibem muito pou a re ex~ao espe ular em ^angulos menores de in id^en ia mas aumentam a intensidade
da re ex~ao espe ular quando se aproxima de 90 . Para esses materiais, W deveria variar de um
valor proximo de 0 ate um valor 1, quando o ^angulo de in id^en ia varia de 0 a 90 . Alguns materiais
t^em re ex~ao espe ular aproximadamente onstante para todos os ^angulos de in id^en ia, tal que W
poderia ser um valor onstante no intervalo de 0 a 1.
Como V e R s~ao vetores unitarios nas dire ~oes de visualiza ~ao e re ex~ao, pode-se assumir os =
V R na equa ~ao 11.6. Tambem, para muitas apli a ~oes, pode-se simpli ar os al ulos de intensidade
se W() for onsiderado um valor onstante k para a superf ie. O modelo de intensidade ompleto
para re ex~ao, devido a luz ambiente e uma uni a fonte pontual, pode ser rees rita omo
I = KdIa +

Ip
[Kd (N L) + Ks(V R)n]
c1 + c2d + c3d2

(11.7)

Neste modelo, valores onstantes s~ao atribudos aos par^ametros Kd, Ks e d0 para ada superf ie
iluminada. Valores de intensidade para a luz ambiente e para as fontes pontuais s~ao espe i ados, bem
omo valores para os vetores unitarios s~ao estabele idos. Para ada ponto na superf ie iluminada,
al ula-se os produtos es alares relevantes e determina-se a intensidade da luz re etida.
Se a fonte pontual estiver distante da superf ie planar, o produto es alar N L sera aproximadamente onstante sobre a superf ie. De maneira similar, se o ponto de observa ~ao estiver su ientemente distante da superf ie, o produto N R sera onstante. Quando essas simpli a o~es puderem
ser feitas, o numero de al ulos sera signi ativamente reduzido. Se uma ou ambas as simpli a ~oes
n~ao puderem ser feitas, produtos es alares dever~ao ser avaliados em ada ponto. Como e esperado que
os valores para esses produtos n~ao se alterem signi ativamente de um ponto para outro, metodos de
oer^en ia podem ser usados para al ular os produtos es alares ao longo de uma linha de varredura.
Os vetores L e N podem ser usados para determinar o vetor R para o al ulo de os()
R = N(2N L) L

(11.8)

Modelos de Ilumina
c
ao

135

De maneira similar, pode-se modelar re ex~oes espe ulares usando o vetor


B=

V+L
|V + L|

(11.9)

A express~ao V R na equa ~ao 11.7 e ent~ao substituda por B N, ujo ^angulo entre B e N e
/2 ( gura 11.9).
B
R
V

superfcie

Figura 11.9: Vetor B de nido omo a bissetriz do ^angulo entre V e L.

Outros metodos para modelar intensidades de luz t^em sido desenvolvidos. Uma te ni a, desenvolvida por Torran e e Sparrow e adaptada para apli a o~es gra as por Blinn, divide ada superf ie da
ena em um onjunto de fa es planas pequenas. Assume-se que ada uma das fa es e um re etor ideal
e as fa es s~ao orientadas aleatoriamente sobre a superf ie total. Uma distribui ~ao Gaussiana e usada
para espe i ar a orienta ~ao de ada plano. A re ex~ao espe ular para a superf ie e al ulada omo a
ontribui ~ao total dos planos omo uma fun ~ao da intensidade Ip de uma fonte pontual distante e os
vetores N, V e L.
11.1.5

Luz Refratada

Quando um objeto transparente e modelado, as equa o~es de intensidade devem ser modi adas para
in luir ontribui o~es das fontes de luz atras dos objetos. Em muitos asos, estas fontes s~ao superf ies
que re etem luz de outros objetos. Luz re etida dessas superf ies passa atraves de objetos transparentes e modi a a intensidade do objeto sendo modelado, omo al ulado pela equa ~ao 11.6 ou 11.7.
Luz passando atraves de uma superf ie e hamada de luz transmitida ou luz refratada.
Tanto re ex~ao difusa quanto refra ~ao espe ular podem o orrer nas superf ies de um objeto. Efeitos
difusos s~ao importantes quando uma superf ie par ialmente transparente, omo vidros translu idos,
pre isa ser modelada. A luz passando atraves desses materiais e dispersa tal que uma imagem borrada
de objetos de fundo e obtida. Refra ~oes difusas podem ser geradas pela diminui ~ao da intensidade
de luz refratada e ontribui ~oes de intensidade dispersas em ada ponto da superf ie de refra ~ao em
uma area nita. Essas manipula ~oes demandam tempo e muitos modelos empregam apenas efeitos
espe ulares.
Modelos realsti os de materiais transparentes, omo vidro, podem ser desenvolvidos para adi ionar
ontribui ~oes de refra ~ao espe ular para os al ulos de intensidade re etida. Quando a luz e in idente
sobre uma superf ie transparente, parte dela e re etida e parte e refratada ( gura 11.10). Como a
velo idade da luz varia em diferentes materiais, o aminho da luz refratada e diferente do aminho
da luz in idente. A dire ~ao da luz refratada, espe i ada pelo ^angulo de refra ~ao, e uma fun ~ao

136

Computa
c
ao Gr
afica

H
elio Pedrini

do ndi e de refra ~ao do material. Espe i amente, o ^angulo de refra ~ao r e al ulado a partir do
^angulo de in id^en ia i, do ndi e de refra ~ao ni do material de fora da superf ie (normalmente ar)
e do ndi e de refra ~ao nr do material de superf ie de a ordo om a lei de refra ~ao
ni sen(i) = nr sen(r)

(11.10)

N
luz
incidente

luz
refletida
i

ni
nr

superfcie
r
luz
refratada

Figura 11.10: Um raio de luz in idente sobre uma superf ie e par ialmente re etido e par ialmente refratado.

De fato, o ndi e de refra ~ao de um material e fun ~ao do omprimento de onda da luz in idente, tal
que os omponentes de or diferentes de uma raio de luz ser~ao refratados em ^angulos diferentes. Para
muitas apli a ~oes, pode-se usar um ndi e medio de refra ~ao para materiais diferentes modelados na
ena. O ndi e do ar e aproximadamente 1 e do vidro e aproximadamente 1.5. O uso desses valores na
equa ~ao 11.10, om um ^angulo de in id^en ia de 30 , resulta um ^angulo de refra ~ao de aproximadamente
18 . A gura 11.11 ilustra a mudan a na dire ~ao de um raio de luz refratado atraves de uma objeto
de vidro.
Ar

Vidro Ar

luz incidente

Figura 11.11: Refra ~ao da luz atraves um objeto de vidro.

11.2

M
etodos de Sombreamento de Superfcie

Um modelo de intensidade pode ser apli ado ao sombreamento da superf ie de varias maneiras,
dependendo do tipo de superf ie e dos requisitos de apli a ~ao em quest~ao. Objetos om superf ies
plana podem, eventualmente, ser sombreados realisti amente om uma uni a intensidade para ada
superf ie. Para uma superf ie urva, pode-se apli ar o modelo de intensidade para ada ponto da
superf ie. Isto pode produzir um resultado altamente realsti o, entretanto, o pro esso demanda

Modelos de Ilumina
c
ao

137

elevado tempo omputa ional. Para a elerar os al ulos de intensidade, uma superf ie urva poderia
ser representada om um onjunto de fa es poligonais, tal que o modelo de sombreamento seria apli ado
a ada fa e. Cada uma dessas superf ies poligonais poderia ent~ao ser sombreada om intensidade
onstante ou om intensidade variavel al ulada por interpola ~ao.
11.2.1

Intensidade Constante

Sob ertas ondi o~es, um objeto om superf ies planas pode ser sombreado realisti amente usando
intensidades onstantes. Para uma superf ie iluminada por uma fonte pontual, o modelo de sombreamento produz uma intensidade de superf ie onstante, assumindo-se que a fonte pontual e o ponto
de refer^en ia de observa ~ao estejam su ientemente longe da superf ie. Quando a fonte pontual esta
distante da superf ie, n~ao ha mudan a na dire ~ao da fonte (N L e onstante). De forma similar, a
dire ~ao para um ponto de observa ~ao distante n~ao mudara sobre a superf ie, tal que R e onstante.
Uma superf ie urva representada om um onjunto de fa es planas pode ser sombreada om
intensidades de superf ie onstante se as fa es subdividindo a superf ie forem su ientemente pequenas. Isto pode gerar uma apresenta ~ao razoavelmente boa em muitas situa ~oes, espe ialmente quando
a urvatura da superf ie varia gradualmente e as fontes de luz e as posi ~oes de observa ~ao est~ao
distantes da superf ie. A gura 11.16(a) mostra um objeto modelado om intensidade onstante.
Com este metodo, a intensidade e al ulada no ponto interior de ada fa e e a superf ie inteira e
sombreada om a intensidade al ulada. Quando a orienta ~ao entre fa es adja entes muda abruptamente, a diferen a nas intensidades da fa e pode produzir um efeito n~ao realsti o. Pode-se suavizar
as des ontinuidades de intensidade nesses asos variando-se a intensidade sobre ada fa e de a ordo
om um esquema de interpola ~ao.
11.2.2

Sombreamento de Gouraud

Este esquema de interpola ~ao, desenvolvido por Gouraud, remove des ontinuidades de intensidade
entre fa es adja entes de uma representa ~ao de superf ie variando-se linearmente a intensidade sobre
ada fa e, tal que os valores de intensidade s~ao suaves nas fronteiras do plano. Neste metodo, valores
de intensidade ao longo de ada linha de varredura passando atraves de uma superf ie s~ao interpolados
a partir das intensidades nos pontos de interse  ~ao om a superf ie.
A gura 11.12 ilustra o esquema de sombreamento de Gouraud. Valores de intensidade nos verti es
de ada polgono s~ao determinados a partir de um modelo de ilumina ~ao omo des rito, por exemplo,
na equa ~ao 11.7. Todas as outras intensidades da superf ie s~ao ent~ao al uladas om base nesses
valores.
Na gura, a intensidade na interse  ~ao esquerda da linha de varredura om o polgono (ponto 4)
e interpolado a partir das intensidades no verti e 1 e 2 om o al ulo
I4 = I1

y1 yv
yv y2
+ I2
y1 y2
y1 y2

(11.11)

Nesse exemplo, a intensidade no ponto 4 tem um valor que esta mais proximo da intensidade do
ponto 1 do que do ponto 2. De maneira similar, a intensidade na interse  ~ao direita da varredura

138

Computa
c
ao Gr
afica

H
elio Pedrini

3
1

linha de varredura (y v)

Figura 11.12: Sombreamento de Gouraud: o valor de intensidade no ponto 4 e determinado a partir dos valores
de intensidade nos pontos 1 e 2; a intensidade no ponto 6 e determinada a partir dos valores nos pontos 2 e 3;
as intensidades nos outros pontos (tal omo 5) ao longo da linha de verredura s~ao interpolados entre valores
nos pontos 4 e 6.

(ponto 6) e interpolada dos valores de intensidade nos verti es 2 e 3, ou seja


I6 = I3

y3 yv
yv y2
+ I2
y3 y2
y3 y2

(11.12)

Uma vez que as intensidades nesses pontos da extremidade de uma linha de varredura sejam
determinados, um ponto interior (tal omo ponto 5) e interpolado omo
I5 = I4

x6 xv
xv x4
+ I6
x6 x4
x6 x4

(11.13)

Esse pro esso e repetido para ada linha que passa pelo polgono. No metodo de Gouraud, normais
a superf ie devem primeiro ser aproximadas em ada verti e do polgono. Isto e realizado al ulandose a media das normais da superf ie para ada polgono ontendo o verti e, ou seja
n
X

Ni

(11.14)

i=1

NV =
k

n
X
i=1

Nik

omo ilustrado na gura 11.13.


N2

N1
NV

N3

N5
N4

Figura 11.13: O vetor normal no verti e P e al ulado omo a media das normais para ada fa e, NV =
(N1 + N2 + N3 + N4 + N5 )/5.

Modelos de Ilumina
c
ao

139

Esses vetores normais s~ao ent~ao usados no modelo de sombreamento para gerar os valores de
intensidade dos verti es. Quando uma or e usada para sombrear uma superf ie, a intensidade de
ada omponente de or e al ulada nos verti es. Um exemplo de objeto sombreado om o metodo
de Gouraud e mostrado na gura 11.16(b).
Para reduzir o usto omputa ional, as equa ~oes 11.11 a 11.13 s~ao normalmente implementadas
omo al ulos in rementais. A intensidade de um pixel pode ser al ulada a partir do pixel anterior
de a ordo om o in remento de intensidade
Iv =

x
(I6 I4)
x6 x4

Iv,n = Iv,n1 + Iv

(11.15)
(11.16)

O sombreamento de Gouraud remove as des ontinuidades de intensidade asso iadas om o modelo


de intensidade onstante, mas tem outras de i^en ias. Brilhos (highlights) na superf ie s~ao frequentemente exibidas om formas an^omalas e a interpola ~ao de intensidade linear pode ausar varia ~oes
de intensidade brilhantes ou es uros na superf ie, hamadas bandas de Ma h. Esses efeitos podem
ser reduzidos subdividindo-se a superf ie em um numero maior de fa es poligonais ou usar outros
metodos, omo o sombreamento de Phong, que requer mais al ulos.
11.2.3

Sombreamento de Phong

Aperfei oamentos no sombreamento de Gouraud podem ser realizados aproximando-se a normal da


superf ie em ada ponto ao longo de uma linha de varredura. O metodo reduz signi ativamente o
efeito de bandas de Ma h.
O passo ini ial do pro esso e o mesmo do sombreamento de Gouraud, em que as normais dos
verti es do polgono s~ao al uladas. Para ada linha de varredura que passa pelo polgono, o metodo
interpola linearmente os vetores normais nos pontos da extremidade da linha. Para o polgono mostrado na gura 11.14, o vetor normal no ponto 4 e interpolado a partir das normais al uladas nos
pontos 1 e 2. A normal no ponto 6 e al ulada, de forma similar, a partir das normais nos pontos 2 e
3. Os vetores normais dos pontos 4 e 6 s~ao ent~ao utilizados para interpolar o vetor normal no ponto 5
N4 = N1

y4 y2
y1 y4
+ N2
y1 y2
y1 y2

(11.17)

N6 = N3

y6 y2
y3 y6
+ N2
y3 y2
y3 y2

(11.18)

N5 = N4

x6 x5
x5 x4
+ N6
x6 x4
x6 x4

(11.19)

Dessa forma, um vetor normal para ada ponto ao longo da linha de varredura e interpolado
e ent~ao utilizado no al ulo da intensidade. Um exemplo de objeto sombreado om o metodo de
Phong e mostrado na gura 11.16( ). O metodo de Phong produz resultados mais pre isos do que o
sombreamento de Gouraud, entretanto, requer onsideravelmente mais al ulos.

11.3

Exemplos de Cenas

140

Computa
c
ao Gr
afica

H
elio Pedrini

3
1

linha de varredura

Figura 11.14: Sombreamento de Phong.

Figura 11.15: Exemplos de sombreamento. (a) onstante; (b) Gouraud; ( ) Phong.

Figura 11.16: Exemplos de sombreamento. (a) onstante; (b) Gouraud; ( ) Phong.

Modelos de Ilumina
c
ao

141

Figura 11.17:

Wireframe.

Figura 11.18: Apenas luz ambiente.

142

Computa
c
ao Gr
afica

Figura 11.19: Intensidade Constante om re ex~ao difusa.

Figura 11.20: Gouraud om re ex~ao difusa.

H
elio Pedrini

Modelos de Ilumina
c
ao

143

Figura 11.21: Gouraud om re ex~ao espe ular.

Figura 11.22: Phong om re ex~ao espe ular (superf ies planas).

144

Computa
c
ao Gr
afica

Figura 11.23: Phong om re ex~ao espe ular (superf ies urvas).

Figura 11.24: Modelo de ilumina ~ao aperfei oado e multiplas fontes de luz.

H
elio Pedrini

Modelos de Ilumina
c
ao

145

Figura 11.25: Mapeamento de textura.

146

Computa
c
ao Gr
afica

11.4

Comandos Relacionados `
a Ilumina
c
ao em OpenGL

11.4.1

Definic
ao de fonte de luz

H
elio Pedrini

Para ada fonte de luz, pode-se atribuir omponentes RGB difusa, espe ular e de ambiente, bem omo
suas posi ~oes:
GL float diffuse0[]={1.0, 0.0, 0.0, 1.0};
GL float ambient0[]={1.0, 0.0, 0.0, 1.0};
GL float specular0[]={1.0, 0.0, 0.0, 1.0};
Glfloat light0_pos[]={1.0, 2.0, 3,0, 1.0};
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightv(GL_LIGHT0, GL_POSITION, light0_pos);
glLightv(GL_LIGHT0, GL_AMBIENT, ambient0);
glLightv(GL_LIGHT0, GL_DIFFUSE, diffuse0);
glLightv(GL_LIGHT0, GL_SPECULAR, specular0);

O fator de atenua ~ao 1/(c1 + c2d + c2d2) default tem omo par^ametros: c1 = 0, c2 = 0 e c3 = 0,
ou seja, n~ao ha atenua ~ao. Esses par^ametros podem ser alterados, por exemplo:
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 0.80);
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.75);
glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.32);

11.4.2

Propriedades de Material

GLfloat ambient[] = {0.2, 0.2, 0.2, 1.0};


GLfloat diffuse[] = {1.0, 0.8, 0.0, 1.0};
GLfloat specular[] = {1.0, 1.0, 1.0, 1.0};
GLfloat shine = 100.0
glMaterialf(GL_FRONT, GL_AMBIENT, ambient);
glMaterialf(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialf(GL_FRONT, GL_SPECULAR, specular);
glMaterialf(GL_FRONT, GL_SHININESS, shine);

11.4.3

Sombreamento Poligonal

Interpola ~ao onstante: glShadeModel(GL_FLAT);


Interpola ~ao suave (Gouraud): glShadeModel(GL_SMOOTH);

Bibliografia

Você também pode gostar