Computação Gráfica: Aula2: Curvas e Superfícies

Slides:



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

Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Funções para serem usadas no exercício de Lab
Sistemas Realimentados
Luiz Marcos Curvas paramétricas Luiz Marcos
Tecnologia Hipermídia e Multimídia
Teorema de Pitágoras. Áreas. Semelhança de triângulos.
Alex F. V. Machado Curvas e Superfícies Alex F. V. Machado
Algoritmos e Estrutura de Dados I
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 à Computação Gráfica Geometria
Geometria Computacional Fecho Convexo
DIM102 1 Curvas e Superfícies 35T56 – Sala 3F4 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227.
Computação Gráfica Interativa - Gattass
Computação Gráfica Interativa - Gattass
Recursividade Conceitos e Aplicações.
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) Visualização 3D Incluir no FrameWork Básico (na página da disciplina), as.
Funções para serem usadas no exercício de Lab nos dias (18/03/2010 e 24/03/10) Visualização 3D Estruturas de Dados Básica (Global) para Construção de uma.
Computação Gráfica: Aula2: Curvas e Superfícies
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula4: Câmeras
Superfícies de Bézier Visualização 3D
Computação Gráfica: Aula2: Curvas e Superfícies
Computação Gráfica OpenGL.
UNIVERSIDADE KIMPA VITA
Informática Teórica Engenharia da Computação
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Paradigma de Divisão e Conquista
Cálculo Numérico / Métodos Numéricos
Aula 13 Derivação Implícita, derivadas das funções trigonométricas inversas e derivadas de funções logarítmicas.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Computação Gráfica Aula 11 Curvas Prof. Leo.
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Aula prática 6 Vetores e Matrizes
Computação Gráfica – Modelagem Geométrica
Computação Gráfica Aula 12 Superfícies Prof. Leo.
Prof. Ricardo Santos PONTEIROS
Quadrados Mínimos.
Introdução à Computação Gráfica Curvas
Funções de mais de uma variável
Linguagem C : Ponteiros
Computação Gráfica – Visibilidade
Definições e Transformações Projetivas
Cálculo Numérico / Métodos Numéricos
F UNÇÕES : PASSAGEM DE PARÂMETROS Aluno:Kaynã Vasconcelos Santos Matéria: Estrutura de dados e algoritmos I Turma: Professor: Danilo Silva dos Santos.
Computação Gráfica Introdução ao OpenGL.
Funções de várias variáveis
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Função quadrática: a função geral de 2º grau
Desenhos Tridimensionais
Computação Gráfica – Modelagem Geométrica
Aproximação de funções
Computação Gráfica – Introdução ao OpenGL
Computação Gráfica – Modelagem Geométrica
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Usando vetor e matriz em java
Geometria Computacional Fecho Convexo
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
Estruturas de Dados Murilo Salgado Razoli.
Proposta de projeto para Engenharia de Software Educativo Software para estudo de funções de segundo grau (Parábolas) Equipe: Bruno Jamir (bjs) Gustavo.
Mínima Curvatura (SPLINE)
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:
Computação Científica e Equações Diferenciais Geovan Tavares e Hélio Lopes PUC-Rio – Departamento de Matemática Laboratório Matmidia
Os desenhos. © 2000 Wilson de Pádua Paula Filho Os desenhos Tópicos: Representação de desenhos Edição gráfica bidimensional.
Ciência da Computação Aprendizado de Máquina (Machine Learning) Aula 12 Aprendizado não Supervisionado Mapas auto-organizáveis Max Pereira.
Transcrição da apresentação:

Computação Gráfica: Aula2: Curvas e Superfícies

Curvas e Superfícies As Curvas de Hermite P2 P1 T2 T1

Curvas e Superfícies: Curvas de Hermite

P2 P1 T2T1

Curvas e Superfícies: Curvas de Hermite

Em resumo e colocando em forma matricial, temos...

Curvas e Superfícies: Curvas de Hermite

Juntando as idéias...

Curvas e Superfícies: Curvas de Hermite Finalmente...

Curvas e Superfícies: Curvas de Hermite Finalmente... P2 P1 T2 T1

Curvas e Superfícies As Curvas de Bézier Desenvolvida por Pierre Bézier durante seus trabalhos em projetos de automóveis para a Renault francesa no início da década de A grande maioria dos Softwares de Computação Gráfica disponíveis no mercado usam o conceito de Curvas de Bézier. Entre eles:Adobe, Corel Draw, AutoCad, Paint Shop Pro, 3D Studio Max

Curvas e Superfícies: as curvas de Bézier Esse tipo de curva, por não usar o conceito de vetor e apenas pontos, é mais compreensível pelos usuários. Para ajuste por u polinômio de grau n, a curva de Bézier pode ser gerada por 3, 4, até n+1 pontos de controle. Geralmente, é suficiente usar 4 pontos, gerando uma curva cúbica. A curva de Bézier passa pelo primeiro e último ponto, e usa os demais para construir sua tangente.

Curvas e Superfícies: as curvas de Bézier

Essa propriedade é chamada de propriedade normalizante, e força a curva gerada a ficar inteiramente dentro da figura convexa (convex hull) definida pelos pontos de controle B i

Curvas e Superfícies: as curvas de Bézier Conexão de vários segmentos de curvas de graus menores para simplificação da expressão

Curvas e Superfícies: as curvas de Bézier Níveis de continuidade da união entre duas curvas sem continuidade continuidade C 0 continuidade C 1 continuidade C 2

