Você está na página 1de 9

“Computação Gráfica e Processamento de Imagens” • recorte (“clipping”) de : o segmentos de retas o polígonos o textos

Prof. Julio Arakaki

2005

1

y) será desenhado numa área de tela se obedecer as seguintes inequações: xwmin <= x <= xwmax ywmin <= y <= ywmax onde. Ponto Assumindo que a janela para recorte seja uma área retangular. 2 . Caso contrário. deve-se achar as intersecções do segmento com as bordas da janela de recorte. Retas (segmentos de retas) Para realizar o recorte de segmentos de retas.Julio Arakaki “Computação Gráfica e Processamento de Imagens” Recorte (“clipping”) Processo de visualização que leva em conta apenas o conteúdo da janela de desenho. é necessário testar se o segmento esta totalmente fora ou totalmente dentro da área de recorte. um ponto (x. as bordas da janela podem ser uma janela de coordenadas globais ou as bordas de uma “viewport”.

ywmin) 0101 0000 0100 0110 3 . Todas as extremidades dos segmentos são codificadas através de um código binário de 4 dígitos. Uma possível codificação poderia ser: 1001 1000 1010 (xwmax.Julio Arakaki “Computação Gráfica e Processamento de Imagens” P9 P4 P2 P10 P2 P3 P5 P1 P6 P8 P5’ P1 P6 P7’ P8’ P7 Antes do “clipping” Depois do “clipping” “Cohen-Sutherland line clipping” É um dos mais antigos e populares algoritmos baseados em recorte de segmentos de reta. que identifica a localização do ponto em relação às bordas da área de recorte. ywmax) 0010 Onde: bit1: “left” bit2: “right” bit3: “below” bit4: “above” 0001 (xwmin.

deverão ser recortadas de acordo com o algoritmo a seguir: P2 P2’ P2” P3 P1’ P1 P4 Para os segmentos da figura. Assim. estão totalmente fora da área de recorte. • Os segmentos que não são identificadas como totalmente dentro ou totalmente fora. temos: 1. estão totalmente dentro da área de recorte. este ponto esta à esquerda e abaixo da janela. para fazer o recorte em função de uma janela pré-estabelecida. deve -se seguir as seguintes regras: • Os segmentos de reta cujas extremidades tem códigos 0000. respectivamente. • Os segmentos de reta que possuem códigos das extremidades com 1 no mesmo bit. Verificar a posição relativa de P1 em função da janela (right. Verificar a posição de P2 em relação à janela: esquerda e acima da janela.Julio Arakaki “Computação Gráfica e Processamento de Imagens” Se uma extremidade tem código 0101 então. Procurar a intersecção com a borda inferior da janela e definir P1’ 3. below ou above): abaixo da janela 2. left. Definir P2’ e P2” através da intersecção com a borda esquerda e superior. 4 .

o ponto de intersecção (x. Para intersecção com as bordas horizontais: x = x1 + (y . Armazenar segmento definido por P1’ e P2”.Julio Arakaki “Computação Gráfica e Processamento de Imagens” 4. y) é dado por: Para intersecção com as bordas verticais: y = y1 + m(x . m = (y2-y2)/(x2-x1) 5 . onde y pode valer ywmin ou ywmax. y2). y1) e (x2. onde x pode valer xwmin ou xwmax. Cálculo dos pontos de intersecção das linhas com as bordas da janela: Seja um segmento de reta definido por: (x1.x1). Onde.y1)/m.

acarretará em uma série de segmentos não conectados como na figura abaixo. Incorreto Correto 6 . Desta maneira. A utilização de algoritmos para recorte de polígonos. os algoritmos para recorte de polígonos deverão recortar os segmentos de retas e também fechar as áreas formadas após o recorte.Julio Arakaki “Computação Gráfica e Processamento de Imagens” Polígonos: Um polígono é formado por um conjunto de segmentos de retas interligados e formando uma área fechada.

V2’ V3 V3’ Este algoritmo. V3 Right Clipper V1 V1’ V2’. Para polígonos côncavos pode ocorrer a seguinte situação: Produz duas áreas conectadas. V3 botton Clipper V2”. V2’ V3 V3’ Top Clipper OUT V2”. CORRETO 7 . funciona bem para polígonos convexos.Julio Arakaki “Computação Gráfica e Processamento de Imagens” “Sutherland-Hodgeman polygon clipping” V3 V2’ V2 V2” V3’ V1’ V1 IN V1 V2 V3 Left Clipper V1 V1’ V2’.

Julio Arakaki “Computação Gráfica e Processamento de Imagens” Este tipo de problema ocorre quando o polígono a ser recortado tem duas ou mais áreas separadas após o recorte. é a utilização de um algoritmo mais genérico. 8 . segue-se a borda da janela. • Para um par de vértice “inside to outside”. armazenando-se o ponto de intersecção. “Weiler-Atherton Polygon Clipping” V2 V1’ V1 V3’ V4 V4’ V5’ V6 V3 V5 Algoritmo: Seguir as bordas do polígono no sentido horário e aplicar as seguintes regras: • Para um par de vértices “outside to inside”. segue-se a borda do polígono. A solução para este problema.

utiliza-se “clipping” de retas.Julio Arakaki “Computação Gráfica e Processamento de Imagens” “clipping” de textos • Envoltória no texto • Envoltória sobre cada caractere • Sem envoltória Para texto vetorial. 9 . Para texto matricial. verifica-se cada “pixel” da matriz de caractere em relação às bordas da janela.