1 / 46

Computação Gráfica - Recorte

Computação Gráfica - Recorte. Profa. Mercedes Gonzales Márquez. Recapitulando... Conceito de Recorte Recorte de Pontos Recorte de Segmentos em Regiões Planares – Algoritmo de Cohen Sutherland Algoritmo de Cyrus-Beck. Tópicos. Recorte de Polígonos em Regiões Planares

Download Presentation

Computação Gráfica - Recorte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computação Gráfica - Recorte Profa. Mercedes Gonzales Márquez

  2. Recapitulando... Conceito de Recorte Recorte de Pontos Recorte de Segmentos em Regiões Planares – Algoritmo de Cohen Sutherland Algoritmo de Cyrus-Beck Tópicos • Recorte de PolígonosemRegiõesPlanares – Algoritmo de Sutherland-Hodgeman

  3. Recapitulando... (Conceito CG)

  4. Recapitulando... (Modelagem Geométrica)

  5. Recapitulando... (Modelagem Geométrica)

  6. Recapitulando... (Modelagem Geométrica)

  7. Recapitulando ... (Transformações Geométricas)

  8. Recapitulando ... (Transformações Geométricas)

  9. Recapitulando ... MODELAGEM GEOMETRICA 3D + TRANSFORMAÇÕES GEOMÉTRICAS = CENÁRIO 3D

  10. Recapitulando ... CENÁRIO 3D IMAGEM SERÁ NECESSÁRIO • PROJEÇÃO • RECORTE • AMOSTRAGEM • REMOÇÃO DE SUPERFÍCIES ESCONDIDAS (VISUALIZAÇÃO) • COLORIZAÇÃO (ILUMINAÇÃO E TEXTURIZAÇÃO)

  11. Recapitulando ... CENÁRIO 3D IMAGEM SERÁ NECESSÁRIO: • RECORTE • PROJEÇÃO • AMOSTRAGEM • REMOÇÃO DE SUPERFÍCIES ESCONDIDAS (VISUALIZAÇÃO) • COLORIZAÇÃO (ILUMINAÇÃO E TEXTURIZAÇÃO)

  12. Recorte • A técnica de recorte consiste na remoção das partes que não estejam dentro do volume de visão. • Somente as figuras geométricas contidas na janela de visão devem aparecer.

  13. Recorte • Remover os pontos que estão fora do volume de visão se reduz, numericamente, em um problema de interseção entre os seus planos limitantes e as figuras geométricas de uma cena e classificação do resultado.

  14. 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)

  15. 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

  16. 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 SegmentosemRegiõesPlanaresouRecorte 2D – Algoritmo de Cohen Sutherland • Algoritmo de Cyrus-Beck

  17. Recorte de Segmentos em Regiões Planaresou Recorte 2D

  18. Algoritmo de Cohen-Sutherland • O algoritmo de Cohen-Sutherland se baseia em dois fatos: • um segmento está totalmente contido em uma região, se e somente se, os seus pontos extremos estão contidos nela, • um segmento está totalmente fora de uma região, se os seus pontos extremos estiverem em um semi-plano que não contém a região.

  19. 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.

  20. 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á contido 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.

  21. Algoritmo de Cohen-Sutherland • O que faremos no caso 3?

  22. Algoritmo de Cohen-Sutherland

  23. Algoritmo de Cohen-Sutherland unsigned char code(double x, double y,double xmin, double xmax, double ymin, double ymax){ unsigned char code=0; if (y > ymax) code += 8; if (y < ymin) code += 4; if (x > xmax) code += 2; if (x < xmin) code += 1; return code; }

  24. Algoritmo de Cohen-Sutherland

  25. Algoritmo de Cohen-Sutherland

  26. Algoritmo de Cohen-Sutherland

  27. Algoritmo de Cohen-Sutherland Teste o programa Cohen-Sutherland para a seguinte região recortantee para os seguintes segmentos: Xmin=-3, xmax=5, ymin=-3, ymax=3 • P0=(0,1) e P1=(4,5) • P0=(4,6) e P1=(7,2) • P0=(0,0) e P1=(3,2) • P0=(-4,5) e P1=(-1,4) • P0=(3,-4) e P1=(6,-2)

  28. 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.

  29. Algoritmo Cyrus-Beck A Figura abaixomostraumaarestaEi da região de recorte,ovetor normal Ni que aponta para fora, e o segmento P0 a P1. Fora da região Dentro da região PEi P1 3 2 P0 1 Ni 1. Ponto fora da região 2. Ponto na interseção com a aresta 3. Ponto dentro da região

  30. Algoritmo Cyrus-Beck Só os pontos cujo t está no intervalo [0,1] estãocontidos no segmento de reta. X3 (t>1) X2 (0<t<1) X1 (t<0)

  31. Algoritmo Cyrus-Beck • Dado um polígono recortante de n arestas Ei e um segmento P0P1, sua reta suporte interseta as n retas induzidas pelas arestas do polígono (caso geral). • Quando n =4 (retângulo) calculamos os quatro valores do parâmetro t no qual a reta interseta as quatro retas laterais do retângulo de recorte. P1 P0

  32. Algoritmo Cyrus-Beck • Usamos a equação para encontrar as interseção com a aresta Ei. • Após calcular o valor de t para as quatro retas descartamos os valores de t fora do intervalo [0,1]. PEi P1 P0 Ni

  33. Algoritmo Cyrus-Beck Classificamos as interseções restantes em: - Potencialmente Entrando (PE) - Potencialmente Saindo (PL) implica PE → implica PL → Ei P1 P0 Ni Ei P0 P1 Ni

  34. Algoritmo Cyrus-Beck • Para cada reta: • Ache o PE com maior t (PEm) • Ache o PL com menor t (PLM) • Se PEm<PLM recorte nesses 2 pontos

  35. Algoritmo Cyrus-Beck Troque o segmento a ser recortado e o polígono recortante no programa cyrus-beck.cpp pelos segmentos A, B e C e o polígono recortante da figura anterior. Dê a fórmula para obter o vetor normal de uma aresta do polígono. Em quais situações ?

  36. Antes do recorte Depois do recorte Recorte de Polígonos

  37. Polígono Original Recorte esquerdo Recorte direito Recorte inferior Recorte Superior Algoritmo de Sutherland-Hodgeman • PrincípioBásico: • Considerarindividualmentecadaarestadaregiãorecortante. • Recortar o polígonopelaequaçãodaaresta. • Depois de fazerissoparatodas as arestas, o polígonoestarácompletamenterecortado.

  38. Algoritmo de Sutherland-Hodgeman • Entrada/Saída do algoritmo • Entrada: listaordenada de vértices do polígono • Saída: lista dos vérticesrecortados, com algunsvérticesoriginais (possivelmente) e outrosnovos (possivelmente)

  39. Algoritmo de Sutherland-Hodgeman Aresta de s a p se enquadra em um dos 4 casos: Dentro Fora Fora Dentro Fora Dentro Fora Dentro p s i s p p s i p s Copiar p Copiar i Ignorar Copiar i,p

  40. Algoritmo de Sutherland-Hodgeman

  41. Algoritmo de Sutherland-Hodgeman

  42. Algoritmo de Sutherland-Hodgeman vf3 vf0 vf1 vf2 1 1 0 0 vd1 vd0 vd2 vd3 vf0 0 vd0 0 vf1 vf2 1vd1 vd2 vd3 1 vf3vf0 0 vd0 0 0 e1 vd1 vd2 vd3 1 1

  43. Algoritmo de Sutherland-Hodgeman 1 1 0 0 vd1 vd0 vd2 vd3

  44. Algoritmo de Sutherland-Hodgeman vf3 vf0 vd0 vd2 vf1 0 vd1 vd3 vf2 0

  45. Algoritmo de Sutherland-Hodgeman vd0 vd2 0 vd1 vd3 0

  46. Algoritmo de Sutherland-Hodgeman Exercício: (1) Mostrepasso a passocomoseria a saída do recorte do seguintepolígono. (2) Vocêpoderiarodar o exemplo (1) usando o programa SutherlandHodgman.cpp postado no site? Quaismodificações deverão ser feitas ?. Faça-as.

More Related