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

Slides:



Advertisements
Apresentações semelhantes
Continuidade: sem interrupções
Advertisements

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,
Microsoft Power Point Profa. Jiani Cardoso
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Departamento de Informática e Estatística - INE/CTC/UFSC Computação Gráfica:
DCA-0114 Computação Gráfica
Capítulo 3 - Aplicações das Derivadas
Informática Aplicada.
Prof. Alex Fernandes da Veiga Machado
Projeções e OpenGL Alex F. V. Machado.
Computação Gráfica I Conteúdo: Professor: - Recorte 2D
COMPUTAÇÃO GRÁFICA.
Claudio Esperança Paulo Roma Cavalcanti
Introdução à Computação Gráfica Recorte
Geometria Computacional Interseção de Segmentos
Interseção de Semiplanos
Tutorial de exercícios Estatística Básica Utilizando o Excel Delamaro e Marins 2a. Aula - Estatística Descritiva.
DIM102 1 Curvas e Superfícies 35T56 – Sala 3F4 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227.
Recorte e seleção de linhas e polígonos
INF 1366 – Computação Gráfica Interativa Clipping (Recorte)
WAR STORY Stripping Triangulations Luciana Oliveira e Silva
Como utilizar esta ferramenta para apresentações profissionais.
Listas com Ponteiros Listas encadeadas Listas circulares.
Ray Tracing.
Técnicas para algoritmos de superfície visível eficientes (Techniques for efficient visible-surface algorithms) Fabio Utzig Rodrigo Senger.
POWER POINT O POWER POINT é um editor de apresentações, pertencente ao
Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 6.
Diagrama de Atividades
Apresentando o PowerPoint
Introdução à Computação Gráfica Projeções
Treinamento do Microsoft® Word 2010
Ray Tracing Felipe Baldino Moreira Fundamentos de Computação Gráfica
Computação Gráfica – Textura
Computação Gráfica – Visibilidade
Computação Gráfica - Amostragem
Visualização Tridimensional (Câmera Sintética)
Capítulo 5 Structures. A - Sequence E - Formula Node B - Case F - Variável Global C - For Loop G - Variável Local D - While Loop ABCD FG E.
Algoritmos e Estruturas de Dados I – Ponteiros
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO COMPUTAÇÃO GRÁFICA
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Computação Gráfica – Transformações Projetivas
Georeferenciamento e projeção de sistemas de coordenadas
Computação Gráfica – Modelagem Geométrica
Computação Gráfica – Introdução ao OpenGL
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Computação Gráfica – Modelagem Geométrica
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.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Prof. Edison Oliveira de Jesus
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
AULA 21 Profa. Sandra de Amo BCC - UFU
Computação Gráfica - Recorte
Geometria Computacional Fecho Convexo
Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 5.
CÁLCULO COM GEOMETRIA ANALÍTICA II Funções de várias variáveis
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Departamento de Informática e Estatística - INE/CTC/UFSC Computação Gráfica:
Introdução à Programação
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Referência rápida do Lync 2013 para Office 365 © 2012 Microsoft Corporation. Todos os direitos reservados. Com o Lync é possível iniciar a colaboração.
EXERCÍCIOS THOBER CORADI DETOFENO, MSC. Aula 13 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC.
Introdução à Computação Gráfica Visibilidade e Recorte
Prof. Edison Oliveira de Jesus
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Disciplina: Otimização Econômica
Introdução à Computação Gráfica Rasterização
Computação Gráfica - Introdução
Codificadores e Decodificadores Prof. Lucas Santos Pereira
1 Computação Gráfica Prof. Dr. Júlio C. Klafke UNIP-Objetivo
POSIÇÃO RELATIVA DE RETAS, SEMIRRETAS E SEGMENTOS DE RETA
Transcrição da apresentação:

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

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

Recapitulando... (Conceito CG)

Recapitulando... (Modelagem Geométrica)

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

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

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)

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)

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