Curvas e Superfícies: as curvas de Bézier Como exemplo didático apenas, supomos n = 2. Nesse caso, temos três pontos e controle: B 0, B 1 e B 2

Curvas e Superfícies: as curvas de Bézier De uma forma mais compacta e elegante, temos a curva de Bézier quando n=2. T é o vetor de potências da curva de Bézier de grau n = 2 M B é a Matriz de coeficientes da curva de Bézier de grau n = 2 G B é a Matriz de pontos de controle que definem a geometria da curva de Bézier de grau n = 2

Curvas e Superfícies: as curvas de Bézier De uma forma análoga, as matrizes da curva de Bézier quando n=3. Que leva à expressão:

Curvas e Superfícies: as curvas de Bézier Algoritmo de Casteljau

Curvas e Superfícies: as curvas de Bézier Aspectos Computacionais As curvas de Bézier são computacionalmente baratas, mesmo com uma discretização de t muito pequena. Manuseio das curvas RESUMO Curva Poligonal Avaliação por polinômios de Bernstein Algoritmo de Casteljau Número de pontos de controle e grau são interdependentes Propriedade de Convex Hull

Curvas e Superfícies Desenvolvida em 1967 por Schenberg, são até hoje os tipos mais populares em Computação Gráfica. Uma B-Spline é uma versão da curva de Bézier que não passa pelos pontos de controle, o que permite ela ser gerada para qualquer número de pontos de controle tornando o grau do polinômio independente do número de pontos bases. B-Splines

Curvas e Superfícies: B-Splines A forma básica da B-Spline é bastante semelhante à curva de Bézier. Nas B-Splines um conjunto N i,k (t) combina o efeito dos pontos de controle B i para gerar a curva.

Curvas e Superfícies: B-Splines O parâmetro k controla a ordem de continuidade da curva, e n o número de pontos de controle B i usados. Os parâmetros são chamados nós e podem ser qualquer seqüência crescente uniforme, não-uniforme, periódica ou não-periódica.

Curvas e Superfícies: B-Splines para k = 2

Curvas e Superfícies: B-Splines para k = 3

Curvas e Superfícies: B-Splines para k = 4

Curvas e Superfícies: Curvas Racionais As curvas vistas até agora possuem uma versão racional, que são normalizadas por pesos w i A vantagem da representação racional é a invariância com relação à projeção

Curvas e Superfícies: Curvas Racionais De forma geral, para cada ponto da curva temos: para as curvas de Bézier para as curvas B-Splines

Curvas e Superfícies: Curvas Racionais Para o caso específico da B-Spline, se o conjunto de nós for não-uniforme, e a curva tratar-se de uma superfície racional, ela é chamada de Non Uniform Rational Base Spline, mais conhecida como NURBS As curvas racionais, principalmente as NURBS, têm se tornado muito populares, sobretudo em sistemas complexos como CAD. Controlando os pesos, podemos controlar a suavidade da curva próximo aos pontos de controle correspondentes.

Curvas e Superfícies: Superfícies Bézier As superfícies de Bézier são uma extensão direta das curvas de Bézier, uma vez que basta apenas acrescentar mais uma dimensão. A expressão para as superfícies de Bézier é a seguinte:

Curvas e Superfícies: Superfícies B-Splines As superfícies de B-Splines, como as superfícies de Bézier, são uma extensão direta das curvas de B-Splines, uma vez que basta apenas acrescentar mais uma dimensão. A expressão para as superfícies de Bézier é a seguinte:

Curvas e Superfícies: Superfícies Racionais Assim como as curvas, as superfícies possuem a versão racional, e da mesma forma são normalizadas por pesos w i

Curvas e Superfícies: NURBS em OpenGL Para desenhar uma curva de Bézier em OpenGL, são necessários 2 passos básicos: 1- Definir um avaliador através da função glMap1 2 - Avaliar o polinômio criado em 1 através da função glEvalCoord1 glMap1(Glenum target, Type t0, Type t1, GLint Stride, GLint order, TYPE *points) target: define que tipo de ponto tem a curva, exemplo: GL_MAP1_VERTEX_3 t0: valor mínimo da faixa a ser avaliada, exemplo, 0.0 t1: valor máxima da faixa a ser avaliada, exemplo, 1.0 stride: número de pontos-flutuantes entre cada par de ponto de controle sequencial ordem: significa que o grau do polinômio criado é n = ordem -1 *points: ponteiro para o primeiro elemento de um vetor de pontos de controle glEvalCoord1(Type u): esta função avalia o polinômio criado com glMap1 para a faixa de valores t0-t1.

Curvas e Superfícies: as curvas de Bézier Funções para Usar no Lab // variável Global para os Pontos de Controle GLfloat ctrlpoints[4][3] = { {-4.0, -4.0, 0.0}, {-2.0, 4.0, 0.0}, {2.0, -4.0, 0.0}, {4.0, 4.0, 0.0}}; // Função na Main para a criação da Curva glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]); glEnable(GL_MAP1_VERTEX_3);

Curvas e Superfícies: as curvas de Bézier Funções para Usar no Lab void Desenha2() { int i; // avaliação da Curva glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 0.0); glBegin(GL_LINE_STRIP); for (i=0; i <=30; i++) glEvalCoord1f((GLfloat) i/30.0); glEnd(); // Plotagem dos pontos de controle glPointSize(5.0); glColor3f(1.0, 0.0, 0.0); glBegin(GL_POINTS); for (i=0; i < 4; i++) glVertex3fv(&ctrlpoints[i][0]); glEnd(); glFlush(); }

Curvas e Superfícies: as curvas de Bézier Resultado