Anda di halaman 1dari 18

Diseno de curvas (y superficies)

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

no cumple la tercera condici


on:

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

Q0 (t) = (1 t)P0 + tP1

Q1 (t)

Q1 (t) = (1 t)P1 + tP2

B(t) = (1 t)Q0 (t) + tQ1 (t)

Q0 (t)

B(t)

= (1 t)2 P0 + 2t(1 t)P1 + t2 P2


P0

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

Las tangentes en los extremos pasan por P1 .


Obs: estas condiciones determinan los tres puntos de control.

Curvas de Bezier
Curva de Bezier de grado 3: B(t) = (1t)3 P0 +3t(1t)2 P1 +3t2 (1t)P2 +t3 P3

Tambien se obtiene interpolando


en tres etapas con los puntos de
control:
Q1
P2
P1
R1

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

B (0) = 3(P1 P0 ), B (1) = 3(P3 P2 )


Las tangentes en los extremos determinan las
direcciones de los puntos de control internos.
Obs: estas condiciones determinan los puntos de control.
P1

Problema: aproximar una curva conocida


con una curva de Bezier de grado 3.
Si la aproximacion no es suficientemente
buena, se subdivide y se repite el proceso.

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

Esto es importante ya que un punto


Q=

n
X
i=0

ai Pi ,

ai 0,

n
X

ai = 1

i=0

esta siempre dentro del cierre convexo de {P0 , P1 , . . . , Pn }.

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.

El cambio en un solo punto de control afecta a toda la curva.


(Los coeficientes solo se anulan en t = 0 y t = 1).

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 )

? Importante: para transformar una curva de Bezier, es suficiente transformar los


puntos de control.
? Aplicacion: fuentes PostScript (definidas pegando curvas de Bezier de grado 3).

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

? Ejemplo: n = 1, B0 (t) = (1 t), B1 (t) = t,


B(u, v) = (1 u)(1 v)P00 + (1 u)vP01 + u(1 v)P10 + uvP11

u, v [0, 1]

Interpolacion bilineal

Ejemplo Maple

Obs: la superficie de Bezier se puede escribir


B(u, v) =

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

Curvas de Bezier racionales


Una limitacion de las curvas de Bezier es que no permiten representar conicas.
Ejemplo: intentar representar una semicircunferencia con una curva de Bezier de grado
2 o de grado 3.
La circunferencia x2 + y 2 = 1 se puede parametrizar de forma sencilla:
(

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

Notacion para coordenadas homogeneas:


? < wP, w > representa el punto P (si w 6= 0)
? < P, 0 > representa la direcci
on de infinito definida por P

Curvas de Bezier racionales


Ejemplo: consideremos la curva de Bezier de grado 2 con puntos de control
P0 =< 0, 1, 1 >, P1 =< 1, 0, w >, P2 =< 0, 1, 1 > R2
w=1

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]

Curvas de Bezier racionales


En general, se puede demostrar:
Teorema: Si C es un arco de c
onica que une los
puntos P0 y P2 , y P1 es el punto donde se cortan las
tangentes, existe un valor de h para el cual la curva
de Bezier racional definida por los puntos de control
< P0 , 1 >, < P1 , h > y < P2 , 1 > coincide con C.

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.

Principales ventajas sobre las curvas de Bezier:


1. Es de grado acotado (a
un definida por n puntos).
2. Sobre todo, mas apropiadas para el dise
no interactivo: mas suaves, control local.
(ej-Ipe).

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

(definido en 3 < t < 7)

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).

Anda mungkin juga menyukai