Beruflich Dokumente
Kultur Dokumente
1. Introducción
Para el diseño asistido por ordenador es conveniente emplear representa-
ciones sencillas de curvas y superficies, que involucren operaciones elemen-
tales, como sumas y multiplicaciones. Por tanto, el candidato más razonable
a primera vista son las parametrizaciones polinómicas. Ası́ podrı́amos repre-
sentar curvas polinómicas de grado n como
c(t) = a0 + a1 t + · · · + an tn , t ∈ [0, 1] ,
donde cada coeficiente ai es un punto del plano o del espacio, según que la
curva sea plana o espacial.
Por ejemplo, la parábola de coeficientes a0 = (0, 0), a1 = (0, 1), a2 = (1, 1)
está parametrizada por c(t) = (t2 , t + t2 ).
Esta representación tiene la ventaja de su sencillez. Sin embargo, no es
muy práctica. Para empezar, la interpretación de los coeficientes hace refe-
rencia a los valores que toma la curva en las proximidades del punto inicial
c(0) = a0 , ya que esencialmente son las derivadas de la parametrización en
t = 0,
ci) (0)
ai = ,
i!
con lo cual no nos dan una idea clara del comportamiento global de la curva.
1
Figura 1: Parábola de coeficientes a0 , a1 , a2
ladado por el mismo vector, mientras que el resto de coeficientes no se ve
alterado.
Figura 2: Parábola trasladada
Figura 3: Parábola rotada
con aritmética exacta, darı́a lugar a coeficientes ai pequeños, pero no nulos.
Y una curva de grado n es cualitativamente muy distinta de una recta.
2. Curvas de Bézier
Una base distinta para los polinomios de grado n o inferior, distinta de
la canónica {1, t, . . . , tn }, nos la proporcionan los polinomios de Bernstein,
los mismos que se emplean en teorı́a de la aproximación para demostrar el
3
Teorema de Weierstrass de aproximación uniforme de funciones continuas
por polinomios. Su construcción es muy sencilla a partir de la fórmula del
binomio de Newton,
n
n
X n n n!
(a + b) = ai bn−i , = .
i i i!(n − i)!
i=0
n
n
X n
1 = (t + 1 − t) = Bin (t) , Bin (t) := ti (1 − t)n−i , (1)
i
i=0
B02 (t) = (1 − t)2 , B12 (t) = 2t(1 − t) , B22 (t) = t2 .
Estos polinomios forman una base alternativa {B0n (t), . . . , Bnn (t)} de los
polinomios de grado n o inferior en una variable t y, frente a la base canónica,
presentan la ventaja de ser todos del mismo grado.
Figura 5: Polinomios de Bernstein de grado dos
4
polinomios de la base canónica. Y ası́ sucesivamente el polinomio Bin (t), por
el término (1 − t)n−i , tiene coeficientes no nulos sólo para los monomios
ti , . . . , tn , por lo cual la matriz de cambio de base es triangular superior,
B0n (t) 1 · · · (−1)n 1
.. .. . . .. ..
. = . . . . ,
Bnn (t) 0 ··· 1 tn
n
X
c(t) = ci Bin (t) , t ∈ [0, 1] , (2)
i=0
donde todos los coeficientes ci son puntos del plano o del espacio afı́n, según
que la curva sea plana o espacial. A estos coeficientes los denominaremos
vértices del polı́gono de control, {c0 , . . . , cn }, de la curva de Bézier
c(t). Una curva de grado n tiene, pues, un polı́gono de control de n + 1
vértices.
Por ejemplo, una parábola con polı́gono de control dado por c0 = (0, 0),
c1 = (1, 0), c2 = (1, 1) está parametrizada por (−t2 + 2t, t2 ), para t ∈ [0, 1].
u−a
t(u) = , u ∈ [a, b] ,
b−a
5
!
Figura 6: Parábola de polı́gono de control {c0 , c1 , c2 }
u−a
c̃(u) = c(t(u)) := c , u ∈ [a, b] .
b−a
Nótese que la parametrización c(t) no ve el intervalo [a, b], sino el [0, 1].
Es sólo un ajuste del usuario.
Dos de los vértices del polı́gono de control tienen una interpretación inme-
diata. A la vista de la expresión de los polinomios de Bernstein, (1), resulta
que Bin (0) = 0, sea cual sea el grado n, salvo para i = 0, para el cual toma
el valor B0n (0) = 1. Del mismo modo, Bin (1) = 0, salvo para i = n, que no
tiene términos (1 − t), por lo cual Bnn (1) = 1.
Ası́ pues, la curva pasa por los vértices c0 , cn ,
n
X n
X
c(0) = ci Bin (0) = c0 , c(1) = ci Bin (1) = cn .
i=0 i=0
De hecho, son los únicos vértices del polı́gono por los que pasa la curva.
Veremos más adelante que el resto de vértices están relacionados con las
derivadas sucesivas de la parametrización.
El nombre de polı́gono de control hace referencia a que sirve para con-
trolar la forma de la curva. Sin embargo, ese control no es local, ya que,
desplazando un vértice, se mueve toda la curva, aunque principalmente la
6
"$"'() "%
"# "& "*
Figura 7: Una curva de Bézier siempre pasa por los vértices primero y último
parte más próxima al vértice en cuestión. Esto se debe a que el máximo del
polinomio i-ésimo de Bernstein está en t = i/n,
1
dBin (t) n!
+
.
0= = ti−1 (1 − t)n−i−1 {i(1 − t) − (n − i)t} ⇒ nt = i ,
dt i!(n − i)!
+- 2
1
3
+4
con lo cual la variación del vértice i afecta más a los valores de c(t) en las
+.
proximidades del máximo.
2
4
3
+
+,0 +/
Figura 8: Control local: al mover el vértice c2 , se deforma mayormente la
parte más próxima a él
7
57
5;<=58
56 5: 59
Figura 9: La curva está contenida dentro de la envolvente convexa de su
polı́gono de control
es decir, la curva imagen tiene por polı́gono de control la imagen del polı́gono
primitivo, {f (c0 ), . . . , f (cn )}. Por tanto, no es preciso calcular la imagen de
cada punto para construir la curva imagen, sino sólo la imagen del polı́gono
de control y recalcular la curva.
Finalmente, una propiedad sencilla, pero importante, de las curvas de
Bézier es su simetrı́a. Si invertimos el polı́gono de control, {cn , . . . , c0 }, la
gráfica de la curva es la misma que la correspondiente a {c0 , . . . , cn }, sólo
que es recorrida en sentido inverso, de cn en t = 0 a c0 en t = 1. El motivo
está en la propiedad de simetrı́a de los números combinatorios,
n n! n
= = ,
i i! (n − i)! n−i
8
>@>A>B@>BA
>? >B?
Figura 10: Para trasladar una curva de Bézier, basta trasladar su polı́gono
de control
que implica la relación entre los polinomios de Bernstein, Bin (1−t) = Bn−i
n
(t),
y la simetrı́a de la parametrización de Bézier,
CLF
n n n
CF
X X X
c(1 − t) = ci Bin (1 − t) = n
ci Bn−i (t) = cn−j Bjn (t) , (3)
LCE
CGCLIJKCDCIJKCLE
i=0 i=0 j=0
simplemente tomando j = n − i.
LCHHCLD CG
C
Figura 11: Para invertir el sentido de una curva de Bézier, basta invertir el
orden de su polı́gono de control
4. Algoritmo de de Casteljau
Los polinomios de Bernstein son útiles para deducir las propiedades fun-
damentales de las curvas de Bézier, pero no proporcionan una manera efi-
ciente de construirlas. La manera tradicional de trazarlas está basada en el
9
algoritmo de de Casteljau. Antes de introducirlo, recordemos la interpolación
en t ∈ [0, 1] entre dos puntos a, b,
(1 − t)a + tb ,
c10 (t) = (1 − t)c0 + tc1 = (t, 2t) , c11 (t) = (1 − t)c1 + tc2 = (1 + t, 2 − 3t)
c20 (t) = (1 − t)c10 + tc21 = (2t, 4t − 5t2 ) ,
10
MO
O
QRSMP
MN QS O
QRS
M
MN MPNR
Figura 12: Algoritmo de de Casteljau para una parábola
11
Las ventajas del algoritmo de de Casteljau son su sencillez y el hecho
de que involucra tan sólo sumas, ya que todos los términos son positivos, lo
cual le confiere robustez a la hora de realizar cálculos con aritmética de coma
flotante.
1) 1)
ci [t1 ] := ci (t1 ) = (1 − t1 )ci + t1 ci+1 , i = 0, . . . , n − 1 ,
r) r−1) r−1)
ci [t1 , . . . , tr ] := (1 − tr )ci [t1 , . . . , tr−1 ] + tr ci+1 [t1 , . . . , tr−1 ] ,
n)
c[t1 , . . . , tn ] := c0 [t1 , . . . , tn ] , i = 0, . . . , n − r , r = 1, . . . , n . (8)
1) 1)
c[t1 , t2 ] := (1 − t2 )c0 + t2 c1
= (1 − t1 )(1 − t2 )c0 + {t1 (1 − t2 ) + t2 (1 − t1 )}c1 + t1 t2 c2 .
12
T X\
[ T
VT
X
]\
Y
Z_T
X
Y
]
Z\
TTXU ]
Z T
X\
^
Y
Z
YZ[\ TX]Z^
\
TW
Figura 13: La polar es simétrica c[t, u] = c[u, t].
Este hecho puede parecer una trivialidad, ya que para calcular el polı́gono
de control hemos de emplear la polar, que requiere a su vez el polı́gono de
control. Sin embargo, es útil para obtener polı́gonos de control de curvas que
se obtienen a partir de una dada, de la cual sı́ conocemos el polı́gono.
Por ejemplo, es útil para restringir el intervalo de definición de una curva
de Bézier, c(t), definida en el intervalo [0, 1]. Conocemos el polı́gono de control
{c0 , . . . , cn } de la curva primitiva, pero no el de su restricción, c̃, al intervalo
[a, b]. La parametrización de la curva c̃ es fácil de obtener teniendo en cuenta
13
b̀eb
è
à e
c
è
àd̀ d̀c̀
Figura 14: La polar nos permite obtener el polı́gono de una parte de una
curva de Bézier
de donde inferimos que los vértices del polı́gono de control de la curva res-
tringida serán
14
La polar es una forma multiafı́n en el siguiente sentido. Si λ + µ = 1,
combinación baricéntrica de números, entonces
c[t1 , . . . , ti−1 , λti + µsi, ti+1 , . . . , tn ] = λc[t1 , . . . , ti−1 , ti , ti+1 , . . . , tn ]
+ µc[t1 , . . . , ti−1 , si , ti+1 , . . . , tn ] (11)
,
es decir, es afı́n en cada una de las variables.
La demostración es sencilla. Consideremos la interpolación i-ésima entre
dos puntos a, b para dar el punto
(1 − (λti + µsi))a + (λti + µsi )b = λ((1 − ti )a + bti ) + µ((1 − si )a + bsi ) ,
ya que 1 = λ + µ.
n n
X X n!
c(t) = ci Bin (t) = ci ti (1 − t)n−i (1 − t + t)
i=0 i=0
i! (n − i)!
n
X n!
= ci ti+1 (1 − t)n−i + ti (1 − t)n+1−i
i=0
i! (n − i)!
X i+1
n
n + 1 − i n+1
n+1
= ci Bi+1 (t) + Bi (t)
i=0
n + 1 n + 1
n+1 n+1
X i n+1−i X
= ci−1 + ci Bin+1 (t) = c1i Bin+1 (t) ,
i=0
n + 1 n + 1 i=0
i i
c1i = 1− ci + ci−1 . (12)
n+1 n+1
15
k
f
i f
i k
f
j
kffhfmno fjfkl
fgfkg
Figura 15: Los polı́gonos {c0 , . . . , c3 }, {c00 , . . . , c04 } corresponden a la misma
curva de Bézier
i
cni = . (13)
n
16
Esta propiedad se conoce como precisión lineal y no es más que una
aplicación reiterada del algoritmo de elevación del grado. Su utilidad es clara
cuando queremos expresar, no curvas paramétricas, de la forma (cx (t), cy (t)),
sino funciones polinómicas f (t) de grado n. Podemos ver estas últimas dentro
del formalismo general viendo sus gráficas como curvas paramétricas de la
forma (t, f (t)).
Al expresar el monomio t como “curva” de Bézier de grado formal n,
podremos representar c(t) = (t, f (t)) por medio de un polı́gono de control
{c0 , . . . , cn } de la forma ci = (i/n, ci,y ). Es decir, los vértices están equiespa-
ciados en su abscisa.
Como ejemplo, vamos a representar la función cúbica f (x) = x3 en el
intervalo [0, 1]. Como f (x) = B33 (x), todas las ordenadas de los vértices del
polı́gono de control, {c0 , . . . , c3 } son nulas, menos c3,y , que vale uno. Por
pq
tanto,
rstu
pwpxpv
Figura 16: La gráfica de f (x) = x3 vista como curva de Bézier
17
Este resultado expresa que la polar de grado n + 1 es la media de la polar
de grado n evaluada en todos los valores t1 , . . . , tn+1 , eliminando uno de cada
vez.
Como podemos recuperar c1 [t1 , . . . , tn+1 ] a partir de combinaciones ba-
ricéntricas de c1i = c1 [0<n+1−i> , 1<i> ], basta que demostremos la expresión
anterior para los vértices del polı́gono de control. Teniendo en cuenta que en
la expresión de c1i aparece t = 1 i veces, deberá aparecer 1<i−1> en la suma
i veces también. Del mismo modo, 0<n−i> deberá aparecer n + 1 − i veces,
1
ic[0<n+1−i> , 1<i−1> ] + (n + 1 − i)c[0<n−i> , 1<i> ]
n+1
i n+1−i
= ci−1 + ci = c1i ,
n+1 n+1
con lo cual comprobamos que la fórmula es correcta, ya que coincide con la
deducida previamente.
La expresión (14) se generaliza sin dificultad a r elevaciones de grado,
n! r! X
cr [t1 , . . . , tn+1 ] = c[t1 , . . . , tn+1 |ti1 , . . . , tir ] , (15)
(n + r)! 1≤i <...<i ≤n+1
1 r
18
y
|
y{y~ y}
yz
Figura 17: Al elevar el grado, el polı́gono de control tiende a la curva de
Bézier
19
Figura 18: Disminución de la variación: la recta corta al polı́gono en cuatro
puntos y en ninguno a la curva
20
Figura 19: La disminución del grado no proporciona exactamente la misma
curva
7. Derivadas
La derivada de la parametrización de una curva de Bézier, es decir, el
campo tangente a la curva, se obtiene de manera sencilla gracias a las pro-
piedades de los polinomios de Bernstein,
dBin (t) n!
= iti−1 (1 − t)n−i − (n − i)ti (1 − t)n−i−1
dt i!(n − i)!
n! n!
= ti−1 (1 − t)n−i − ti (1 − t)n−i−1
(i − 1)!(n − i)! i!(n − i − 1)!
n−1
= n Bi−1 (t) − Bin−1 (t) ,
con lo cual la expresión de la derivada de la parametrización es
n n
dc(t) X dB n (t) X
= ci i =n n−1
ci Bi−1 (t) − Bin−1 (t)
dt i=0
dt i=0
n−1
X
= n ∆ci Bin−1 (t) , (17)
i=0
21
haciendo un cambio de ı́ndices, i → i + 1, en la primera suma y definiendo
el vector diferencia como ∆ci = ci+1 − ci .
Este es un resultado interesante, ya que muestra que la derivada de una
parametrización de Bézier de grado n es otra parametrización de Bézier
de grado n − 1 para una curva vectorial de polı́gono de control dado por
{∆c0 , . . . , ∆cn−1 }.
Como la curva pasa por los vértices inicial y final, tenemos que
dc(t) dc(t)
= n∆c0 = n(c1 − c0 ), = n∆cn−1 = n(cn − cn−1 ) , (18)
dt t=0 dt t=1
resultado que proporciona una interpretación a los vectores definidos por las
parejas de vértices iniciales y finales. Indican las tangentes en los extremos
de la curva, un dato importante para el diseño.
Figura 20: Los segmentos c0 c1 , c3 c4 proporcionan las tangentes en c0 y c4 ,
respectivamente
22
Con esta notación, las derivadas se expresan como una polar mixta de
puntos y vectores,
dr c(t) n!
r
= c[t<n−r> , e<r> ] . (19)
dt (n − r)!
u − u0 dt(u) 1
t(u) = , = , ∆u0 = u1 − u0 ,
u1 − u0 du ∆u0
por la regla de la cadena, d/du = dt(u)/du · d/dt, usando la expresión de-
ducida para la derivada de una curva de Bézier en los extremos, obtenemos
una sencilla relación que expresa la diferenciabilidad de la parametrización:
∆cn−1 ∆c̃0
= , (20)
∆u0 ∆u1
denotando ∆u1 = u2 − u1 .
Nótese que el grado n ha desaparecido por cancelación en la expresión,
con lo cual esta relación es independiente del grado de la curva. Es una
simple condición geométrica sobre los vértices de los extremos adyacentes de
las curvas que garantiza que la curva compuesta es de clase C 1 .
23
Figura 21: Los segmentos c00 c01 , c2 c3 deben ser paralelos para que la curva
compuesta tenga tangente continua
∆s cn−s ∆s c̃0
= , s = 0, . . . , r . (21)
(∆u0 )s (∆u1 )s
∆2 cn−2 ∆2 c̃0
= , (22)
(∆u0 )2 (∆u1 )2
que, tal como se observa en la figura, tiene una interpretación geométrica
clara como una relación de paralelismo. Las prolongaciones de los segmentos
cn−2 cn−1 y c̃2 c̃1 se cortan para definir un punto d.
Más información puede alcanzarse de otra manera. Podemos conside-
rar los vértices {cn−2 , cn−1 , cn }, {c̃0 , c̃1 , c̃2 } como polı́gonos de control de dos
parábolas. Como las condiciones de diferenciabilidad son independientes del
24
¤£ ¤¨
©
ª
¢
³
°«
¨
¤
¦
¥
¡
¤ ¡¥ ¢ ¬
²
±
°
£
®¬
¯§ ∆
∆
∆
∆
∆
∆
grado de la curva, las relaciones (20), (22) son aplicables exactamente igual
a este caso, si exigimos que la curva compuesta por las dos parábolas sea de
clase C 2 . Ahora bien, como las derivadas de una parábola son nulas a partir
de la tercera, esto es tanto como exigir que la curva compuesta sea una única
parábola, ya que todas las derivadas serı́an iguales en u = u1 .
Por tanto, las dos parábolas se obtienen a partir de la curva compuesta
por subdivisión de intervalo [u0 , u2 ] en dos subintervalos. Y dicha curva de
grado dos tendrá un polı́gono de control {cn−2 , d, c2}, lo que confirma la
existencia del punto d. Dicha parábola estará parametrizada en el intervalo
[0, 1] como
u − u0
b(t) = cn−2 B02 (t) + dB12 (t) + c2 B22 (t) , t= ,
u2 − u0
y el valor del parámetro correspondiente a u1 será λ = ∆u0 /(∆u0 + ∆u1 ).
Con estos datos podemos reobtener por subdivisión del intervalo en dos,
[0, λ], [λ, 1], los vértices,
∆u1 ∆u0
cn−1 = b[0, λ] = (1 − λ)cn−2 + λd = cn−2 + d,
∆u0 + ∆u1 ∆u0 + ∆u1
que muestra que los vectores cn−2 cn−1 y cn−1 d están en proporción ∆u0 :
∆u1 . Del mismo modo,
∆u1 ∆u0
c̃1 = b[λ, 1] = (1 − λ)d + λc̃2 = d+ c̃2 ,
∆u0 + ∆u1 ∆u0 + ∆u1
25
y los vectores dc̃1 y c̃1 c̃2 están también en relación ∆u0 : ∆u1 . El resto de
relaciones no aportan información nueva y podemos representar ya geométri-
camente la condición de ser de clase C 2 , tal como se aprecia en la figura.
8. Interpolación
Las curvas de Bézier pueden utilizarse para interpolar entre varios puntos,
conocidos los valores que les corresponden del parámetro t. Supongamos que
tenemos n+1 puntos {a0 , . . . , an } y queremos obtener una curva c(t) definida
´
·
en el intervalo [0, 1] que verifique
µ́ ´
¶
c(t0 ) = a0 , c(tn ) = an ,
´¸
Figura 23: Cúbica interpolante de cuatro puntos
26
Este sistema está determinado y tiene solución única, como se comprueba,
por ejemplo, expresándolo en una base más cómoda, la canónica,
1 · · · tn0 c̃0 ã0
.. . . . . .
. . .. .. = ..
1 · · · tnn c̃n ãn
9. Aproximación
Lo más común, sin embargo, no es que tengamos n+ 1 puntos y queramos
obtener una curva de grado n que pase por todos ellos, ya que, como ya se ha
dicho, los grados altos presentan oscilaciones espúreas. Es más interesante el
caso en el que tenemos m + 1 puntos y queremos obtener la curva de grado
n que más se aproxime a nuestro conjunto de puntos. Luego matizaremos
qué quiere decir “mejor aproximación”.
Si lo planteáramos como un problema de interpolación, no habrı́a en ge-
neral solución,
27
B0n (t0 ) · · · Bnn (t0 ) c0 a0
.. .. .. .. ..
. . . . = . ,
n n
B0 (tm ) · · · Bn (tm ) cn am
ya que obtendrı́amos un sistema sobredeterminado si, como es de esperar,
m > n. Pero podemos obtener una pseudoinversa mediante el siguiente ar-
tificio. En vez de resolver el sistema BC = A, de m + 1 ecuaciones y n + 1
¹¼
incógnitas, resolveremos el sistema B t BC = B t A, que es un sistema de n + 1
ecuaciones y n + 1 incógnitas. Como la matriz del nuevo sistema B t B es
definida positiva y simétrica, tiene determinante positivo y el problema tiene
solución única.
¹º ¹»
Figura 24: Parábola aproximante de seis puntos
28
* n +)
X
− 2 ck Bkn (ti ), ai ,
k=0
29
Una segunda solución al problema consiste en suponer que la curva está pa-
rametrizada aproximadamente por su longitud de arco, s,
Z u
s(u) = du kc0(u)k , (23)
a
y tomar como estimación grosera de esta medida la longitud de la cuerda
entre los puntos dato,
30
À
¿
¾ È
ÇÂ
½ Á¾ÅÄ
Ã
Æ κ
κ
κ
en el tramo final, tal como se refleja en el pico final de la gráfica 26. En esta
misma gráfica observamos que la curvatura que presenta menor variación en
este caso la correspondiente a la aproximación centrı́peta.
31