Algoritmos de Varrimento Avançados para Desenho de Primitivas 2D

Slides:



Advertisements
Apresentações semelhantes
RECORTE DE FIGURAS Algoritmo proposto para Recorte de Segmentos (atribuído a Ivan Sutherland e Dan Cohen) Para o entendimento do algoritmo a ser proposto,
Advertisements

Geometria Computacional Galeria de Arte
PREENCHIMENTO DE POLÍGONOS
Sólidos Geométricos.
10º CAPÍTULO Segmentação de imagem.
Introdução aos Computadores e Programação DI-FCT-UNL-2005/2006 Strings, operadores e funções 3.1 Octave Matrizes (cont.) e strings.
Backpropagation Through Time
Computação Gráfica I Conteúdo: Professor: - Recorte 2D
ÉLDMAN DE OLIVEIRA NUNES E AURA CONCI INSTITUTO DE COMPUTAÇÃO UFF
Clipping. b. Triangle Strips Idéia fundamental: minimizar volume de vértices e consequentemente, minimizar cálculos de iluminação, normais, clipping,
COMPUTAÇÃO GRÁFICA.
2002 LCG/UFRJ. All rights reserved. 1 Arranjos Claudio Esperança Paulo Roma.
Introdução à Computação Gráfica Recorte
2002 LCG/UFRJ. All rights reserved. 1 Localização no Plano Claudio Esperança Paulo Roma.
Claudio Esperança Paulo Roma
Visualização e Projeções I
DIM102 1 Visualização e Projeções 35M34 – Sala 3E1 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227.
Iluminação e Sombreamento
Algoritmos de Varrimento para Desenho de Primitivas 2D
DIM102 1 Curvas e Superfícies 35T56 – Sala 3F4 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227.
35T56 – Sala 3F4 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227
24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227
Geoprocessamento na Agricultura de Precisão
Curso de Cafeicultura de Precisão
Recorte e seleção de linhas e polígonos
INF 1366 – Computação Gráfica Interativa Clipping (Recorte)
Acompanhamento de Cenas com Calibração Automática de Câmeras
Aplicações com Filas Coloração de Regiões.
Classificação e Pesquisa de Dados
Recomenda-se escolher pontos equidistantes, e também aqueles localizados sobre os pontos de máxima curvatura das linhas. Rio Azul BR 446 A polilinha criada.
Gerenciamento de projetos
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Computação Gráfica: Rendering e Rasterização
Linguagem C Strings.
SIMETRIAS.
Buscas em Grafos Prof. André Renato 1º Semestre/2012
PRISMAS COLÉGIO DECISIVO Matemática Professor Wilen GEOMETRIA ESPACIAL
Prova AA.
Disciplina Inteligência Artificial Defesa de Projeto Período
Fundamentos de Programação
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO COMPUTAÇÃO GRÁFICA
Matemática 3º ano – Ensino Médio
Microsoft Word Unidade 4 – Processamento de Texto.
POLÍGONOS.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Helder Geovane Gomes de Lima
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 03) Prof. Alessandro Bernardo.
Transformada de Hough Processamento global para a detecção de linhas retas numa imagem Nenhum conhecimento é necessário a respeito da posição das linhas.
INF 1366 – Computação Gráfica Interativa Rasterização
Matemática e suas Tecnologias - Matemática
ALGORITMOS AULA 3. Objetivos Apresentação das estruturas básicas; Definição de tipos de dados; Seqüência de ações; Operações – Atribuições; – Entrada.
VETORES.
Prof. Edison Oliveira de Jesus
Computação Gráfica - Recorte
Figura 5 - O plano mostrando detalhes da projeção em perspectiva.
Operações de análise espacial: derivação Principais tipos de operações sobre estruturas de dados vectoriais que originam novos objectos espaciais.
Operações espaciais Modelação Cartográfica. Dados de entrada e de saída Dados de entrada Operações Dados intermédios Dados de saída.
Vidros Base de Dados de Identificação de Vidros. Setembro de Fonte:
Teste.
Recorte C o A o idA atrib1 atrib2 “clip” idC atrib1 atrib2 B o idB atrib3 atrib1 atrib4=max(atrib2) dissolução D o idD atrib1 atrib idAatrib1atrib2.
Programação Dinâmica Profa. Sandra de Amo Bacharelado em Ciência da Computação – UFU Disciplina de Análise de Algoritmos.
Computação Gráfica - Recorte Profa. Mercedes Gonzales Márquez.
Prof. Edison Oliveira de Jesus
1 Computação Gráfica Prof. Dr. Júlio C. Klafke UNIP-Objetivo
ALGUNS CONSELHOS. NOME: Fonte da imagem:
Teste.
Teste.
Teste.
Teste\. testes.
Transcrição da apresentação:

Algoritmos de Varrimento Avançados para Desenho de Primitivas 2D 24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 327

Recorte Recorte (clipping) é o processo de determinação da(s) porção(ões) de uma primitiva internas à uma área de recorte (clip region) Scissoring (tesourando?)

Algoritmo de Nicholl-Lee-Nicholl Algoritmos podem calcular as 4 interseções da linha com a janela de recorte e compará-las aos pontos finais da linha O Algoritmo de NLN determina onde o ponto inicial (P) e o ponto final (Q) estão Essas posições determinam quais arestas a linha intersecta Regiões são nomeadas de acordo com quais arestas intersectadas pelas linhas que passam por elas

Algoritmo de Nicholl-Lee-Nicholl Linha PQ é testada para se saber se está a direita ou a esquerda das linhs P(xmin,ymax) e P(xmax,ymax) Como os cálculos destes testes e das interseções são similares, alguns valores são armazenados para reutilização

