Está en la página 1de 28

Curvas de Bezier

Origen en los trabajos de Bezier y de Casteljau. Bezier (ingeniero en Peugeot) desarrolla las curvas basndose en polinomios de Bernstein. 1966 De Casteljau (ingeniero de Citron) usa un desarrollo algortmico. 1959 Ambas teoras son equivalentes. El nombre de curvas de Bezier se debe a que Bezier public sus trabajos, mientras que de Casteljau los mantuvo como documentos internos.

Curvas de Bezier. Bibliografa


Desarrollaremos este tema siguiendo: "Curves and Sufaces for CAGD. A practical guide", de Gerald Farin. Captulos 3, 4 y 5. Tambin es til consultar el libro: "Curvas y superficies para Modelado Geomtrico", de J. M. Cordero y J. Corts.

Curvas de Bezier. De Casteljau


Busca un modo de construir curvas que respete el principio de invarianza afn. Principio de invarianza afn: dados los puntos p1,, pn del plano o del espacio afn y una transformacin afn f, buscamos un mtodo C( ) para construir curvas a partir de los puntos p1,, pn que cumpla f(C(p1,, pn))=C(f(p1),, f(pn)) Ejemplo bsico: si C( ) es el segmento que une dos puntos, se cumple el principio de invarianza afn. Recordar C(p1,p2)=(1-t)p1+tp2, t [0,1].

Algoritmo de de Casteljau
Algoritmo de de Casteljau: basado en la repeticin sucesiva del ejemplo bsico (segmento entre dos puntos). b00 b10 b20 bn-10 bn0 b01(t) b11(t) b21(t) bn-11(t) b02(t) b12(t) b0n(t)

donde bi0, i=0n, son los puntos de partida y bir(t)=(1-t)bir-1(t)+tbi+1r-1(t)

La curva de Bezier (de Casteljau)

El ltimo paso del algoritmo anterior, b0n(t), t [0,1], se llama curva de Bezier y se denota B[b0,,bn; t]. Los puntos b0,,bn se llaman vrtices de control El polgono formado por los vrtices de control se llama polgono de control.

Ejemplos de curvas de Bezier

Bezier con 2 puntos

Bezier con 4 puntos

Bezier con 3 puntos

Bezier con 5 puntos

http://www.cs.unc.edu/~mantler/research/bezier/

Propiedades de las curvas de Bezier


La curva de Bezier B[b0,,bn; t] con n+1 vrtices de control tiene grado n. B[b0,,bn; t] es una combinacin convexa de sus vrtices de control. Cumple el principio de invarianza afn. Est contenida en la envolvente convexa de los vrtices de control. Cumple la propiedad de interpolacin en los extremos. Estable bajo reparametrizaciones de t.

Justificacin de las propiedades


Las curvas de Bezier se definen de modo recursivo a partir de dos curvas de Bezier que involucran menos puntos de control. B[b0,,bn; t]=(1-t)B[b0,, bn-1; t]+ t B[b1,,bn; t] Se puede razonar por induccin gracias a esta propiedad. Las reparametrizaciones son un cambio de variable.

Ejemplo de curva de Bezier

envolvente convexa puntos iniciales

curva de Bezier

poligonal de control

Teora de Blossoms
La T de Blossoms generaliza el alg. de de Casteljau. El Blossom de b0,,bn se denota b[t1,,tn] y se calcula utilizando el algoritmo de de Casteljau (donde en cada paso se introduce un nuevo parmetro tr). b00 b10 b20 bn-10 bn0 b01(t1) b02(t1,t2) b11(t1) b12(t1,t2) b21(t1) bn-11(t1) b0n(t1,,tn) b[t1,,tn]

donde bir(t1,,tr)=(1-tr)bir-1(t1,,tr-1)+trbi+1r-1(t1,,tr-1)

Ventaja de la T de Blossoms
Conociendo el Blossom b[t1,,tn] se recupera toda la matriz de de Casteljau. bir(t)=b[0<n-r-i>,1<i>, t<r>]
(n-r-i) veces 0 i veces 1 r veces t

(escribir un ejemplo) La curva de Bezier es b[t,,t].


n veces

Polinomios de Bernstein
Polinomios de Bernstein {B0n(t), B1n(t),, Bnn(t)} de grado n Cada Bin(t)= ( i) (1-t)n-iti
n

Propiedades de los polinomios de Bernstein Bin(t)=(1-t) Bin-1(t)+t Bi-1n-1(t).


n i=0

Bin(t)=1. Bin(t) 1.

t [0,1], 0

La curva de Bezier
Dados los puntos de control b0,, bn, la curva de Bezier se puede calcular utilizando los polinomios de Bernstein. B[b0,,bn; t]=
n i=0

biBin(t)

(justificacin de esta frmula a partir de Blossoms) Por las propiedades de los polinomios de Bernstein: B[b0,,bn;t] es combinacin convexa de b0..bn 1. Invarianza afn 2. Envolvente convexa