Objeto: (x,y,z) Região Recortante: – Região Retangular: (xmin,xmax,ymin,ymax) – Volume Paralelipedal: (xmin,xmax,ymin,ymax,zmin,zmax) 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: x min ≤ x ≤ x max y min ≤ y ≤ y max Recorte de Pontos

Objeto: segmentos de reta Região Recortante: – Região Retangular: (xmin,xmax,ymin,ymax) Algoritmos de Recorte de Segmentos em Regiões Planares ou Recorte 2D – Algoritmo de Cohen Sutherland - Algoritmo de Cyrus-Beck Recorte de Segmentos em Regiões Planares

Recorte de Segmentos em Regiões Planares ou Recorte 2D

Algoritmo de Cohen-Sutherland Recorte só é necessário quando houver um vértice dentro e outro fora da região recortante. 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 dois vértices estiverem contidos nela, – um segmento está totalmente fora de uma região, se os seus dois vértices estiverem em um semi-plano que não contém a região.

Algoritmo de Cohen-Sutherland Divide-se o espaço em 4 sub-espaços a partir da região de interesse e cria-se um código de 4 bits para cada vértice do segmento. O bit é 0, se o vértice estiver dentro do subespaço e 1 se estiver fora. Subespaço esquerdo: x<xmin (1º bit) Subespaço direito: x>xmax (2º bit) Subespaço inferior: y<ymin (3o bit). Subespaço superior: y>ymax (4o bit)

Algoritmo de Cohen-Sutherland Se aplicarmos uma operação lógica AND, bit a bit, entre os códigos dos dois vértices de um segmento teremos as seguintes possíveis situações: 1. O código dos vértices é 0000: o segmento está contido na região. 2. O resultado é diferente de zero: o segmento está totalmente fora da região.

Algoritmo de Cohen-Sutherland 3. o resultado é 0000 embora os códigos dos vértices não sejam: é indecidível a pertinência do segmento à região. - O segmento pode estar fora da região ou - O segmento pode estar parcialmente contido na região.

Algoritmo de Cohen-Sutherland

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; } 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; }

Algoritmo de Cohen-Sutherland

1. Complete a implementação do algoritmo passado neste arquivo. 2. Acrescente na interface do programa CohenSutherland.cpp, a opção para que a janela recortante seja interativamente redimensionada pelo usuário. Use as dicas passadas no seguinte link: Um menu com 4 opções deverá ser considerado. (1) Redimensionar a janela recortante. (2) Capturar os vértices do segmento a ser recortado. (3) Recortar o segmento (4) Resetar

Algoritmo de Cohen-Sutherland Use glutCreateMenu e os comandos complementares do link referenciado. Para a opção 1 considere apenas a modificação do canto superior esquerdo (SE) e do canto inferior direito (ID) da janela recortante. Os outros dois cantos deverão acompanhar os valores de SE e ID.

Objeto: segmentos de reta Região Recortante: – Convexa Algoritmo de Cyrus-Beck Princípios Básicos: - Uso do vetor normal das arestas da região de recorte para determinar de forma simples as interseções com o segmento. - Uso do mesmo vetor normal para determinar se o segmento está entrando ou saindo da região de recorte.

Algoritmo Cyrus-Beck 1. Ache as n interseções do segmento P 0 P 1 com as n arestas da região de recorte. As retas suporte do segmento ou das arestas poderão ser necessárias. 2. Classifique as interseções como PE (Potencialmente entrando) ou PS (Potencialmente saindo) 3. Ache o PE com maior t (PEm) e o PS com menor t (PSM) - Se PEm<PSM recorte nesses 2 pontos P0P0P0P0 P1P1P1P1 PEPEPEPE PEPEPEPE PSPSPSPS PSPSPSPS