Recorte de Polígonos Ambiguidade: inclusão ou não de arestas não-pertencentes (degenerated) ao polígono original Podem causar problemas caso o polígono recortado seja utilizado para definir uma polilinha

Algoritmo de Liang-Barsky Polígonos são uma sequência de pontos P1, P2, ..., Pn e as arestas do polígono são P1P2, P2P3, ..., PnP1 P(t)=(1-t)Pi + tPi+1, onde 0<t<=1 Regiões são classificadas de acordo com os planos definidos pela linhas de recorte Posições finais de arestas determinam quais linhas de recorte podem ser interceptadas pela próxima aresta

Algoritmo de Liang-Barsky A aresta que entra em uma das 4 regiões dos cantos adiciona o vértice do canto Usando-se a formulação paramétrica, computa-se os valores tin1, tin2, tout1 e tout2

Algoritmo de Liang-Barsky Duas possibilidades (abaixo) – tin1 e tout2 são a primeira e última interseções Se a aresta é visível então 0<tout1 e 1>tin2 Casos especiais para linhas verticais e horizontais

Algoritmo de Liang-Barsky Uma etapa de pós-processamento é necessária para remover arestas não desejáveis geradas pelo algoritmo

Algoritmo para Polígonos de Weiler Permite efetuar o recorte de um polígono (A) contra outro (B) Algoritmo encontra grupos de polilinhas fechadas que são bordas de regiões disjuntas O polígono recortado corresponde as regiões pertencentes a A e B Interseções de arestas dos dois polígonos resultam na adição de novos vértices As arestas são repetidas, gerando contornos

Algoritmo para Polígonos de Weiler

Algoritmo para Polígonos de Weiler Cada aresta gera dois contornos Reorganização de contornos para que eles formem as bordas das regiões disjuntas As áreas classificadas como pertencentes a AB formam o polígono recortado Algoritmo funciona com um número arbitrário de polígonos e consiste em: Achar interseções de arestas de A e B Separar as regiões Selecionar regiões que estão em A e B

Algoritmo para Polígonos de Weiler Reorganizando contornos em: Interseções transversas Interseções não- transversas (arestas coincidentes) Interseções tangenciais

Algoritmo para Polígonos de Weiler

Algoritmo para Polígonos de Weiler Árvore utilizada para descrever relacionamento entre os contornos Resultado é obtido selecionando-se a sub-árvore que contém os contornos que pertencem a A e B

Desenhando primitivas Atributos: Estilos de linha, fim-de-linha, preenchimento e junção-de-linhas, e largura de linha Atributos são tratados como geométricos ou cosméticos Modelo de referência determina a semântica de um sistema gráfico

Algoritmos de Linha, Polilinha e Círculo Linhas com pontos finais não-inteiros Polilinhas com ângulos muito agudos (problemas com xor) Círculos com raio e centro não inteiros (sem simetria) Algoritmo do ponto médio tem de ser modificado, alterando-se a inicialização e diferenças parcias

Primitivas Largas Formato dos pontos finais de linhas e junções em polilinhas Geralmente vários estilos são implementados em sistemas gráficos

Primitivas preenchidas Estratégias de preenchimento: Par-ímpar Não-exterior Nonzero winding Traçe uma reta do ponto para o exterior do polígono. Adicione 1 para as arestas cruzadas em uma direção e subtraia 1 para a outra direção Se o número de winding não é 0 o ponto é interno

Antialiasing (linhas) Calculando interseções de linhas de larguras diferentes Como lidar com os pontos finais das linhas? Problemas com interseções de linhas Como tratar cores em linhas cruzadas? Acumulação das primitivas antes do desenho

Antialiasing (Círculos) Interseção com filtro cônico de raio 1 também depende do raio do círculo Tabelas individuais para raios menores e uma para raios maiores Para círculos de raio não-inteiro, interpola-se os valores das tabelas

Antialiasing (Pontos Fins de Linhas, Retângulos, Polígonos) No caso de pequenos retângulos, a interseção é calculada pela subtração de duas interseções com retângulos maiores Fins de linhas arredondados podem ser calculados como meios-círculos Polígonos podem ser tratados como se fossem retângulos, i.e., com ângulos de 90o (aproximação falha em alguns casos) Tabelas extras para 45o e 135o propiciam um melhor resultado

Problemas com Texto Especificações subpixel (superamostragem) Armazenamento das fontes em diferentes fases (translações no subgrid) aumenta a quantidade de memória necessária Mover e aumentar definições de letras baseadas em splines Filtros passa-baixa borram as letras, eliminando pimples, pequenos buracos e imperfeições. Técnicas para diminuição do custo computacional são necessárias

Álgebra de Formas Decomposição de formas em regiões retangulares disjuntas Estrutura de dados armazena os spans Facilmente combinadas usando- se operações Booleanas (importante em Geometria Construtiva de Sólidos - CSG)

Álgebra de Formas Pode-se usar um algoritmo de conversão de scans para criar formas de primitivas mais complexas Pode-se usar tabelas de arestas ativas para armazenar os retângulos (neste caso linhas) que compõem a forma

Álgebra de Formas - Interseções A interseção é calculada buscando- se por retângulos que se sobrepõem Checa-se por ordem: as extensões das formas em y, os intervalos dos spans em y e em x Algoritmo pode ser combinado com preenchimento

Álgebra de Formas Algumas primitivas não produzem formas compactas (linhas inclinadas), então pode ser vantajoso usar recorte analítico Formas podem ficar fragmentadas após várias operações, tornando-se necessário fazer uma condensação de formas Para acelerar o uso desta técnica é vantajoso que se implemente rotinas de interseção-e- preenchimento, eliminando-se a necessidade da estrutura de dados mencionada anteriormente