cci 36 – computação gráfica formas vetoriais -...
TRANSCRIPT
![Page 1: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/1.jpg)
CCCCII 3366 –– CCoommppuuttaaççããoo GGrrááffiiccaa
FFoorrmmaass VVeettoorriiaaiiss
Instituto Tecnológico de Aeronáutica
Prof. Carlos Henrique Q. Forster – Sala 121 IEC
![Page 2: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/2.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 2/20
Tópicos da aula
• Ambiente gráfico em modo retido e modo imediato • Definições, fill/stroke, line style, joint style, z-order, hierarquia (grupos),
aspect ratio (na rasterização), transparência e alpha-blending • Viewport e recorte de polígonos • Algoritmos em polígonos: point-in polygon, area (e orientação) • Scanlines: divisão em trapézios, intersection e clipping • Scan-conversion dos trapézios • Anti-aliasing e dithering
![Page 3: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/3.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 3/20
Livro para acompanhar essa aula
Foley
![Page 4: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/4.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 4/20
Ambiente gráfico em modo retido e modo imediato
Modo retido:
- Um modelo geométrico é mantido em estrutura de dados em memória
- O modelo é renderizado para o display
- O programa altera parâmetros no modelo, ou sua estrutura
O SVG exemplifica um ambiente em modo retido.
Modo imediato:
- Toda vez que for necessário redesenhar o buffer de imagem do display, uma função do programa é invocada para redesenhar
- O programa chama funções de desenho. Estas chamadas estão organizadas na estrutura de controle do programa (for, if, subrotinas etc).
- O programa cuida da ordem em que são desenhadas as primitivas.
O HTML5/Canvas, o PyGame e o QPainter exemplificam esse modo.
![Page 5: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/5.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 5/20
Conceitos em figuras vetoriais
Escalável: significa que não há perda de resolução quando se faz escala de um modelo vetorial, diferentemente de uma imagem amostrada. Características de formas geométricas em 2D: fill/stroke – preenchimento e contorno line style – estilo da linha e de suas terminações joint style – especial destaque para as juntas com limite de mitra aspect ratio – é o razão da dimensão horizontal pela vertical de um pixel. Na rasterização de formas geométricas pode gerar distorções. z-order – os elementos gráficos possuem uma ordem na qual cada um é colocado sobre o anterior, podendo ocultar o anterior ou parte dele. Há implicações na seleção do objeto também. hierarquia (grupos) – os elemento gráficos podem ser organizados em grupos de objetos e grupos podem conter grupos.
![Page 6: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/6.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 6/20
Transparência e alpha-blending. Um elemento gráfico pode ser declarado com um percentual de opacidade, deixando o elemento que está sobre ele transparecer. O método de exibição usual é o alpha-blending. Neste caso, usa-se o valor do canal alpha da imagem (ou o valor de opacidade) para calcular a cor do pixel na rasterização. Cor_pixel= alpha * cor_do_objeto + (1-alpha) * cor_do_fundo
![Page 7: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/7.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 7/20
• Viewport e recorte de polígonos A janela é uma região da tela gráfica em que a figura representada é reproduzida. As coordenadas de janela são expressas em pixels da tela. Pode-se aplicar a razão de aspecto para realizar correções. O viewport é a região do espaço da figura representada que deve ser mapeada na janela. Usualmente é um retângulo e suas coordenadas estão no espaço do modelo geométrico. O processo de exibição consiste em recortar o modelo geométrico, mantendo apenas a porção da figura que se encontra no interior do viewport. Em seguida, a figura é transformada em coordenadas de tela. Por fim, a figura é rasterizada produzindo os pixels da janela.
![Page 8: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/8.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 8/20
Algoritmos em polígonos: point-in polygon, area (e orientação) Point-in-polygon
Área
![Page 9: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/9.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 9/20
Clipping de Polígonos Sutherland-Hodgman - Corta contra polígono convexo - Cada aresta define uma reta - Percorre o polígono em ordem - Quando cruza a reta, inclui o ponto de cruzamento - Se o vértice está no lado positivo da reta, inclui no output. - Faz isso para cada aresta do polígono de corte O resultado pode ser um conjunto de polígonos desconexo e objetos com área nula!!
![Page 10: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/10.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 10/20
Weiler-Atherton - Corta polígono genérico sem auto-intersecção - Rotula todos pontos como internos ou externos ao polígono de corte - Acrescentam-se todos os pontos de intersecção das arestas - Percorrem-se os vértices no sentido horário - Quando atinge uma intersecção de aresta, passa a percorrer os vértices do polígono de corte ou do polígono sendo cortado, alternando-se
![Page 11: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/11.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 11/20
Greiner-Hormann
- Rotula pontos de intersecção alternadamente como de entrada e de saída - Usa a regra par-ímpar para tratar polígonos com auto-intersecção
![Page 12: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/12.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 12/20
Scanlines: divisão em trapézios, intersection e clipping
Vatti Clipping faz a intersecção utilizando scanlines dos dois polígonos
![Page 13: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/13.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 13/20
Divisão em trapézios
![Page 14: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/14.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 14/20
![Page 15: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/15.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 15/20
Scan-conversion de polígonos:
![Page 16: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/16.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 16/20
Lista de arestas ativas
![Page 17: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/17.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 17/20
Scan-conversion dos trapézios
![Page 18: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/18.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 18/20
Anti-aliasing
![Page 19: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/19.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 19/20
Dithering
Floyd-Steinberg
* 7 (1/16)
3 5 1
![Page 20: CCI 36 – Computação Gráfica Formas Vetoriais - comp.ita.brforster/CCI-36-2018/03-Formas-Vetoriais.pdf · • Scan-conversion dos trapézios](https://reader030.vdocuments.pub/reader030/viewer/2022020216/5c07cd8409d3f23a458ba7c4/html5/thumbnails/20.jpg)
CCI 36 – Computação Gráfica – ITA – IEC Formas Vetoriais - 20/20
Poisson-disk sampling Dithering