6
 1 RPCG 2s2010 Prof. José Méxas Splines e o Algoritmo de Carl de Boor As curvas de Bezier possuem a desvantagem de ter o grau elevado para se conseguir modelar formas complexas. No entanto podemos usar uma sequência de curvas de Bezier de grau menor , denominada spline, para modelar a mesma f orma complexa , com a vantagem adicional de se poder editar somente partes da curva, sem alterar o restante da mesma. No caso de uma spline formada por uma composição de curvas de Bezier , dadas pelos seus pontos de controle ( b i  ), podemos considerar novos pontos de controle ( d i ), que através do Algoritmo de Boor poderemos avaliar splines de maneira análoga ao Algoritmo de Casteljau, utilizado para avaliação das curvas Bézier. Para fixar idéia vamos considerar o caso da cúbica definida por b 0 , b 1 , b 2, b 3 , composta com a cúbica definida pelos pontos de controle b 3 , b 4 , b 5 , b 6 . Onde =u 1 -u 0  e =u 2 -u 1 Para que na emenda b 3 , tenhamos: I- Uma C 1  continuidade: Os pontos b 2, b 3 , b 4 devem ser colineares e guardarem entre si a proporção

03 Algoritmo Carl de Boor Para Splines

Embed Size (px)

Citation preview

5/11/2018 03 Algoritmo Carl de Boor Para Splines - slidepdf.com

http://slidepdf.com/reader/full/03-algoritmo-carl-de-boor-para-splines 1/5

 

1 RPCG 2s2010 Prof. José Méxas

Splines e o Algoritmo de Carl de Boor 

As curvas de Bezier possuem a desvantagem de ter o grau elevado para se conseguir modelar formas complexas. No entanto podemos usar uma sequência de curvas de

Bezier de grau menor , denominada spline, para modelar a mesma forma complexa , coma vantagem adicional de se poder editar somente partes da curva, sem alterar o restante

da mesma.

No caso de uma spline formada por uma composição de curvas de Bezier , dadas pelosseus pontos de controle ( b

i), podemos considerar novos pontos de controle ( di ), que

através do Algoritmo de Boor poderemos avaliar splines de maneira análoga aoAlgoritmo de Casteljau, utilizado para avaliação das curvas Bézier.

Para fixar idéia vamos considerar o caso da cúbica definida por b0, b1, b2, b3, composta

com a cúbica definida pelos pontos de controle b3, b4, b5, b6.

Onde =u1-u0 e =u2-u1

Para que na emenda b3, tenhamos:

I- Uma C1 continuidade: 

Os pontos b2, b3, b4 devem ser colineares e guardarem entre si a proporção

5/11/2018 03 Algoritmo Carl de Boor Para Splines - slidepdf.com

http://slidepdf.com/reader/full/03-algoritmo-carl-de-boor-para-splines 2/5

 

2 RPCG 2s2010 Prof. José Méxas

(1)

II- Uma C2 continuidade: 

Para tal deve existir um ponto d1

tal que os pontos b1, b

2, d

1, b

4, b

5, verifiquem a

seguinte proporção: 

(2)

Usando as relações (1) e (2) temos que

(3)

Usando semelhança de triângulos podemos concluir a seguinte relação entre asabscissas dos respectivos pontos:

Donde temos o valor da abscissa do ponto d1 , denominada Abscissa de Greville,

calculada em função dos nós u0, u

1, u

2:

Os pontos d-1

=b0,

d0=b

1, d

1, d

2=b

5, d

3=b

6formam os Pontos de Controle denominados

Pontos de Boor, que junto com a sequência de nós u0, u

1, u

2,definem a spline acima

formada pelas duas cúbicas.

A questão é construir um algoritmo que nos permita calcular pontos sobre a splineatravés de seus Pontos de Boor. Podemos sugerir um tal algoritmo observando o casoda spline cúbica acima. Se temos um nó u de multiplicidade 3, fazendo u=u0=u1=u2,

5/11/2018 03 Algoritmo Carl de Boor Para Splines - slidepdf.com

http://slidepdf.com/reader/full/03-algoritmo-carl-de-boor-para-splines 3/5

 

3 RPCG 2s2010 Prof. José Méxas

então teremos

e daí o ponto d1 passaria a ser um ponto sobre a spline cúbica.

Desta forma temos o Algoritmo de Carl de Boor para splines , publicado em 1972, dadopor:( Farin seção 10.3, eq. 10.5 e Marinho seção 3.3, eq. 3.19)

Considere uma curva paramétrica B-spline de grau n, denotada por BnP, onde P é o

polígono de controle.

Seja .

 

Defina , de tal maneira que divida o segmento na mesma proporção

em que u divide o segmento onde k representa a ordem da iteração, oua ordem da inserção do parâmetro u ou seja

 

onde e

Então é o valor da curva B-spline no parâmetro u. Onde r denota

a multiplicidade de u se ele já for um dos nós, senão r=0. Como é usual .

5/11/2018 03 Algoritmo Carl de Boor Para Splines - slidepdf.com

http://slidepdf.com/reader/full/03-algoritmo-carl-de-boor-para-splines 4/5

 

4 RPCG 2s2010 Prof. José Méxas

A figura abaixo representa o Algoritmo de Boor para .

O exemplo abaixo avalia uma spline cúbica (n=3) no parâmetro u.

I- Em k=1( primeira iteração) são usados 3 sequências de 3 intervalos consecutivos quecontenham o parãmetro u:

 divide d0d

1na mesma proporção que u divide o segmento u

0u

3.

 divide d1d2 na mesma proporção que u divide o segmento u1u4.

divide d2d

3na mesma proporção que u divide o segmento u

2u

5.

 

Assim os pontos de Boor d0, , , , d

3, d

4correspondem a sequência de nós u

0,u

1,

u2, u, u

3, u

4, u

5, u

6.

II- Em k=2 ( segunda iteração) são usados 2 sequências de 2 intervalos consecutivos quecontenham o parâmetro u:

 divide na mesma proporção que u divide o segmento u1u

3.

 divide na mesma proporção que u divide o segmento u2u

4.

Assim os pontos de Boor d0, , , , , d3, d4 correspondem a sequência de nós u0,

u1,

u2, u, u, u

3, u

4, u

5, u

6.

5/11/2018 03 Algoritmo Carl de Boor Para Splines - slidepdf.com

http://slidepdf.com/reader/full/03-algoritmo-carl-de-boor-para-splines 5/5

 

5 RPCG 2s2010 Prof. José Méxas

III- Em k=3 ( terceira iteração) é usada 1 sequência de 1 intervalo que contenh oparâmetro u:

 divide na mesma proporção que u divide o segmento u2

u3

.

Duas notas importantes:

I - O algoritmo de Casteljau considera a curva definida em um único intervalo [0,1] e

podemos obte-lo considerando uma curva spline de grau n em que a sequência dos nósé tal que,

0 = u0

= u1

= ... = un-1

< un

= un+1

= ... = u2n-1

= 1,

ou seja, 0 e 1 são nós de multiplicidade n.

Neste caso o Algoritmo de Casteljau é um caso partícular do Algoritmo de Boor:

II - Se dois nós adjacentes em uma sequência de nós possuem a mesma multiplicidade

n, então entre esses nós o Polígono de Boor passam a coincidir com o Polígono deBézier.