Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDanilo Samudio Alterado mais de 10 anos atrás
1
Computação Gráfica: Aula2: Curvas e Superfícies http://www.fei.edu.br/~psergio psergio@fei.edu.br
2
Curvas e Superfícies As Curvas de Hermite P2 P1 T2 T1
3
Curvas e Superfícies: Curvas de Hermite
8
P2 P1 T2T1
9
Curvas e Superfícies: Curvas de Hermite
12
Em resumo e colocando em forma matricial, temos...
13
Curvas e Superfícies: Curvas de Hermite
17
Juntando as idéias...
18
Curvas e Superfícies: Curvas de Hermite Finalmente...
19
Curvas e Superfícies: Curvas de Hermite Finalmente... P2 P1 T2 T1
20
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 1960. 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
21
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.
22
Curvas e Superfícies: as curvas de Bézier
23
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
24
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
25
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
26
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
27
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
28
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:
29
Curvas e Superfícies: as curvas de Bézier Algoritmo de Casteljau
30
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
31
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
32
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.
33
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.
34
Curvas e Superfícies: B-Splines para k = 2
35
Curvas e Superfícies: B-Splines para k = 3
36
Curvas e Superfícies: B-Splines para k = 4
37
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
38
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
39
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.
40
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:
41
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:
42
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
43
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.
44
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);
45
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(); }
46
Curvas e Superfícies: as curvas de Bézier Resultado
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.