Computação Gráfica - Recorte
Profa. Mercedes Gonzales
Márquez
Tópicos



Conceito de Recorte
Recorte de Pontos
Recorte de Segmentos em Regiões Planares
– Algoritmo de Cohen Sutherland
- Algoritmo de Cyrus-Beck

Recorte de Polígonos em Regiões Planares
– Algoritmo de Sutherland-Hodgeman
Recorte


O objetivo deste tópico é apresentar uma técnica que
melhore o desempenho do imageamento de uma cena
tri-dimensional – o recorte.
A técnica consiste essencialmente em remover
antecipadamente as partes que não estejam dentro do
volume de visão para reduzir a quantidade de operações
que não contribuam efetivamente na qualidade da
imagem exibida.
Recorte


Somente as figuras geométricas contidas no volume de
visão aparecem na área de desenho de uma janela. O
restante das figuras devem ser removidas para não
“poluir” outras áreas da tela, como ilustra a Figura.
O processo de remoção das partes que estejam fora da
janela de exibição é denominado recorte, em inglês
clipping.
Recorte
Recorte de Pontos


Objeto: (x,y,z)
Região Recortante:
–
Região Retangular:
(xmin,xmax,ymin,ymax)
–
Volume Paralelipedal:
(xmin,xmax,ymin,ymax,zmin,zmax)
Recorte de Pontos


Objeto: (x,y,z)
Região Recortante:
–
Região Retangular:
(xmin,xmax,ymin,ymax)

Um ponto (x, y), estará dentro do retângulo de
visualizacao, se:
xmin ≤ x ≤ xmax
ymin ≤ y ≤ ymax
Recorte de Segmentos em Regiões Planares


Objeto: segmentos de reta
Região Recortante:
–
Região Retangular:
(xmin,xmax,ymin,ymax)

Algoritmos de Recorte de Segmentos em Regiões
Planares
– Algoritmo de Cohen Sutherland
- Algoritmo de Cyrus-Beck
Algoritmo de Cohen-Sutherland


O algoritmo de Cohen-Sutherland se baseia em uma
simples constatação: um segmento está totalmente
contido em uma região, se e somente se, os seus
pontos extremos estão contidos nela, e
um segmento está totalmente fora dela, se os seus
pontos extremos estiverem em um semi-espaço que
não contenha a região.
Algoritmo de Cohen-Sutherland

Cohen e Sutherland dividiram o espaço em subespaços a partir da região de interesse e atribuíram
um código para cada sub-espaço de tal forma que
uma operação lógica AND, bit a bit, é suficiente para
separar os segmentos que não interceptam com os
lados da região.
Algoritmo de Cohen-Sutherland

Cohen e Sutherland dividiram o espaço em sub-espaços
a partir da região de interesse e atribuíram um código
para cada sub-espaço de tal forma que uma operação
lógica AND, bit a bit, é suficiente para separar os
segmentos que não interceptam com os lados da região.
Algoritmo de Cohen-Sutherland

.
Algoritmo de Cohen-Sutherland

Se aplicarmos uma operação lógica AND, bit a bit,
entre os códigos dos dois pontos extremos de um
segmento teremos as seguintes possíveis situações:
1. os códigos dos pontos extremos e do resultado são
0000: o segmento está contida na região;
2. o resultado é diferente de zero: o segmento está
totalmente fora da região; e
3. o resultado é 0000 embora os códigos dos pontos
extremos não sejam: é indecidível a pertinência do
segmento à região.
Algoritmo de Cohen-Sutherland

O que faremos no caso 3?
Algoritmo de Cyrus-Beck


Objeto: segmentos de reta
Região Recortante:
–

Convexa
Princípio Básico:
- Uso da representação paramétrica da reta.
- Uso do conceito de vetor normal das arestas da região
de recorte para determinar a que lado da aresta o ponto
se encontra.
Algoritmo Cyrus-Beck
A Figura abaixo mostra uma aresta Ei da região de
recorte e o vetor normal Ni que aponta para fora, e o
segmento P0 a P1.
Fora da região
PEi
Dentro da região
 N i , P ( t )  PEi   0
P1
 N i , P ( t )  PEi   0
P0
3
1
2  N , P (t )  P   0
i
Ei
P ( t )  P0  t ( P1  P0 ) 0  t  1
 N i , P ( t )  PEi   0
t
 N i , P0  PEi 
Eq *
  N i , P1  P 0 
Ni
1. Ponto fora da região 2. Ponto na interseção com a aresta 3. Ponto dentro da região
Algoritmo Cyrus-Beck
Só os pontos cujo t está no intervalo [0,1] estão contidos
no segmento de reta.
X3
(t>1)
X2
(0<t<1)
X1
(t<0)
Algoritmo Cyrus-Beck
•
Dado um polígono recortante de n arestas Ei e um
segmento P0P1, sua reta suporte intersecta as n retas
laterais (induzidas pelas arestas do polígono) em n
pontos (caso geral).
•
Seja n=4 (retângulo). Usando a equação Eq* e um
ponto de cada aresta Ei, calculamos os quatro valores
do parâmetro t no qual a reta intersecta as quatro retas
laterais do retângulo de recorte.
•
Após calcular o valor de t para as quatro retas
Algoritmo Cyrus-Beck
Podemos
simplesmente tentar classificar os valores restantes de t,
que estão dentro do intervalo [0 1], escolhendo os valores internos
de t para pontos de intersecção, como no caso da linha 1. Mas,
funcionaria para a linha 2 e a linha3? Como vc pode distinguir esses
casos e completar o algoritmo ? Veja o livro Síntese de Imagens …
Download

Algoritmo de Cohen-Sutherland