Otras propiedades
Precisin lineal (consecuencia de la envolvente convexa) si b0,,bn estn alineados, entonces B[b0,,bn;t] es el segmento entre b0 y bn Cada polinomio de Bernstein tiene un nico mximo, que se alcanza en t=i/n. As que si se modifica el valor de bi, la curva de Bezier sufre su mayor variacin en t=i/n.

Ej: polinomios de Bernstein de grado 6

Ejemplo 1: variacin de 1 punto


El mayor cambio de la curva se produce en la zona cercana al punto que hemos modificado

Ejemplo 2: variacin de 1 punto


Notar que con slo modificar un punto de control, se cambia la forma completa de la curva y slo se mantiene la interpolacin en los extremos.

Ejemplos de curvas y polinomios

curva de Bezier de orden 5

curva de Bezier de orden 8

polinomios de Bernstein

polinomios de Bernstein

Base de polinomios de Bernstein


Los polinomios de Bernstein forman una base del espacio de polinomios de grado menor o igual que n. Justificacin: desarrollar las expresiones de Bin(t), i=0,,n, y escribirlas en la base {1, t, t2,,tn}: (n ) 0
matriz de cambio de base

* ( 1) n * * ( 2)

determinante 0

n ( * * n) Consecuencia: usando curvas de Bezier se pueden dibujar todas las curvas polinomiales de grado n.

Derivadas de curvas de Bezier


Derivada de B[b0,,bn; t] respecto de t: d B[b ,,b ; t]= 0 n dt
n i=0

bi d Bin(t) dt
derivada del polinomio de Bernstein

Derivando cada Bin(t) y agrupando trminos: d B[b ,,b ; t]= n 0 n dt donde


n-1 i=0

bi Bin-1(t)

bi=bi+1-bi

es de nuevo una curva de Bezier

Derivadas. Ejemplos

derivada

derivada

Derivadas. Propiedades
Derivadas en t=0 y t=1: en t=0 vale n(b1-b0) en t=1 vale n(bn-bn-1) Derivadas de rdenes superiores: d B[b ,,b ; t]= n! 0 n (n-r)! dtr donde
n-r i=0

r bi Bin-r(t)
es de nuevo una curva de Bezier

r bi=r-1bi+1-r-1bi con 0bi=bi

Derivadas. Ejemplos

derivada primera

derivada segunda

derivada primera

derivada segunda

El proceso de subdivisin
Supongamos que tenemos una curva de Bezier B[b0,,bn; t], t [0,1] Subdivisin: considerar t [0,c], c 1, y buscar nuevos vrtices de control ci para una nueva curva de Bezier que coincida con la original en t [0,c]. Anlogamente, considerar t [c,1], c 1. Hallar los nuevos vrtices de control usando t de Blossoms: ci=b[0<n-i>,c<i>]=b0i(c)
SUBDIVISIN

El proceso de extrapolacin
Supongamos que tenemos una curva de Bezier B[b0,,bn; t], t [0,1] Extrapolacin: considerar t [1,d], d 1, y buscar nuevos vrtices de control di para una nueva curva de Bezier que coincida con la original en t [1,d].
EXTRAPOLACIN

Hallar los nuevos vrtices de control usando t de Blossoms: di=b[1<n-i>, di]=bn-ii(d)

Elevacin de grado
Si tenemos varias curvas de Bezier calculadas de modo independiente, podemos querer tratarlas al mismo tiempo y nos puede interesar que todas tengan el mismo grado. Elevacin de grado: buscamos una curva de Bezier idntica a B[b0,,bn; t] que est definida con ms vrtices de control ( se eleva el grado). Si queremos que la curva tenga grado n+1: Nuevos vrtices de control: b0(1),, bn+1(1). Se impone que ambas curvas sean iguales y se obtiene: bi(1)= i bi-1+ (1 - i ) bi,
n+1 n+1

i=0n+1.

Ejemplos de elevacin de grado


Ejemplos de la misma curva, tras aplicar el proceso de elevacin de grado.

grado 5

grado 6

grado 7

grado 8

Reduccin de grado
Reduccin de grado: buscamos una curva de Bezier que aproxime a B[b0,,bn; t] y est definida usando menos vrtices de control ( se reduce el grado). Si queremos que la curva tenga grado n-1:
Nuevos

vrtices de control: b0(0),, bn-1(0).

Se supone que la curva B[b0,,bn; t] se ha obtenido elevando el grado a B[b0(0),, bn-1(0); t] y se obtiene: bi(0)= nbi-i bi-1(0) n-i
(0) nb -(n-i)b (0) i bi-1 = i

i=0,1n-1

i=n,n-11

Dos frmulas para hallar los bi. Se pueden combinar ambas.

Temas de ampliacin
En el captulo 5 del libro de Farin tambin podemos encontrar informacin acerca de: Curvas de Bezier no paramtricas Proyecciones (cross plots) Integrales de curvas de Bezier Forma baricntrica de una curva de Bezier

También podría gustarte