Algoritmo Cyrus-Beck – Vetor normal Seja o vetor normal Ni (apontando para fora) da aresta Ei da região de recorte e seja PEi um ponto sobre Ei. Seja P(t)=P0+t(P1-P0), 0<=t<=1, a equação do segmento S unindo P0 e P1. P0P0P0P0 P1P1P1P1 NiNiNiNi P Ei Fora da região Dentro da região Um ponto sobre P(t) pode ser 1. Ponto fora da região 2. Ponto na interseção com a aresta 3. Ponto dentro da região 3 2 1

Determinando a interseção Então haverá interseção do segmento com a aresta Ei - Se P0 não coincidir com P1. - Se o segmento não for paralelo à aresta - Se o ponto de interseção estiver dentro do segmento. Determinação do t no qual haverá interseção. - Condição para a interseção

Classificando a interseção Classificamos as interseções restantes em: Classificamos as interseções restantes em: - Potencialmente Entrando (PE) - Potencialmente Saindo (PL) implica PE → implica PE → implica PL → implica PL → P0P0P0P0 P1P1P1P1 NiNiNiNi Ei P0P0P0P0 NiNiNiNi Ei P1P1P1P1

Algoritmo Cyrus-Beck - Exercícios 1. Entenda o programa cyrus-beck disponível no site da disciplina. 2. Modifique a interface dada como tarefa no slide 27 para incluir a opções de recorte com o algoritmo Cyrus-beck quando a região recortante consiste de um polígono de n arestas. Ofereça as duas alternativas de recorte caso a região for um retângulo (duas pessoas no máximo - 1 ponto).

Recorte de Polígonos Antes do recorteDepois do recorte

Algoritmo de Sutherland- Hodgeman Princípio Básico: - Considerar individualmente cada aresta da região recortante. - Recortar o polígono pela equação da aresta. - Depois de fazer isso para todas as arestas, o polígono estará completamente recortado. Polígono Original Recorte esquerdo Recorte direito Recorte inferior Recorte Superior

Algoritmo de Sutherland- Hodgeman Entrada/Saída do algoritmo Entrada: - Região de recorte retangulas - lista ordenada de vértices do polígono Saída: lista dos vértices recortados, com alguns vértices originais (possivelmente) e outros novos (possivelmente)

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

Algoritmo de Sutherland- Hodgeman

vd 0 0000 vd 2 vd 3 0000 1111 1111 vd 1 vf 0  0 vd 0  0 vf 1 vf 2  1 vd 1 vd 2 vd 3  1 vf 3 vf 0 vf 0 vf 3 vf 1 vf 2  0 vd 0  0  0 e  1 vd 1 vd 2 vd 3  1  1

Algoritmo de Sutherland- Hodgeman vd 0 0000 vd 2 vd 3 0000 1111 1111 vd 1

Algoritmo de Sutherland- Hodgeman vd 1 vd 0 vd 3 vf 2 vd 2 vf 3 vf 0 vf 1 0000 0000

Algoritmo de Sutherland- Hodgeman vd 1 vd 0 vd 3 vd 2 0000 0000

Algoritmo de Sutherland-Hodgeman Exercício: (1) Mostre passo a passo como seria a saída do recorte do seguinte polígono. (2) Você poderia rodar o exemplo acima usando o programa SutherlandHodgman.cpp postado no site? Quais modificações deverão ser feitas ?.

Algoritmo de Sutherland-Hodgeman Estenda o algoritmo Sutherland-Hodgeman para que considere o recorte de qualquer polígono (inclusive polígonos côncavos). (3) Estenda o algoritmo Sutherland-Hodgeman para que considere o recorte de qualquer polígono (inclusive polígonos côncavos). (4) Estenda a interface dada como tarefa no slide 34 incluindo a opção de recorte de polígonos no menu já existente. Considere a captura interativa dos pontos da janela recortante, assim como a sequência ordenada dos vértices do polígono. (Duas pessoas no máximo - 1 ponto).