Вы находитесь на странице: 1из 9

Computao Grfica e Processamento de Imagens recorte (clipping) de : o segmentos de retas o polgonos o textos

Prof. Julio Arakaki

2005

Julio Arakaki

Computao Grfica e Processamento de Imagens

Recorte (clipping)
Processo de visualizao que leva em conta apenas o contedo da janela de desenho.

Ponto
Assumindo que a janela para recorte seja uma rea retangular, um ponto (x,y) ser desenhado numa rea de tela se obedecer as seguintes inequaes: xwmin <= x <= xwmax ywmin <= y <= ywmax onde, as bordas da janela podem ser uma janela de coordenadas globais ou as bordas de uma viewport.

Retas (segmentos de retas)


Para realizar o recorte de segmentos de retas, necessrio testar se o segmento esta totalmente fora ou totalmente dentro da rea de recorte. Caso contrrio, deve-se achar as interseces do segmento com as bordas da janela de recorte.

Julio Arakaki

Computao Grfica 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. Todas as extremidades dos segmentos so codificadas atravs de um cdigo binrio de 4 dgitos, que identifica a localizao do ponto em relao s bordas da rea de recorte. Uma possvel codificao poderia ser:

1001

1000

1010 (xwmax, ywmax) 0010

Onde: bit1: left bit2: right bit3: below bit4: above

0001 (xwmin, ywmin) 0101

0000

0100

0110

Julio Arakaki

Computao Grfica e Processamento de Imagens

Se uma extremidade tem cdigo 0101 ento, este ponto esta esquerda e abaixo da janela. Assim, para fazer o recorte em funo de uma janela pr-estabelecida, deve -se seguir as seguintes regras: Os segmentos de reta cujas extremidades tem cdigos 0000, esto totalmente dentro da rea de recorte. Os segmentos de reta que possuem cdigos das extremidades com 1 no mesmo bit, esto totalmente fora da rea de recorte. Os segmentos que no so identificadas como totalmente dentro ou totalmente fora, devero ser recortadas de acordo com o algoritmo a seguir:
P2 P2 P2

P3 P1

P1 P4

Para os segmentos da figura, temos: 1. Verificar a posio relativa de P1 em funo da janela (right, left, below ou above): abaixo da janela 2. Procurar a interseco com a borda inferior da janela e definir P1 3. Verificar a posio de P2 em relao janela: esquerda e acima da janela. Definir P2 e P2 atravs da interseco com a borda esquerda e superior, respectivamente.
4

Julio Arakaki

Computao Grfica e Processamento de Imagens

4. Armazenar segmento definido por P1 e P2.

Clculo dos pontos de interseco das linhas com as bordas da janela:


Seja um segmento de reta definido por: (x1, y1) e (x2, y2), o ponto de interseco (x, y) dado por: Para interseco com as bordas verticais: y = y1 + m(x - x1), onde x pode valer xwmin ou xwmax. Para interseco com as bordas horizontais: x = x1 + (y - y1)/m, onde y pode valer ywmin ou ywmax. Onde, m = (y2-y2)/(x2-x1)

Julio Arakaki

Computao Grfica e Processamento de Imagens

Polgonos:
Um polgono formado por um conjunto de segmentos de retas interligados e formando uma rea fechada. A utilizao de algoritmos para recorte de polgonos, acarretar em uma srie de segmentos no conectados como na figura abaixo. Desta maneira, os algoritmos para recorte de polgonos devero recortar os segmentos de retas e tambm fechar as reas formadas aps o recorte.

Incorreto

Correto

Julio Arakaki

Computao Grfica e Processamento de Imagens

Sutherland-Hodgeman polygon clipping

V3 V2 V2

V2

V3

V1 V1

IN V1 V2 V3

Left Clipper V1 V1 V2, V3

Right Clipper V1 V1 V2, V3

botton Clipper V2, V2 V3 V3

Top Clipper

OUT V2, V2 V3 V3

Este algoritmo, funciona bem para polgonos convexos. Para polgonos cncavos pode ocorrer a seguinte situao:

Produz duas reas conectadas.

CORRETO

Julio Arakaki

Computao Grfica e Processamento de Imagens

Este tipo de problema ocorre quando o polgono a ser recortado tem duas ou mais reas separadas aps o recorte. A soluo para este problema, a utilizao de um algoritmo mais genrico.

Weiler-Atherton Polygon Clipping

V2 V1

V1 V3 V4 V4 V5 V6

V3

V5

Algoritmo: Seguir as bordas do polgono no sentido horrio e aplicar as seguintes regras: Para um par de vrtices outside to inside, segue-se a borda do polgono, armazenando-se o ponto de interseco. Para um par de vrtice inside to outside, segue-se a borda da janela.

Julio Arakaki

Computao Grfica e Processamento de Imagens

clipping de textos
Envoltria no texto

Envoltria sobre cada caractere

Sem envoltria

Para texto vetorial, utiliza-se clipping de retas. Para texto matricial, verifica-se cada pixel da matriz de caractere em relao s bordas da janela.

Вам также может понравиться