Hacia 1960, Bezier (para Renault) y Casteljau (para Citroen) estudian el problema
(y llegan, de forma independiente, a la misma propuesta): Curvas de Bezier
Requerimientos:
? Curvas en parametricas (mas sencillas de tratar en el ordenador).
X(t) = An tn + + A1 t + A0 ,
Ai Rd
(d = 2, 3)
En coordenadas, para d = 2,
x(t) = an tn + + a1 t + a0
y(t) = bn tn + + b1 t + b0
? Las curvas deben ser continuas (sin saltos) y derivables (sin picos)
? En el proceso de dise
no, la forma de las curvas debe ser controlable con facilidad
Diseno de curvas
La expresion en parametricas clasica
X(t) = An tn + + A1 t + A0
x(t) = an tn + + a1 t + a0
y(t) = bn tn + + b1 t + b0
Si queremos que la curva pase por un conjunto de puntos fijado, como se calculan
los coeficientes?
Si se cambia un poco alguno de los coeficientes, que le pasa a la curva?
Curvas de Bezier
Definidas por dos puntos:
P1
B(t) = (1 t)P0 + tP1
P0
Definidas por mas de dos puntos: no imponemos que pasen por todos, sino que utilizamos los puntos interiores para controlar la forma de la curva.
P1
Q1 (t)
Q0 (t)
B(t)
P2
Curvas de Bezier
Curva de Bezier de grado 2: B(t) = (1 t)2 P0 + 2t(1 t)P1 + t2 P2
Propiedades:
P1
1. Pasa por los extremos:
B(0) = P0 , B(1) = P2
2. Tangentes en los extremos:
B 0 (0) = 2(P1 P0 ), B 0 (1) = 2(P2 P1 )
P2
P0
Curvas de Bezier
Curva de Bezier de grado 3: B(t) = (1t)3 P0 +3t(1t)2 P1 +3t2 (1t)P2 +t3 P3
Q2
P2
P1
P0
P3
B
Q0
P0
R0
P3
Obs: trabajaremos siempre en el intervalo t [0, 1].
Si es necesario trabajar en el intervalo [a, b], es suficiente escribir B
t a
ba
Curvas de Bezier
Curva de Bezier de grado 3: B(t) = (1t)3 P0 +3t(1t)2 P1 +3t2 (1t)P2 +t3 P3
Propiedades:
P2
P1
1. Pasa por los extremos:
B(0) = P0 , B(1) = P3
2. Tangentes en los extremos:
0
P0
P3
P2
P3
P0
Curvas de Bezier
En general, si tenemos n + 1 puntos de control,
n
X
n i
Curva de Bezier de grado n: B(t) =
t (1 t)ni Pi
i
i=0
Obs: para n = 1, 2, 3, obtenemos las anteriores.
Cuando aumenta n, se consigue mejorar la aproximacion, pero con dos inconvenientes:
1. los calculos se complican.
2. Los cambios locales (en un solo punto de control) afectan a toda la curva.
P2
Para mejorar la aproximaci
on, resulta mas adecuado:
1. pegar curvas de Bezier.
P0
P3
P6
2. utilizar B-splines.
P4
Curvas de Bezier
Propiedades:
n i
Los polinomios Bi (t) =
t (1 t)ni (conocidos como polinomios de Berstein) son
i
n
X
n i
una particion de la unidad, es decir,
t (1 t)ni = 1.
i
i=0
Dem:
1 = (t + (1 t))n =
n
X
n
i=0
ti (1 t)ni
n
X
i=0
ai Pi ,
ai 0,
n
X
ai = 1
i=0
Curvas de Bezier
Por tanto,
B(t) =
n
X
n
i=0
ti (1 t)ni Pi
esta siempre (t [0, 1]) dentro del cierre convexo de los puntos de control.
Curvas de Bezier
Las curvas de Bezier son invariantes por transformacion afin.
f (B(t)) = f
n
X
n
i=0
ti (1 t)ni Pi =
n
X
n
i=0
ti (1 t)ni f (Pi )
Superficies de Bezier
n i
Se construyen con productos de los polinomios Bi (t) =
t (1 t)ni y una familia
i
de puntos de control Pij :
B(u, v) =
n X
n
X
Bi (u)Bj (v)Pij
u, v [0, 1]
i=0 j=0
u, v [0, 1]
Interpolacion bilineal
Ejemplo Maple
n
X
i=0
n
n
n
X
X
X
Bi (u)
Bj (v)Pij =
Bj (v)
Bi (u)Pij
j=0
j=0
i=0
Por tanto, las curvas u = cte y v = cte son curvas de Bezier de grado n.
Superficies de Bezier
Las cuentas se complican ...
Para n = 2 (9 puntos de control), una superficie de Bezier tiene el siguiente aspecto:
x(u, v) = (1 u)2 (1 v)2 2 (1 u)2 v (1 v) (1 u)2 v 2 + 1.0 u (1 u) v 2
+ 1.5 u2 (1 v)2 + 2 u2 v (1 v) + u2 v 2
y(u, v) = (1 u)2 (1 v)2 + 1.5 (1 u)2 v 2 2 u (1 u) (1 v)2
+ 2.0 u (1 u) v (1 v) + 4 u (1 u) v 2 u2 (1 v)2 + 1.5 u2 v 2
z(u, v) = 2 (1 u)2 (1 v)2 2 (1 u)2 v (1 v) 2 (1 u)2 v 2 2 u (1 u) (1 v)2
2 u (1 u) v 2 2 u2 (1 v)2 2 u2 v (1 v) 2 u2 v 2
x(t)
y(t)
2t
1+t2
1t2
1+t2
tR
parametrizacion racional
En coordenadas homogeneas,
x(t) = 2t,
y(t) = 1 t2 ,
w(t) = 1 + t2
w = 0.2
w=0
x(t) = 2 t (1 t)
2
y(t) = (1 t) + t2
2
w(t) = (1 t) + t2
t [0, 1]
P0
P1
C
P2
Este resultado se puede utilizar para encontrar parametrizaciones racionales (cocientes
de polinomios) de conicas.
Esta es la forma mas conveniente de manejar curvas de grado 2 (conicas) en un ordenador.
Ademas, la representacion de c
onicas utilizando puntos de control (en coordenadas
homogeneas), es decir, curvas de Bezier racionales, es invariante por transformaciones
proyectivas.
B-splines
La B es por base o blending, no por Bezier.
Son los mas utilizados en la practica:
1. b-splines cuadraticos: fuentes True Type
2. b-splines c
ubicos: los mas comunes en programas de dise
no grafico: Photoshop ...
En general, no pasan por ning
un punto de control
(ni siquiera los extremos), aunque se puede forzar a
que lo hagan.
B-splines
Un ejemplo: si definimos
3
t
(t1)2
(t1)3
1
t
3 + 2 + 2 2
(t2)3
2
2
N0 (t) = 3 (t 2) + 2
(t3)2
(t3)3
5
t
3 2 +
2
0
N1 (t) = N0 (t 1)
si 1 < t < 2
si 2 < t < 3
si 3 < t < 4
en otro caso
Nj (t) = N0 (t j) j = 2, . . . , 6
4
t
0.5
...
si 0 < t < 1
B-splines
Si ahora consideramos puntos de control Pi , i = 0, . . . , 6, se define
B(t) =
6
X
Ni (t)Pi
i=0
Ultimas
observaciones:
1. El soporte de Ni es acotado: esto proporciona el control local.
2. Las funciones Ni son una partici
on de la unidad: los puntos del b-spline estan
dentro del cierre convexo de los puntos de control de los que dependen (en el
ejemplo, 4).
3. Hay muchas formas de generar estas funciones base: flexibilidad (y dificultad).