SlideShare una empresa de Scribd logo
ISBN 3-937300-47-3
El profesor Marco Paluszny, nació en la ciudad de
Lodz, el 20 de enero de 1950, estudió en la
Universidad Central de Venezuela (UCV) y la
Universidad de California en San Diego (UCSD).
En 1998 el Dr. Paluszny fundó el Laboratorio de
Computación Gráfica y Geometría Aplicada,
Escuela de Matemáticas, Facultad de Ciencias,
UCV. Ha sido profesor invitado en UCSD y la
Universidad de Sao Paulo. Actualmente el Dr.
Paluszny es profesor de Modelación Geométrica y
Computación Gráfica en la UCV.
El profesor Hartmut Prautzsch, nació el 30 de
octubre de 1958 en Treysa y cursó sus estudios en
la Universidad Técnica de Braunschweig. Trabajó
como investigador en IBM in Yorktown Heights y
fue profesor visitante en las universidades RPI en
Troy y la UCV en Caracas. Desde 1990 es profesor
en la Universidad de Karlsruhe en el area de
Modelación Geométrica. A partir de 2002 se
desempeña como Editor en Jefe de la revista
Computer Aided Geometric Design.
El profesor Wolfgang Boehm, nació el 12 de
mayo de 1928 en Danzig y estudió en la
Universidad Técnica de Berlin. En 1965 fue
designado catedrático de la Universidad de
Braunschweig. El profesor Boehm es el fundador
de la disciplina de diseño geométrico en Europa y
en particular en Alemania. Fue profesor invitado
en las universidades RPI en Troy, NPU en XI-an y
la UCV en Caracas. El Dr. Boehm es uno de los
fundadores de la revista CAGD y desde 1995 se ha
retirado de la actividad académica regular,
dedicándose a actividades privadas.
PALUZNY-PRAUTZSCH-BOEHMMétodosdeBézieryB-Splines
PALUSZNY-PRAUTZSCH-BOEHM
Métodos
de Bézier y
B-Splines
universitätsverlag karlsruhe
Marco Paluszny, Hartmut Prautzsch, Wolfgang Boehm
Métodos de Bézier y B-splines
Volltext algebra superior
Métodos de Bézier y B-splines
Marco Paluszny
Hartmut Prautzsch
Wolfgang Boehm
La versión en inglés del libro de texto "Métodos de Bézier y B-splines"
fue publicada por la editorial Springer Verlag Berlin Heidelberg 2002.
Impressum
Universitätsverlag Karlsruhe
c/o Universitätsbibliothek
Straße am Forum 2
D-76131 Karlsruhe
www.uvka.de
Ó Universitätsverlag Karlsruhe 2005
Print on Demand
ISBN 3-937300-47-3
M´etodos de B´ezier y B-splines
Hartmut Prautzsch
Wolfgang Boehm
Marco Paluszny
2
Dedicado a
Paul de Faget de Casteljau
Volltext algebra superior
Prefacio
Las t´ecnicas de modelaci´on asistidas por computadoras surgen con el adve-
nimiento de las m´aquinas fresadoras con control num´erico en los finales de
la d´ecada de los cuarenta. A partir de los principios de los a˜nos sesenta, las
t´ecnicas de B´ezier y B-splines ya se perfilan como herramientas de impor-
tancia fundamental para el tratamiento de curvas y superficies polin´omicas.
Su ventaja principal radica en que posibilitan la construcci´on de algoritmos
eficientes num´ericamente robustos.
El prop´osito de este texto es dar una base s´olida y unificada para las propieda-
des mas ´utiles de las representaiones de B´ezier y B-splines. El ´enfasis del libro
es sobre las nociones centrales del Dise˜no Geom´etrico Asistido por Computa-
dora (CAGD por su nombre en ingl´es, Computer Aided Geometric Design) y
cubre tanto las nociones b´asicas como tambi´en algunas m´as avanzadas, como
por ejemplo: splines multivariados, t´ecnicas de subdivisi´on y dise˜no a mano
alzada con superficies con alto grado de suavidad.
Con la finalidad de no extender el libro demasiado, hemos excluido algunos
temas que podr´ıan considerarse fundamentales en CAGD. En particular, no
estudiamos t´ecnicas racionales de B´ezier y B-splines.
El libro se fue ensamblando a trav´es del dictado de varios cursos, dicta-
dos repetidamente por los autores, en el Rensselear Polytechnic Institute de
Nueva York, las Universidades de Braunschweig y de Karlsruhe en Alemania
y en la Universidad Central de Venezuela. Estos cursos forman parte de los
curr´ıcula de pre y postgrado de las carreras de Matem´aticas e Inform´atica y
tambi´en fueron atendidos por estudiantes de Ingenier´ıa, Geof´ısica y Arqui-
tectura.
Queremos agradecer la lectura del manuscrito a Stefan Bischoff, Bernhard
Garz, Georg Umlauf, Claudia Bangert, Norbert Luscher, Marianela Lentini,
Giovanni Figueroa y especialmente a Javier S´anchez-Reyes por su revisi´on
exhaustiva de los primeros diez cap´ıtulos del libro.
Queremos tambi´en expresar nuestro agradecimiento a Christoph Pennekamp,
Natalie Spinner, Dayana Tabare, Elizabeth Miquilena, Gabriel Arcos y
Mildred Graterol, por la preparaci´on de los archivos LaTex.
Caracas, Marco Paluszny
Karlsruhe, Hartmut Prautzsch
Wolfenb¨uttel, Wolfgang Boehm
Volltext algebra superior
Contenido
I Curvas
1 Nociones b´asicas
1.1 Espacios afines 3
1.2 Combinaciones afines 4
1.3 Aplicaciones afines 5
1.4 Curvas y superficies param´etricas 6
1.5 Ejercicios 7
2 Representaci´on de B´ezier
2.1 Polinomios de Bernstein 9
2.2 Curvas de B´ezier 11
2.3 Algoritmo de de Casteljau 13
2.4 Derivadas 15
2.5 Parametrizaci´on singular 17
2.6 Un algoritmo tetra´edrico 18
2.7 Integraci´on 19
2.8 Conversi´on a la representaci´on de B´ezier 20
2.9 Conversi´on a la forma monomial 22
2.10 Ejercicios 22
3 T´ecnicas de B´ezier
3.1 Polinomios sim´etricos 25
3.2 El teorema fundamental 27
3.3 Subdivisi´on 27
3.4 Convergencia con la subdivisi´on 29
3.5 Generaci´on de curvas por subdivisi´on 30
X Contenido
3.6 Generaci´on de curvas por diferencias hacia adelante 31
3.7 Intersecci´on 32
3.8 La propiedad de variaci´on decreciente 34
3.9 El polinomio sim´etrico de la derivada 35
3.10 Conexiones Cr
simples 36
3.11 Elevaci´on de grado 38
3.12 Convergencia por elevaci´on de grado 39
3.13 Ejercicios 40
4 Interpolaci´on y aproximaci´on
4.1 Interpolaci´on 43
4.2 Interpolaci´on de Lagrange 44
4.3 Interpolaci´on de Newton 46
4.4 Interpolaci´on de Hermite 48
4.5 Interpolaci´on de Hermite c´ubica por trozos 50
4.6 Aproximaci´on 52
4.7 Ajustes por m´ınimos cuadrados 53
4.8 Mejoras en el par´ametro 55
4.9 Ejercicios 56
5 Representaci´on por B-splines
5.1 Splines 59
5.2 B-splines 60
5.3 Una definici´on recursiva de los B-splines 62
5.4 El algoritmo de de Boor 63
5.5 El teorema fundamental 65
5.6 Derivadas y suavidad 67
5.7 Propiedades de los B-splines 68
5.8 Conversi´on a la representaci´on B-spline 69
5.9 El algoritmo de de Boor extendido 70
5.10 Conversi´on entre las representaciones de de Boor y de B´ezier 72
5.11 B-splines como diferencias divididas 74
5.12 Ejercicios 75
Contenido XI
6 T´ecnicas de B-splines
6.1 Inserci´on de nodos 77
6.2 El algoritmo de Oslo 79
6.3 Convergencia por inserci´on de nodos 80
6.4 Un algoritmo para la elevaci´on de grado 81
6.5 Una f´ormula de elevaci´on de grado 82
6.6 Convergencia por elevaci´on de grado 83
6.7 Interpolaci´on 84
6.8 Interpolaci´on con splines c´ubicos 86
6.9 Ejercicios 88
7 Curvas suaves
7.1 Contacto de orden r 92
7.2 Parametrizaci´on por longitud de arco 94
7.3 Gamma splines 94
7.4 B-splines gamma 96
7.5 Nu-splines 97
7.6 El marco de Frenet 98
7.7 Continuidad de Frenet 99
7.8 Osculantes y polinomios sim´etricos 101
7.9 Interpretaci´on geom´etrica del teorema fundamental 102
7.10 Splines con matrices de conexi´on arbitraria 104
7.11 Inserci´on de nodos 105
7.12 Bases de splines 106
7.13 Ejercicios 107
8 Subdivisi´on uniforme
8.1 B-splines uniformes 109
8.2 Subdivisi´on uniforme 110
8.3 Subdivisi´on iterada 112
8.4 La matriz de subdivisi´on 114
8.5 Derivadas 114
8.6 Subdivisi´on estacionaria 115
8.7 Teoremas de convergencia 116
XII Contenido
8.8 C´alculo del esquema de diferencias 117
8.9 El esquema de los cuatro puntos 118
8.10 An´alisis del esquema de los cuatro puntos 119
8.11 Ejercicios 120
II Superficies
9 Superficies producto tensorial
9.1 Productos tensoriales 125
9.2 Superficies producto tensorial de B´ezier 127
9.3 Formas polares del producto tensorial 130
9.4 Conversi´on entre las formas monomial y de B´ezier 131
9.5 Algoritmo de de Casteljau 132
9.6 Derivadas 133
9.7 Conexiones simples Cr
135
9.8 Interpolaci´on C1
bic´ubica por trozos 136
9.9 Superficies de topolog´ıa arbitraria 136
9.10 Parametrizaci´on singular 137
9.11 Splines bic´ubicos C1
de topolog´ıa arbitraria 138
9.12 Ejercicios 140
10 Representaciones de B´ezier de parches triangulares
10.1 Polinomios de Bernstein multivariados 141
10.2 Simples de B´ezier 143
10.3 Precisi´on lineal 145
10.4 El algoritmo de de Casteljau 146
10.5 Derivadas 147
10.6 Convexidad de superficies funcionales 148
10.7 Limitaciones de la convexidad 150
10.8 Ejercicios 152
11 T´ecnicas de B´ezier para parches triangulares
11.1 Polinomios sim´etricos 155
11.2 El teorema fundamental 157
Contenido XIII
11.3 Subdivisi´on y reparametrizaci´on 157
11.4 Convergencia bajo subdivisi´on 159
11.5 Generaci´on de superficies 160
11.6 El polinomio sim´etrico de la derivada 161
11.7 Conexiones Cr
simples 162
11.8 Elevaci´on de grado 163
11.9 Convergencia por elevaci´on de grado 164
11.10 Conversi´on a la representaci´on tensorial de B´ezier 166
11.11 Conversi´on a la representaci´on triangular de B´ezier 167
11.12 Ejercicios 168
12 Interpolaci´on
12.1 Interpolaci´on de Hermite 169
12.2 El interpolador de Clough-Tocher 170
12.3 El interpolador de Powell-Sabin 171
12.4 Superficies de topolog´ıa arbitraria 172
12.5 Parametrizaci´on singular 173
12.6 Splines C1
de grado cinco de topolog´ıa arbitraria 175
12.7 Ejercicios 175
13 Construcci´on de superficies suaves
13.1 La conexi´on general C1
179
13.2 Conexi´on de dos parches triangulares c´ubicos 181
13.3 Un interpolador triangular G1
183
13.4 El problema del v´ertice compartido 184
13.5 El problema de la paridad 185
13.6 Ejercicios 187
14 Construcciones - Gk
14.1 La conexi´on general Ck
189
14.2 Conexiones Gk
usando curvas transversales 191
14.3 Conexiones Gk
usando la regla de la cadena 192
14.4 Superficies Gk
de topolog´ıa arbitraria 193
14.5 Parches suaves de n lados 197
XIV Contenido
14.6 Parches multilaterales en el plano 200
14.7 Ejercicios 202
15 Subdivisi´on estacionaria para mallas regulares
15.1 Esquemas de producto tensorial 205
15.2 Subdivisi´on estacionaria en general y m´ascaras 207
15.3 Teoremas de convergencia 209
15.4 Promedios crecientes 211
15.5 C´alculos con esquemas de diferencias 212
15.6 C´alculos con esquemas de promedios 214
15.7 Subdivisi´on de mallas triangulares 215
15.8 Box splines sobre mallas triangulares 217
15.9 Subdivisi´on de mallas hexagonales 219
15.10 Half-box splines sobre mallas triangulares 221
15.11 Ejercicios 222
16 Subdivisi´on estacionaria para mallas arbitrarias
16.1 El esquema del punto medio 225
16.2 La superficie l´ımite 227
16.3 La parametrizaci´on standard 229
16.4 La matriz de subdivisi´on 230
16.5 Continuidad de superficies obtenidas por subdivisi´on 231
16.6 La aplicaci´on caracter´ıstica 232
16.7 Suavidad de orden superior 232
16.8 Mallas triangulares y hexagonales 234
16.9 Ejercicios 235
III Splines Multivariados
17 Box splines
17.1 Definici´on de box splines 239
17.2 Box splines como sombras 240
17.3 Propiedades de los box splines 242
17.4 Derivadas de un box spline 243
Contenido XV
17.5 Propiedades de las superficies box spline 244
17.6 Subdivisi´on de superficies box spline 246
17.7 Convergencia bajo subdivisi´on 249
17.8 Half-box splines 251
17.9 Superficies half-box 253
17.10 Ejercicios 255
18 Simplex splines
18.1 Sombras de simples 259
18.2 Propiedades de los simplex splines 260
18.3 Simplex splines normalizados 262
18.4 Inserci´on de nodos 263
18.5 Una relaci´on de recurrencia 265
18.6 Derivadas 266
18.7 Ejercicios 268
19 Splines multivariados
19.1 Generalizaci´on del algoritmo de de Casteljau 269
19.2 B-polinomios y B-parches 271
19.3 Precisi´on lineal 272
19.4 Derivadas de un B-parche 273
19.5 B-splines multivariados 275
19.6 Combinaciones lineales de B-splines 277
19.7 Una relaci´on de recurrencia 279
19.8 Derivadas de un spline 280
19.9 El teorema fundamental 281
19.10 Ejercicios 282
Bibliograf´ıa 285
Indice 295
XVI Contenido
Parte I
Curvas
Volltext algebra superior
1 Nociones b´asicas
1.1 Espacios afines — 1.2 Combinaciones afines — 1.3 Aplicaciones afines —
1.4 Curvas y superficies param´etricas — 1.5 Ejercicios
El espacio tridimensional se puede ver como un conjunto de puntos; un vector
describe la direcci´on y la longitud del segmento entre dos puntos. La inter-
pretaci´on del espacio tridimensional como un espacio de puntos y no como
un espacio vectorial tiene la ventaja de que no es necesario designar un punto
especial como origen. Este hecho se refleja en la simetr´ıa de las coordenadas
baric´entricas.
Como este libro presenta conceptos que ocurren en el espacio tridimensional
de puntos, en este primer cap´ıtulo presentamos una breve introducci´on a las
propiedades del espacio de puntos, denominado espacio af´ın.
1.1 Espacios afines
Denotamos con A al espacio af´ın sobre un espacio vectorial V. En este texto
consideramos solamente espacios vectoriales de dimensi´on finita sobre IR , lo
cual significa que tanto los puntos de A, como tambi´en los vectores de V,
pueden representarse por elementos de IRn
. Por lo tanto x ∈ IRn
representa
un punto o un vector dependiendo del contexto.
Dados dos puntos p y q, el vector de p a q se obtiene como la diferencia de
sus coordenadas
v = q − p
como se ilustra en la Figura 1.1. N´otese que podemos sumar un vector y un
punto, pero la suma de dos puntos no est´a definida.
Podemos distinguir entre puntos y vectores utilizando coordenadas exten-
didas:
Ü =
x
e
representa un
punto si e = 1
vector si e = 0
4 1. Nociones b´asicas
La representaci´on anterior de puntos y vectores depende de un sistema de
coordenadas: dado un punto p de A y n vectores v1, v2, . . . vn que forman
una base V; entonces cada punto q de A tiene una ´unica representaci´on
q = p + v1x1 + · · · + vnxn. Esto es, la columna x = [x1 . . . xn]t
∈ IRn
representa al punto q con respecto al sistema de coordenadas afines
p; v1, . . . , vn. El punto p se denomina origen, del sistema de coordenadas.
La columna coordenada del origen es [0 . . . 0]t
y se denota por o.
La dimensi´on de A se define como la dimensi´on n del espacio vectorial
subyacente V.
Figura 1.1: Vector entre dos puntos
1.2 Combinaciones afines
Los m + 1 puntos p0, . . . , pm de un espacio af´ın A se llaman afinmente
independientes si los m vectores p1 − p0, . . . , pm − p0 son linealmente
independientes. N´otese que esta definici´on no depende de la ordenaci´on de
los puntos pi. V´ease el Ejercicio 1.
Sea n la dimensi´on de A, si p0, , . . . , , pn son n + 1 puntos afinmente inde-
pendientes entonces cada q en A se puede expresar como
q = p0 + (p1 − p0)x1 + · · · + (pn − p0)xn
= p0x0 + · · · + pnxn ,
donde 1 = x0+ · · · +xn. Los coeficientes xi son las coordenadas baric´entricas
de q con respecto al marco p0 . . . pn.
La secuencia ordenada p0, . . . , pn se denomina marco.
N´otese que x0, . . . , xj−1, xj+1, . . . , xn son las coordenadas afines de q con
respecto al origen pj y los n vectores pi − pj, i = j.
En particular, si n = 1 el punto q = p0(1 − x) + p1x traza la interpolaci´on
lineal de p0 y p1. La raz´on x : 1−x se denomina la raz´on simple de q con
respecto a p0 y p1, ver Figura 1.2. N´otese que en nuestra notaci´on 1−x = x0
y x = x1.
Es m´as, sean a1, . . . , am las columnas de coordenadas afines, extendidas o
1.3. Aplicaciones afines 5
Figura 1.2: Interpolaci´on lineal y raz´on.
baric´entricas de cualesquiera m puntos de A. Entonces la suma ponderada
a = aiαi representa un
punto si αi = 1
vector si αi = 0
Si los pesos αi suman 1, entonces a = aiαi se denomina una combinaci´on
af´ın . Si adem´as, los pesos son no negativos, entonces a es una combinaci´on
convexa. En este caso se tiene que a yace en la c´apsula convexa de los
puntos ai, vea el Ejercicio 4.
1.3 Aplicaciones afines
Sean A y B espacios afines, U y V sus espacios vectoriales subyacentes, de
dimensi´on m y n, respectivamente. Una funci´on Φ : A → B se denomina
aplicaci´on af´ın si se puede representar, con respecto a alguno de nuestros
sistemas de coordenadas, a trav´es de una matriz A, de dimensi´on n × m tal
que
y = Φ(x) = a + Ax,
donde a es la imagen del origen.
La aplicaci´on lineal ϕ : U → V dada por
v = ϕ(u) = Au
se denomina la aplicaci´on lineal subyacente de Φ. Usando coordenadas
extendidas, ambas aplicaciones tienen la misma representaci´on matricial
y
1
=
A a
ot
1
x
1
,
v
0
=
A a
ot
1
u
0
,
lo cual se puede rescribir de manera m´as compacta como:
Ý = AÜ , Ú = AÙ .
Las siguientes dos propiedades son consecuencia de la representaci´on
matricial:
6 1. Nociones b´asicas
Una aplicaci´on af´ın Φ conmuta con las combinaciones afines, es
decir
Φ( aiαi) = Φ(ai)αi.
Adem´as,
Una aplicaci´on af´ın est´a completamente determinada por un marco
de dimensi´on dimA + 1 p0 . . . pm y su marco imagen q0 . . . qm.
La primera propiedad tambi´en caracteriza las aplicaciones afines, ver el
Ejercicio 5. La segunda propiedad se puede expresar esquem´aticamente
A q0 . . . qm p0 . . . pm=
m + 1
n + 1
-1
.
1.4 Curvas y superficies param´etricas
Una columna x de IRd
cuyas coordenadas dependen de un par´ametro t recorre
una curva param´etrica
x(t) =



x1(t)
...
xd(t)


 .
Usualmente pensamos en x(t) como una curva de puntos. En particular si
las funciones coordenadas xi(t) son polinomios de grado menor o igual que n
entonces x(t) es una curva polin´omica de grado n en t.
El gr´afico de una funci´on x(t) es una curva que tiene una forma especial.
x(t) =
t
x(t)
.
1.5. Ejercicios 7
Las curvas descritas por gr´aficos de funciones se denominan curvas fun-
cionales. La Figura 1.3 presenta dos ejemplos de curvas param´etricas que
no son funcionales. En la izquierda est´a la parabola de Neil x = [t2
t3
]t
y, a
la derecha, la curva x = [t2
t3
−t]t
.
Figura 1.3: Curvas param´etricas con c´uspide y lazo.
An´alogamente, una columna x que depende de dos par´ametros, s y t, describe
una superficie param´etrica (note que la superficie podr´ıa degenerar a un
punto o a una curva).
x(s, t) =



x1(s, t)
...
xd(s, t)


 .
La superficie se denomina polin´omica de grado total n si los xi son poli-
nomios de grado total menor o igual que n en s y t, y por lo menos uno de
los xi tiene grado total n. El gr´afico de una funci´on x(s, t) de dos variables
determina una superficie polin´omica que tiene una forma especial:
x(s, t) =


s
t
x(s, t)

 .
Estas superficies se denominan superficies funcionales.
1.5 Ejercicios
1 Demostrar que m + 1 puntos p0, . . . , pm son independientes si y s´olo si
sus coordenadas extendidas Ô0, . . . , Ôm son linealmente independientes.
2 Las soluciones de un sistema lineal hom´ogeneo forman un espacio vec-
torial. Verifique que el conjunto de soluciones de un sistema lineal no
hom´ogeneo forma un espacio af´ın.
8 1. Nociones b´asicas
3 Considere la combinaci´on af´ın
p = aα + bβ + cγ
1 = α + β + γ
de tres puntos independientes. Muestre que las coordenadas baric´entricas
α, β, γ determinan las razones ilustradas en la Figura 1.4.
Figura 1.4: Razones en un tri´angulo.
4 La c´apsula convexa de r puntos a1, . . . , ar de un espacio af´ın A es el
subconjunto minimal que contiene los puntos a1, . . . , ar, y satisface que
para cualesquiera dos puntos contenidos en este subconjunto, el segmento
que los une tambi´en pertenece al subconjunto. Pruebe que la c´apsula
convexa consiste en todas las combinaciones convexas de los ai.
5 Demuestre que una aplicaci´on entre dos espacios afines que preserva com-
binaciones afines es una aplicaci´on af´ın.
6 Demuestre que una aplicaci´on entre dos espacios afines que preserva com-
binaciones afines de dos puntos preserva tambi´en combinaciones afines de
cualquier n´umero finito de puntos.
7 Demuestre que el conjunto de combinaciones afines de r + 1 puntos in-
dependientes de un espacio A forma un subespacio af´ın r-dimensional de
A.
2 Representaci´on de B´ezier
2.1 Polinomios de Bernstein — 2.2 Curvas de B´ezier — 2.3 El algoritmo de
de Casteljau — 2.4 Derivadas — 2.5 Parametrizaci´on singular — 2.6 Un
algoritmo tetra´edrico — 2.7 Integraci´on — 2.8 Conversi´on a la representaci´on
de B´ezier — 2.9 Conversi´on a la forma monomial — 2.10 Ejercicios
Toda curva polin´omica admite una representaci´on mediante su pol´ıgono de
B´ezier. Existe una estrecha relaci´on geom´etrica cercana entre una curva
polin´omica y su pol´ıgono de B´ezier. Ambos tienen los mismos puntos ex-
tremos y las tangentes en estos puntos coinciden; la curva yace en la c´apsula
convexa del pol´ıgono. Es m´as, los algoritmos m´as r´apidos y num´ericamente
m´as estables para desplegar gr´aficamente una curva polin´omica se basan en
su representaci´on de B´ezier.
2.1 Polinomios de Bernstein
El c´alculo de la expansi´on binomial
1 = (u + (1 − u))n
=
n
i=0
n
i
ui
(1 − u)n−i
nos permite introducir los polinomios de Bernstein de grado n,
Bn
i (u) :=
n
i
ui
(1 − u)n−i
, i = 0, . . . , n ,
representadas en la Figura 2.1 para n = 4.
Las siguientes propiedades de los polinomios de Bernstein de grado n son
importantes para nuestros prop´ositos:
• Son linealmente independientes.
De hecho, dividiendo
10 2. Representaci´on de B´ezier
Figura 2.1: Los polinomios de Bernstein para n = 4 sobre [0, 1].
n
i=0 biui
(1 − u)n−i
= 0 por (1 − u)n
y usando s = u/(1 − u)
obtenemos
n
i=0 bisi
= 0, lo cual implica que b0 = b1 = . . . = bn = 0.
• Son sim´etricos,
Bn
i (u) = Bn
n−i(1 − u).
• Las ´unicas ra´ıces son 0 y 1,
Bn
i (0) = Bn
n−i(1) =
1
0
para
i = 0
i > 0
.
• Forman una partici´on de la unidad,
n
i=0
Bn
i (u) = 1 , para todo u ∈ IR .
• Son positivos en (0, 1):
Bn
i (u) > 0 , para u ∈ (0, 1) .
• Satisfacen la relaci´on de recurrencia
Bn+1
i (u) = uBn
i−1(u) + (1 − u)Bn
i (u) ,
donde Bn
−1 ≡ Bn
n+1 ≡ 0 y B0
0 ≡ 1.
2.2. Curvas de B´ezier 11
Esta relaci´on de recurrencia se desprende de la identidad
n + 1
i
=
n
i − 1
+
n
i
.
Observaci´on 1: El c´alculo de los polinomios de Bernstein de grado n se
puede organizar en un esquema triangular tal como se muestra en la recursi´on
dada por la regla de la derecha:
1 = B0
0 B1
0 B2
0 · · · Bn
0
B1
1 B2
1 · · · Bn
1
B2
2 · · · Bn
2
...
...
Bn
n
regla
*
*
-
PPPq
u
1 − u
∗
2.2 Curvas de B´ezier
Los polinomios de Bernstein Bn
i de grado n forman una base para el espacio
vectorial de polinomios de grado menor o igual que n. Por lo tanto toda curva
polin´omica b(u) de grado ≤ n tiene una ´unica representaci´on de B´ezier
b(u) =
n
i=0
ciBn
i (u).
La transformaci´on af´ın
u = a(1 − t) + bt, a = b,
deja invariante el grado de b, por lo tanto b(u(t)) tambi´en tiene una ´unica
representaci´on de grado n, en t´erminos de los Bn
i (t)
b(u(t)) =
n
i=0
biBn
i (t).
Los coeficientes bi en IRd
se denominan puntos de B´ezier y son los v´ertices
del pol´ıgono de B´ezier de b(u) sobre el intervalo [a, b]. Nos referimos a
t como el par´ametro local y a u como el par´ametro global de b, ver la
Figura 2.2.
La representaci´on de B´ezier de la curva polin´omica hereda las propiedades
de los polinomios de Bernstein listadas en 2.1
12 2. Representaci´on de B´ezier
Figura 2.2: Una curva c´ubica con su pol´ıgono de B´ezier sobre [a, b].
• La simetr´ıa de los polinomios de Bernstein implica
b(u) =
n
i=0
biBn
i (t) =
n
i=0
bn−iBn
i (s),
donde
u = a(1 − t) + bt = b(1 − s) + as
Nos referimos a la primera y segunda suma como las representaciones de
B´ezier de b sobre [a, b] y [b, a], respectivamente; o sea que usamos intervalos
orientados para distinguir las dos curvas polin´omicas.
• Los extremos del segmento de curva b[a, b] son
b(a) = b0 y b(b) = bn .
Como los polinomios de Bernstein suman uno,
• b(u) es una combinaci´on af´ın de sus puntos de B´ezier.
En consecuencia,
• la representaci´on de B´ezier es afinmente invariante, es decir, dada
una aplicaci´on af´ın Φ, la curva imagen Φ(b) tiene a los Φ(bi) como
puntos de control, sobre [a, b].
Como los polinomios de Bernstein son no negativos en [0, 1],
• se tiene que para todo u ∈ [a, b], b(u) es una combinaci´on convexa
de los bi. Por lo tanto el segmento de curva b[a, b] yace en la c´apsula
convexa de los bi, tal como se ilustra en la Figura 2.3.
2.3. Algoritmo de de Casteljau 13
Figura 2.3: La c´apsula convexa de un pol´ıgono de B´ezier.
Observaci´on 2: Usando la propiedad de la c´apsula convexa, para cada
coordenada b(u) se obtiene una caja de acotaci´on para el segmento de
curva b[a, b]. Esto es
b[a, b] ⊂ [
n
min
i=0
bi,
n
max
i=0
bi] , u ∈ [a, b] ,
como se ilustra en la Figura 2.4 para una curva plana.
Figura 2.4: Caja de acotaci´on.
2.3 Algoritmo de de Casteljau
Una curva b(u) =
n
i=0 biBn
i (t) se puede evaluar usando el algoritmo de de
Casteljau [Casteljau ’59]. Esto usualmente se hace para t ∈ [0, 1]. El proceso
es como sigue: usando las relaciones de recurrencia para los polinomios de
Bernstein y agrupando t´erminos repetidamente se obtiene
b(u) =
n
i=0
b0
i Bn
i (t) =
n−1
i=0
b1
i Bn−1
i (t) = · · · =
0
i=0
bn
i B0
i (t) = bn
0 ,
donde
bk+1
i = (1 − t)bk
i + t bk
i+1 .
14 2. Representaci´on de B´ezier
La Figura 2.5 ilustra dos ejemplos de evaluaci´on de la curva b(u), en los
puntos t = 0.4 (izquierda) y t = 1.4 (derecha).
Los puntos intermedios bk
i del algoritmo de de Casteljau pueden organizarse
en un esquema triangular, el cual sugiere su generaci´on recursiva:
Figura 2.5: La construcci´on de de Casteljau para puntos dentro y fuera de [0, 1].
b0
b1 b1
0
b2 b1
1 b2
0
...
...
bn b1
n−1 b2
n−2 · · · bn
0
regla
b
a
-
PPPq
1-t
t
c = a(1 − t) + bt
Observaci´on 3: Si t yace en [0, 1], entonces la construcci´on de de Casteljau
involucra solamente combinaciones convexas, lo que garantiza la estabilidad
num´erica del algoritmo.
Observaci´on 4: El m´etodo de Horner es un algoritmo ´optimo, desde
el punto de vista del n´umero de operaciones, para evaluar polinomios en
forma monomial. Este m´etodo tambi´en se puede usar para evaluar una curva
b(t) = biBn
i (t), en su representaci´on de B´ezier. Despu´es de expresar b(t)
como:
b(t) = (1 − t)n
n
i=0
bi
n
i
t
1 − t
i
,
primero se eval´ua la expresi´on en par´entesis usando el m´etodo de Horner para
el valor t/(1 − t) y posteriormente se multiplica el resultado por (1 − t)n
. Sin
embargo esta t´ecnica falla cuando t est´a cerca de 1. En este caso se usa la
expresi´on:
2.4. Derivadas 15
b(t) = tn
n
i=0
bn−i
n
i
1 − t
t
i
.
2.4 Derivadas
La derivada de un polinomio de Bernstein de grado n es f´acil de calcular. De
la definici´on de los polinomios de Bernstein se obtiene:
d
dt
Bn
i (t) = n(Bn−1
i−1 (t) − Bn−1
i (t)) para i = 0, . . . , n.
Para unificar la notaci´on hemos supuesto, como antes, que Bn−1
−1 ≡ Bn−1
n ≡ 0.
Luego dada una curva
b(u) =
n
i=0
biBn
i (t) , t =
u − a
b − a
,
obtenemos
d
du
b(u) =
n
b − a
n−1
i=0
∆biBn−1
i (t) ,
donde ∆bi = bi+1 − bi denota la primera diferencia hacia adelante, ver
la Figura 2.6.
Figura 2.6: Curva de B´ezier y su hod´ografo.
Si b(u) se considera un punto, entonces b′
(u) es un vector. Al sumarle un
punto a b′
(u) se obtendr´a un punto. En particular o + b′
(u) se denomina el
primer hod´ografo de b.
16 2. Representaci´on de B´ezier
Aplicando repetidamente la f´ormula para la derivada, obtenemos la r−´esima
derivada de b,
b(r)
(u) =
n!
(n − r)!(b − a)r
n−r
i=0
∆r
biBn−r
i (t) ,
donde ∆r
bi = ∆r−1
bi+1−∆r−1
bi es la r−´esima diferencia hacia adelante
de bi. De modo an´alogo se obtiene el segundo hod´ografo y otros de orden
superior.
A partir de las f´ormulas de las derivadas y de la propiedad de interpolaci´on
de los puntos de control en los extremos obtenemos el siguiente resultado
observado por Pierre B´ezier:
Las derivadas r−´esimas hasta orden n, de b(u) en t = 0(t = 1)
dependen de los primeros (´ultimos) r + 1 puntos de B´ezier. El
rec´ıproco de esta observaci´on tambi´en es cierto.
Geom´etricamente, ´esto significa que las rectas tangentes de b en t = 0 y
en t = 1 pasan por b0, b1 y bn−1, bn, respectivamente. Los planos oscu-
ladores de b en t = 0 y t = 1 son generados por b0, b1, b2 y bn−2, bn−1, bn,
respectivamente. La Figura 2.7 ilustra esta propiedad.
Figura 2.7: Tangentes y planos osculadores en los extremos.
Observaci´on 5: Si consideramos el pol´ıgono de control de una curva de
B´ezier b(u) = biBn
i (t), donde u = (1 − t)a + t b, como una funci´on lineal
por trozos p(u) definida sobre [a, b], entonces
la derivada p′
(u) del pol´ıgono de B´ezier son los puntos de B´ezier
de b′
(u).
Esto se ilustra en la Figura 2.8 para una curva funcional.
2.5. Parametrizaci´on singular 17
Figura 2.8: Derivadas de un pol´ıgono de B´ezier.
2.5 Parametrizaci´on singular
Consideramos la curva polin´omica
b(t) =
n
i=0
biBn
i (t) ,
y su derivada
˙b(t) = n
n−1
i=0
∆biBn−1
i (t) ,
donde el punto indica derivaci´on con respecto al par´ametro t.
Si ∆b0 = o, entonces ˙b(t) es cero en t = 0.
Sin embargo, en t´erminos de la reparametrizaci´on singular t =
√
s se obtiene
d
ds
b(t(0)) = n.∆b1
Entonces, si ∆b0 = o y ∆b1 = o, la recta tangente de b(t) en t = 0 pasa por
b0 y b2, como se ilustra en la Figura 2.9.
Figura 2.9: Parametrizaci´on singular.
Observaci´on 6: Si ∆b0 = ∆b1 = 0 y ∆b2 = 0 la tangente a b(t) en t = 0
pasa por b3
18 2. Representaci´on de B´ezier
2.6 Un algoritmo tetra´edrico
El c´alculo de las diferencias y las combinaciones afines del algoritmo de de
Casteljau se pueden combinar. Concretamente, la r-´esima derivada de una
curva
b(u) = b0
i Bn
i (t), t =
u − a
b − a
,
en un punto u puede ser calculada aplicando el algoritmo de de Casteljau a
m´ultiplos de las diferencias ∆k
bi. Como el c´alculo de combinaciones afines
es conmutativo,
∝i βj Pij = βj ∝i Pij,
se tiene que el operador ∆ de diferencias hacia adelante conmuta con los
pasos del algoritmo de de Casteljau.
Por lo tanto, se puede calcular la derivada r−´esima en u calculando primero
n − r pasos del algoritmo de de Casteljau, seguido por r diferencias y pos-
teriormente multiplicando por el factor n · · · (n − r + 1)/(b − a)r
. Entonces
resulta:
b(r)
(u) =
n · · · (n − r + 1)
(b − a)r
∆r
bn−r
0 .
En particular esta f´ormula nos dice que la tangente y el plano osculador de
b en u est´an generados por bn−1
0 , bn−1
1 y bn−2
0 , bn−2
1 , bn−2
2 , respectivamente,
tal como se ilustra en la Figura 2.10 para una c´ubica.
Figura 2.10: Los planos tangente y osculador en el esquema de de Casteljau.
A lo largo del c´alculo de los puntos ∆r
bn−k
0 para todo k, a trav´es de los pasos
del algoritmo de de Casteljau y de las diferencias hacia adelante se generan
los puntos intermedios ∆k
bi
j, i + j + k ≤ n. Todos estos puntos se pueden
2.7. Integraci´on 19
ubicar espacialmente en un esquema tetra´edrico, tal como se ilustra en la
Figura 2.11 para n = 2, en la cual la regla recursiva est´a dada por:
c = a(1 − t) + bt y d = b − a .
Figura 2.11: El algoritmo tetra´edrico.
La recursi´on anterior no es la ´unica forma para calcular los ∆k
bj
i . Otras
posiblidades se obtienen eliminando a o b. Esto es:
c = b + d(t − 1) y c = a + dt.
respectivamente.
Cuando usamos una de estas reglas, en vez del paso correspondiente a la
diferencia, entonces es suficiente calcular solamente los puntos de los dos
esquemas triangulares dados por los puntos del lado inferior izquierdo (o
derecho) del tetraedro.
Observaci´on 7: N´otese que tomar diferencias en general no es un proceso
num´ericamente estable. En consecuencia el c´alculo de derivadas tampoco es
estable.
2.7 Integraci´on
La integral de una curva polin´omica en representaci´on de B´ezier
b(u) =
n
i=0
biBn
i (t), t =
u − a
b − a
,
20 2. Representaci´on de B´ezier
tiene la representaci´on de B´ezier
c(u) = b(u)du =
n+1
i=0
ciBn+1
i (t) ,
donde
ci = ci−1 +
b − a
n + 1
bi−1
= c0 +
b − a
n + 1
(b0 + · · · + bi−1) , i = n + 1, . . . , 1 ,
y c0 es una constante de integraci´on. Esto puede verificarse f´acilmente
derivando c(u).
A partir de la f´ormula anterior y de que b(u) interpola los extremos b0 y bn
se deduce la siguiente igualdad
b
a
b(u)du =
b − a
n + 1
(b0 + · · · + bn)
y en particular,
1
0
Bn
i (t)dt =
1
n + 1
i = 0,...,n .
2.8 Conversi´on a la representaci´on de B´ezier
Algunos sistemas antiguos de dise˜no asisitido por computadora (computer
aided design - CAD) utilizan la base monomial para representar curvas. Por
lo tanto es importante disponer de formas eficientes para transformar la pre-
sentaci´on monomial de una curva a su representaci´on de B´ezier. Sea
b(t) =
n
i=0
ai
n
i
ti
una curva en representaci´on monomial. Como
n
i
ti
(1 − t + t)n−i
=
n−i
k=0
n
i
n − i
n−i−k
ti+k
(1 − t)n−i−k
=
n−i
k=0
i + k
i
Bn
i+k
=
n
j=0
j
i
Bn
j ,
2.8. Conversi´on a la representaci´on de B´ezier 21
se obtiene
b(t) =
n
j=0
bjBn
j (t) ,
donde
bj =
n
i=0
j
i
ai
y j
i = 0 para j < i.
La f´ormula para convertir de la representaci´on de B´ezier a la monomial se
obtiene de manera similar, expandiendo los polinomios de Bernstein, ver
Ejercicio 4. En 2.9 presentaremos una deducci´on diferente de esta f´ormula
de conversi´on.
Observaci´on 8: Si a2 = · · · = an = o, pero a1 = o, b(t) es un polinomio
lineal y sus puntos de B´ezier sobre [0, 1] son
bj = a0 + ja1 .
Tal como se ilustra en la Figura 2.12.
Figura 2.12: Distribuci´on uniforme de puntos de B´ezier sobre una recta.
Observaci´on 9: Rec´ıprocamente, si los n + 1 puntos de B´ezier bi est´an
uniformemente distribuidos sobre una recta, entonces b(t) es un polinomio
lineal y se puede escribir,
b(t) = (1 − t)b0 + tbn .
Esta propiedad se denomina precisi´on lineal de la representaci´on de B´ezier.
Observaci´on 10: Se desprende de la Observaci´on 8 que la curva de B´ezier
funcional
b(t) =
t
b(t)
, b(t) = biBn
i (t) ,
tiene puntos de B´ezier [i/n bi]t
como se ilustra en la Figura 2.13. Los
coeficientes bi se denominan las ordenadas de B´ezier de b(t) mientras que
los puntos i/n, las abscisas de B´ezier.
22 2. Representaci´on de B´ezier
Figura 2.13: Representaci´on de B´ezier de una curva funcional.
2.9 Conversi´on a la forma monomial
Dada una curva polin´omica en su representaci´on de B´ezier se obtiene su forma
monomial utilizando la expansi´on de Taylor,
b(u) =
n
i=0
biBn
i
u − a
b − a
=
n
i=0
b(i)
(a)
(u − a)i
i!
=
n
i=0
n
i
∆i
b0
(u − a)i
(b − a)i
.
Como ∆i
b0 =
i
k=0
i
k (−1)i−k
bk, ver Ejercicio 3, b(a) se puede rescribir
como
b(u) =
n
i=0
i
k=0
(−1)i−k n
i
i
k
Úbk ti
.
Observaci´on 11: Usando el algoritmo tetra´edrico de 2.6 se puede calcular
la expansi´on de Taylor en u:
b(u + h) =
n
i=0
1
(b − a)i
∆i
bn−i
0
n
i
hi
.
2.10 Ejercicios
1 Muestre que el polinomio de Bernstein Bn
i (t) tiene un s´olo m´aximo en
[0, 1], en concreto en t = i/n.
2.10. Ejercicios 23
2 El operador de Bernstein B asocia a una funci´on f en [0, 1] el poli-
nomio.
B[f] =
n
i=0
f(i/n)Bn
i (t).
Si f es un polinomio de grado m ≤ n, muestre que B[f] tambi´en lo es.
Vea el Ejercicio 2 de 3.13
3 Demuestre que
∆i
b0 =
i
k=0
i
k
(−1)i−k
bk .
4 Encuentre la f´ormula de conversi´on de la presentaci´on de B´ezier a la
monomial por medios algebraicos elementales como en 2.8.
5 Verifique la identidad
n . . . (n − k) tk+1
=
n
i=0
i . . . (i − k) Bn
i (t).
6 Verifique que una c´ubica plana b(t) tiene una c´uspide en t = 0, esto es:
t = 0 es un punto donde b(t) invierte su direcci´on si ˙b(0) = o y ambas
coordenadas de ¨b(0) son diferentes de cero (los puntos indican derivaci´on
respecto a t).
7 Demuestre que una c´ubica plana b(t) =
3
i=0 biB3
i (t) tiene una c´uspide
si b3 yace en la par´abola
p(t) = (b0 + b1 − b2)B2
0(t) + b1B2
1(t) + b2B2
2(t)
[Pottmann & DeRose ’91].
8 ¿Para qu´e escogencia de b3, tiene b(t) un lazo?
9 Sea
n
i=0 ai
n
i ti
=
n
i=0 biBn
i (t). Entonces en notaci´on matricial se
tiene
[a0 . . . an] = [b0 . . . bn] ∆ ,
donde ∆ = (−1)j−i j
i y ∆−1
= i
j . N´otese que las matrices ∆ y
∆−1
son triangulares superiores.
Volltext algebra superior
3 T´ecnicas de B´ezier
3.1 Polinomios sim´etricos — 3.2 El teorema fundamental — 3.3 Subdivisi´on —
3.4 Convergencia con la subdivisi´on — 3.5 Generaci´on de curvas por subdivisi´on
— 3.6 Generaci´on de curvas por diferencias hacia adelante — 3.7 Intersecci´on —
3.8 La propiedad de variaci´on decreciente — 3.9 El polinomio sim´etrico asociado
a la derivada — 3.10 Conexiones Cr
simples — 3.11 Elevaci´on de grado —
3.12 Convergencia por elevaci´on de grado — 3.13 Ejercicios
Muchos algoritmos para curvas de B´ezier pueden ser considerados en el con-
texto de los polinomios sim´etricos. En el presente cap´ıtulo estudiamos la
relaci´on entre un polinomio de una variable y el polinomio sim´etrico, de
varias variables, que se le asocia. Presentamos tambi´en los algoritmos b´asicos
del dise˜no geom´etrico asistido por computadora (Computer Aided Geometric
Design-CAGD) en t´erminos de esta relaci´on. El m´as importante de estos al-
goritmos es el de de Casteljau, el cual es muy ´util tanto en implementaciones
pr´acticas como en el contexto te´orico.
3.1 Polinomios sim´etricos
A cada curva polin´omica b(u) de grado ≤ n se le puede asociar un ´unico
polinomio sim´etrico b[u1 . . . un] con las siguientes tres propiedades:
• b[u1 . . . un] coincide con b(u) sobre la diagonal, esto es
b[u . . . u] = b(u) .
• b[u1 . . . un] es sim´etrico lo cual significa que, para cualquier per-
mutaci´on (v1, . . . , vn) de (u1, . . . , un)
b[v1 . . . vn] = b[u1 . . . un], .
• b[u1 . . . un] es af´ın en cada variable, esto es:
b[(αu + (1 − α)v) u2 . . . un] = αb[u u2 . . . un] + (1 − α)b[v u2 . . . un] .
26 3. T´ecnicas de B´ezier
Cl´asicamente, el polinomio sim´etrico b[u1 . . . un] se denomina forma polar
asociada a b(u). M´as recientemente se ha venido denominando blossom
de b(u) [Ramshaw ’87]. Para demostrar que cualquier polinomio de una
variable tiene una forma polar es suficiente encontrar las formas polares de
los elementos de una base del espacio vectorial de polinomios.
De hecho, dada cualquier combinaci´on lineal
b(u) =
n
i=0
ci Ci(u)
donde cada Ci(u) tiene grado n y denotando sus formas polares por Ci[u1 . . . un]
se tiene que su forma polar est´a dada por
b[u1 . . . un] =
n
i=0
ciCi[u1 . . . un] .
N´otese que la diagonal b[u . . . u] puede tener grado menor que n a pesar de
que b[u1 . . . un] depende de n variables.
En el caso de que los Ci son los monomios An
i = n
i ui
, i = 0, . . . , n, se
obtienen los polinomios sim´etricos elementales
An
i [u1 . . . un] =
1≤j1 < ···< ji ≤n
uj1
. . . uji
los cuales satisfacen las tres propiedades de arriba. N´otese que la suma en la
f´ormula anterior se extiende sobre n
i productos de i variables.
En el caso de que los Ci sean los polinomios de Bernstein
Bn
i (u) =
n
i
ui
(1 − u)n−i
se obtiene:
Bn
i [u1 . . . un] =
j1<···<ji
k1<···<kn−i
uj1
. . . uji
· (1 − uk1
) . . . (1 − ukn−i
) ,
donde (j1, . . . , ji, k1, . . . , kn−i) es una permutaci´on de (1, . . . , n). Como
antes, las propiedades anteriores son f´aciles de verificar.
Observaci´on 1: Los polinomios sim´etricos Bn
i [u1 . . . un] satisfacen la relaci´on
de recurrecia
Bn+1
i [u0 . . . un] = u0Bn
i−1[u1 . . . un] + (1 − u0)Bn
i [u1 . . . un] .
3.2. El teorema fundamental 27
3.2 El teorema fundamental
La unicidad del polinomio sim´etrico y su relaci´on con la representaci´on de
B´ezier est´a dada por el siguiente teorema, el cual se generaliza en varias
direcciones en este texto:
Para cada curva polin´omica b(u) de grado ≤ n existe un ´unico
polinomio sim´etrico de n variables b[u1 . . . un], el cual es mul-
tiaf´ın y su diagonal satisface b[u . . . u] = b(u). Es m´as, los pun-
tos
bi = b[a n−i. . . a b i. . . b] , i = 0, . . . , n ,
son los puntos de B´ezier de b(u) sobre [a, b].
Demostraci´on: En 3.1 demostramos la existencia de la forma polar b[u1
. . . un] para un curva b(u). Por lo tanto podemos considerar los puntos:
bk
i = b[a j
. . . a u1
k. . . uk b i. . . b] , i + j + k = n .
Como bn
0 = b[u1 . . . un] es sim´etrico y multiaf´ın, puede calcularse a partir
de los b0
i por medio de la siguiente relaci´on de recurrencia
(1) bk+1
i = bk
i · (1 − tk+1) + bk
i+1 · tk+1 ,
donde
tk =
uk − a
b − a
.
La Figura 3.1 ilustra este proceso, los puntos b[u1 . . . un] se denotan por
sus argumentos u1 . . . un.
Es m´as, si todos los uk son iguales a u, entonces la relaci´on de recurrencia
(1) se reduce al algoritmo de de Casteljau para la evaluaci´on de b(u). En
consecuencia, como la representaci´on de B´ezier es ´unica, los puntos bi son los
puntos de B´ezier de b(u) sobre [a, b]. Por lo tanto, dos polinomios sim´etricos
que coinciden sobre la diagonal, coinciden tambi´en sobre todos los argumentos
[a n−i. . . a b i. . . b], y por la relaci´on de recurrencia (1) son id´enticos. Por lo tanto
b(u) tiene una ´unica forma polar. 3
3.3 Subdivisi´on
La relaci´on de recurrencia (1) tal como se ilustra en la Figura 3.2 revela una
importante propiedad del algoritmo de Casteljau.
28 3. T´ecnicas de B´ezier
Figura 3.1: Teorema fundamental.
Correctamente en el esquema de de Casteljau
b0
0
b0
1 b 1
0
...
...
b0
n
1
n−1 · · · bn
0 = b(c).
Figura 3.2: Subdivisi´on.
utilizado para calcular b(c), los puntos de B´ezier
bi
0 = b[a n−i. . . a c i. . . c] y bn−i
i = b[c n−i. . . c b i. . . b]
3.4. Convergencia con la subdivisi´on 29
de la curva sobre [a, c] y [c, b] se encuentran en la diagonal superior y la fila
inferior respectivamente.
El c´alculo de los puntos de B´ezier sobre [a, c] y [c, b] se denomina subdivisi´on.
Al subdividir repetidamente una curva polin´omica b(u) se genera una par-
tici´on [a0, a1], [a1, a2], . . . , [ak−1, ak] de su dominio. La uni´on de los pol´ıgonos
de B´ezier sobre los subintervalos se denomina el pol´ıgono de B´ezier com-
puesto de b sobre [a0, a1, . . . , ak]. En general el pol´ıgono compuesto consta
de kn + 1 v´ertices.
3.4 Convergencia con la subdivisi´on
El pol´ıgono de B´ezier de un segmento “corto” de una curva de B´ezier es una
buena aproximaci´on a este segmento. En concreto, sean b0, . . . , bn los puntos
de B´ezier de una curva b(u) sobre un subintervalo [c, c + nh] del intervalo
[a, b] y sean ci = c + ih para i = 0, . . . , n. Entonces
existe una constante M que no depende de c tal que
max
i
b(ci) − bi ≤ Mh2
.
Demostraci´on: Expandimos el polinomio sim´etrico b[u1 . . . un] alrededor
de [ci . . . ci] y evaluando en [u1 . . . un] = [c n−i. . . c c+nh i. . . c+nh] obtenemos
bi = b[c n−i. . . c c+nh i. . . c+nh]
= b[ci . . . ci] −
n−i
j=1
ih
∂
∂uj
b[ci . . . ci] +
n
j=n−i+1
(n − i)h
∂
∂uj
b[ci . . . ci]
+O(h2
) ,
lo cual demuestra nuestra afirmaci´on pues todas las derivadas parciales son
iguales.
En las pr´oximas secciones se presentar´an aplicaciones de esta propiedad. Una
versi´on m´as general puede encontrarse en 6.3 para splines.
Observaci´on 2: En caso de la norma · ∞, el m´ınimo valor posible para
la constante M, para el cual la estimaci´on anterior es v´alida para cualquier
curva, est´a dada por
max
i=0,...,n−2
∆2
bi ∞ · ⌊n/2⌋ · ⌈n/2⌉/2n .
Ver [Nairn et al. ’99] y [Reif ’00]
Observaci´on 3: La convergencia cuadr´atica no puede ser mejorada, lo que se
puede verificar para la par´abola p(u) = u2
, cuyo punto de B´ezier intermedio
sobre [0, 2h] es cero y p(h) = h2
.
30 3. T´ecnicas de B´ezier
3.5 Generaci´on de curvas por subdivisi´on
La t´ecnica de subdivisi´on provee un m´etodo muy r´apido para generar una
aproximaci´on a una curva de B´ezier. De 3.4 se desprende que los pol´ıgonos
de B´ezier sobre
[0,
1
2k
,
2
2k
, . . . , 1]
de una curva
b(t) = biBn
i (t)
convergen al segmento de curva b[0, 1] con orden 1/4h
. Esto sugiere el si-
guiente programa de graficaci´on [Lane & Riesenfeld ’80]:
Plot B´ezier (b0, . . . , bn; k)
if k = 1
then dibujar el pol´ıgono b0, . . . , bn
else calcular el pol´ıgono de B´ezier compuesto a0, . . . , a2n
de biBn
i (t) sobre [0, 0.5, 1].
Plot B´ezier (a0, . . . , an, k − 1)
Plot B´ezier (an, . . . , a2n, k − 1)
La Figura 3.3 se obtuvo con el programa anterior aplicado al pol´ıgono de
control de una c´ubica para k = 3.
Figura 3.3: Subdivisi´on de un pol´ıgono de B´ezier.
Adem´as del n´umero de iteraciones se pueden usar otros criterios de finali-
zaci´on. Por ejemplo, se podr´ıa parar cuando el pol´ıgono de B´ezier es aproxi-
madamente un segmento de recta. Una medida simple de linealidad se basa
en segundas diferencias hacia adelante. As´ı, en el programa anterior se podr´ıa
3.6. Generaci´on de curvas por diferencias hacia adelante 31
cambiar la primera l´ınea a
si k = 0 o max{ ∆2
bi | i = 0, . . . , n − 2} < ε.
En vez de dibujar el pol´ıgono de B´ezier tambi´en se podr´ıa simplemente
dibujar el segmento b0bn si la condici´on se satisfaciese. Una cota para la
desviaci´on con respecto a la curva est´a dada por el siguiente teorema:
Sea l(t) = b0(1 − t) + bnt el interpolante lineal de b(t) entonces
se tiene
sup
0≤t≤1
b(t) − l(t) ≤
1
8
sup
0≤t≤1
¨b(t)
≤
1
8
n(n − 1) max
i=0,...,n−2
∆2
bi ,
donde · denota la norma uno, la norma infinito o la norma
Eucl´ıdea de vectores.
Para la demostraci´on consultar [de Boor ’78, p´ag. 39] y [Filip et al. ’86].
Observaci´on 4: Si b(u) tiene puntos de B´ezier bi sobre [a, b] y puntos
de B´ezier ci sobre un subintervalo [c, c + h], entonces las diferencias ∆2
ci
est´an acotadas por (h/(b − a))2
max ∆2
bi , vea el Ejercicio 3. Entonces,
con respecto a h la aproximaci´on por el interpolante lineal es cuadr´atica.
El orden de aproximaci´on es cuadr´atico en general. Entonces por la Obser-
vaci´on 3, el pol´ıgono de B´ezier compuesto sobre [0, 1
2m , . . . , 1] es una aprox-
imaci´on asint´oticamente tan buena como la poligonal resultante de conectar
los v´ertices
b
i
(n2m)
, i = 0, 1, . . . , n2m
Observaci´on 5: Desde el punto de vista num´erico el programa anterior s´olo
hace evaluaciones de la forma (a + b)/2. Por lo tanto el proceso se puede
acelerar si las divisiones se realizan como desplazamientos de bits. Luego hay
aproximadamente (n+1)/2 sumas vectoriales y una divisi´on por cada v´ertice
del pol´ıgono dibujado por el programa.
3.6 Generaci´on de curvas por diferencias hacia
adelante
Otro m´etodo r´apido para calcular puntos sobre una curva de B´ezier est´a
basado en la t´ecnica de diferencias hacia adelante. Sea b(u) una curva
polin´omica y sean
pi = b(a + ih) , i = 0, . . . , m ,
32 3. T´ecnicas de B´ezier
puntos sobre esta curva correspondientes a valores uniformemente distribui-
dos del par´ametro. Si b(u) tiene grado n entonces se tiene que la diferencia
hacia adelante ∆n+1
pi es cero y ∆n
pi es constante (independientemente de
i). Ver el Ejercicio 1.
Este hecho se puede utilizar para calcular los puntos pi, i = n + 1, . . . , m,
a partir de los puntos p0, . . . , pn. En primer lugar se calcula la constante
∆n
p0, tomando diferencias hacia adelante y luego se determinan los puntos
pi, i > n por sumas repetidas ”hacia atr´as”. Este c´alculo se puede organizar
en una forma conveniente por medio del siguiente esquema:
p0
p1 ∆1
p0
...
...
pn ∆1
pn−1 · · · ∆n
p0
pn+1 ∆1
pn · · · ∆n
p1
...
...
pm ∆1
pm−1 · · · ∆n
pm−n
regla
∗ ∗
∗
Z
Z~-
−
+
recursi´on
∗ ∗
∗
?
+
+
Observaci´on 6: Exceptuando el c´alculo de los primeros n + 1 puntos
p0, . . . , pn y de las posiciones de la parte triangular del arreglo anterior, se
requieren n sumas vectoriales por cada punto de la curva. Por lo tanto la gen-
eraci´on de curvas por subdivisi´on es casi dos veces m´as r´apida que por difer-
encias hacia adelante. Adem´as el m´etodo de subdivisi´on es num´ericamente
m´as estable, ver la Observaci´on 5.
3.7 Intersecci´on
La subdivisi´on tambi´en es ´util para el c´alculo de las intersecciones de dos
curvas de B´ezier
b(s) = biBm
i (s) , s ∈ [0, 1] ,
y
c(t) = ciBn
i (t) , t ∈ [0, 1] .
La idea fundamental para encontrar (o aproximar) la intersecci´on de dos
curvas de B´ezier consiste en considerar los pol´ıgonos de control de las curvas
b(s) y c(t) y sus subdivisiones. Si la intersecci´on de las c´apsulas convexas
3.7. Intersecci´on 33
Figura 3.4: Curvas intersecantes y curvas disjuntas.
de los pol´ıgonos de control es vac´ıa entonces las curvas no se cortan. Si las
c´apsulas tienen intersecci´on no vac´ıa entonces ´estas podr´ıan cortarse. En este
caso subdividimos ambas curvas (por simplicidad) en s = 1/2 y t = 1/2 y
verificamos si las c´apsulas convexas de cada una de las mitades b[0, 1/2] y
b[1/2, 1] tienen intersecci´on con las c´apsulas convexas de c[0, 1/2] y c[1/2, 1].
Este proceso se repite para todos los pares de segmentos de curvas cuyas
c´apsulas convexas se intersecan. Si finalmente, las c´apsulas convexas se hacen
peque˜nas y alargadas entonces las curvas se pueden aproximar por segmentos
de recta cuyas intersecciones son f´aciles de calcular.
En vez de c´apsulas convexas, es mucho m´as f´acil usar cajas de acotaci´on
[min bi, max bi] y [min ci, max ci]. Vea la Observaci´on 1 en 2.2. Esta idea
sugiere el siguiente programa para calcular la intersecci´on de dos segmentos
de B´ezier:
INTERSECTAR(b0, . . . , bm; c0, . . . , cn; ε)
if [min bi, max bi] ∩ [min cj, max cj] = ∅
then if m(m − 1) max ∆2
bi  ε
then calcular el pol´ıgono de B´ezier compuesto b′
0, . . . , b′
2m
de biBm
i (s) sobre [0, 0.5, 1],
INTERSECTAR (b′
0, . . . , b′
m; c0, . . . , cn; ε)
INTERSECTAR(b′
m, . . . , b′
2m; c0, . . . , cn; ε)
else if n(n − 1) max ∆2
ci  ε
then calcular el pol´ıgono de B´ezier compuesto c′
0, . . . , c′
2n
de ciBn
i (t) sobre [0, 0.5, 1],
INTERSECTAR (b0, . . . , bm; c′
0, . . . , c′
n; ε)
INTERSECTAR (b0, . . . , bm; c′
n, . . . , c′
2n; ε)
else intersectar los segmentos de recta b0bm y c0cn
34 3. T´ecnicas de B´ezier
3.8 La propiedad de variaci´on decreciente
La subdivisi´on no es solamente una herramienta de utilidad pr´actica sino
tambi´en es importante desde el punto de vista te´orico. A continuaci´on vemos
como ´esta se puede emplear para demostrar la propiedad de la variaci´on
decreciente:
El n´umero de veces que un plano arbitrario H corta a una curva
b(t); t ∈ [0, 1] es menor o igual que el n´umero de veces que H
corta al pol´ıgono de B´ezier de b(t).
La Figura 3.5 muestra un ejemplo.
Figura 3.5: Intersecci´on con un hiperplano.
Para demostrarlo primero observamos que el algoritmo de de Casteljau es un
proceso repetido de recorte de esquinas para cualquier t ∈ [0, 1]. Entendemos
por esquina el extremo com´un de dos segmentos en el espacio. Esto se ilustra
en la Figura 3.6 para una esquina.
Figura 3.6: Recorte de una esquina.
Si el segmento ac corta H entonces el pol´ıgono abc tambi´en corta H. (Note
que el rec´ıproco, sin embargo no es cierto en general.) En consecuencia el
pol´ıgono de B´ezier sobre cualquier subdivisi´on [0, t1, . . . , tk, 1] de [0, 1] tiene
a lo sumo el mismo n´umero de intersecciones con H que el pol´ıgono de B´ezier
sobre [0, 1].
En particular, si los ti se escogen de manera que b(t1), . . . , b(tk) son las
intersecciones de b con H, entonces tenemos que el pol´ıgono de B´ezier tiene
3.9. El polinomio sim´etrico de la derivada 35
por lo menos k intersecciones con H. 3
Observaci´on 7: Si una curva o un pol´ıgono en IRd
corta cualquier plano
en a lo sumo dos puntos o yace en ese plano entonces la curva o el pol´ıgono
es necesariamente plano y se denomina convexo. Como consecuencia de la
propiedad de la variaci´on decreciente se tiene que toda curva con un pol´ıgono
de B´ezier conexo es a su vez tambi´en convexa. Sin embargo, el rec´ıproco de
esto no es cierto en general, como se ilustra en la Figura 3.7. Vea tambi´en el
Ejercicio 11.
Figura 3.7: Cu´artica convexa con un pol´ıgono de B´ezier no convexo.
Observaci´on 8: El gr´afico de un polinomio
b(t) = biBn
i (t), t ∈ [0, 1]
es convexo o c´oncavo si y s´olo si ¨b(t) ≥ 0 o ¨b(t) ≤ 0. Su pol´ıgono de
B´ezier es convexo o c´oncavo si y s´olo si todas las diferencias satisfacen ∆2
bi ≥
0 o ∆2
bi ≤ 0.
3.9 El polinomio sim´etrico de la derivada
Las derivadas de una curva polin´omica b(u) pueden escribirse en t´erminos
de su forma polar b[u1 . . . un]. De 2.6 o simplemente derivando el polinomio
sim´etrico se obtiene
b′
(u) =
n
b − a
(b[b u . . . u] − b[a u . . . u]) ,
y usando la multiafinidad resulta
b′
(u) = n(b[1u . . . u] − b[0 u . . . u]) .
Verificando las tres propiedades que caracterizan la forma polar de b(u)
encontramos que el polinomio multiaf´ın sim´etrico de b′
(u) est´a dado por
b′
[u2 . . . un] = n(b[1 u2 . . . un] − b[0 u2 . . . un]) .
36 3. T´ecnicas de B´ezier
En particular, el polinomio sim´etrico b[u1u2 . . . un] de la curva inicial b(u)
es una aplicaci´on af´ın en u1, si fijamos u2, . . . , un. Por lo tanto
b[δ u2 . . . un] = b[b u2 . . . un] − b[a u2 . . . un]
representa la aplicaci´on lineal subyacente, donde δ = b − a. En aras de
claridad en la presentaci´on, denotamos las diferencias de par´ametros afines,
o sea vectores, por medio de letras griegas. En particular usamos la notaci´on
ε = 1 − 0. Entonces la derivada puede escribirse
b′
(u) = n b[ε u . . . u] .
Iterando el proceso de derivaci´on obtenemos el polinomio sim´etrico de la
r-´esima derivada de b(u)
b(r)
[ur+1 . . . un] =
n!
(n − r)!
b[ε r. . . ε ur+1 . . . un] ,
donde
b[ε r. . . ε ur+1 . . . un] = b[ε r−1. . . ε 1 ur+1 . . . un] − b[ε r−1. . . ε 0 ur+1 . . . un] .
Observaci´on 9: Como b[u1 . . . un] es af´ın en cada variable, entonces la
primera derivada est´a dada por
∂
∂u1
b[u1 . . . un] = b[1 u2 . . . un] − b[0 u2 . . . un]
= b[ε u2 . . . un]
= 1
n b′
[u2 . . . un] .
Entonces se tiene
∂r
∂u1 . . . ∂ur
b[u1 . . . un] =
(n − r)!
n!
b(r)
[ur+1 . . . un] .
3.10 Conexiones Cr
simples
La subdivisi´on es tambi´en una t´ecnica ´util para describir cuando dos cur-
vas b(u) y c(u) dadas por los pol´ıgonos de control b0, . . . , bn sobre [a, b] y
c0, . . . , cn sobre [b, c] se conectan diferenciablemente.
De 2.4 se desprende que las derivadas hasta orden r en u = b determinan y son
determinadas por los puntos de B´ezier bn−r, . . . , bn sobre [a, b] y c0, . . . , cr
sobre [b, c]. Entonces obtenemos el teorema de St¨ark [St¨ark ’76].
3.10. Conexiones Cr
simples 37
Las derivadas de b y c en u = b son iguales hasta orden r, si
c0, . . . , cr son los primeros r + 1 puntos de B´ezier de b sobre
[b, c]. Esto significa que
b[b n−i. . . b c i. . . c] = ci para i = 0, . . . , r .
Usando 3.2, el Teorema de St¨ark, se puede rescribir
Las derivadas de las curvas b y c son iguales hasta orden r en
u = b si y s´olo si los polinomios b[b n−r. . . b u r. . . u] y c[b n−r. . .
b u r. . . u] son iguales.
El polinomio b[b n−r. . . b u r. . . u] tiene el pol´ıgono de B´ezier compuesto
bn−r, . . . , bn, ci, . . . , cr. Los puntos ci, i ≤ r se pueden calcular a partir
de los bn−i aplicando el algoritmo de de Casteljau.
Las Figuras 3.8 y 3.9 ilustran conexiones Cr
simples obtenidas a trav´es de la
construcci´on de St¨ark. El lado izquierdo de la Figura 3.9 representa un
A-marco.
Figura 3.8: Conexiones simples C0
y C1
.
Figura 3.9: Conexiones simples C2
y C3
.
38 3. T´ecnicas de B´ezier
Observaci´on 10: Como dos polinomios son iguales si y s´olo si sus formas
polares son iguales, se tiene que las derivadas hasta orden r de b(u) y c(u)
son iguales en u = b si y s´olo si sus formas polares satisfacen
b[b n−r. . . b u1 . . . ur] = c[b n−r. . . b u1 . . . ur]
para valores arbitrarios de las variables u1, . . . , ur.
3.11 Elevaci´on de grado
Para cualquier curva de grado n y todo m ≥ n, existe una representaci´on de
B´ezier de grado m para la curva.
La conversi´on a una representaci´on de grado mayor se utiliza en ciertas con-
strucciones con superficies y a veces se requiere para el intercambio de datos
entre diferentes sistemas de CAD. Esta conversi´on de denomina elevaci´on
de grado.
Dada una representaci´on de B´ezier de grado n de una curva, b(u)
b(u) = biBn
i (t)
mostraremos como elevar el grado de esta presentaci´on en uno. Esto es,
escribiremos b(u) en t´erminos de polinomios Bn+1
i (t), para lo que utilizamos
el polinomio sim´etrico b[u1 . . . un] de b(u).
Denotamos con un asterisco la ausencia del t´ermino indicado en una secuencia
y definimos:
(2) c[u0 . . . un] =
1
n + 1
n
i=0
b[u0 . . . u∗
i . . . un] .
Es f´acil verificar que este polinomio en n+1 variables es multiaf´ın, sim´etrico y
que coincide con b(u) sobre la diagonal. Entonces por el teorema fundamental
en 3.2 se tiene que
ci = c[a n+1−i. . . a b i. . . b]
= i
n+1 b[a n+1−i. . . a b i−1. . . b] + n+1−i
n+1 b[a n−i. . . a b i. . . b]
= i
n+1 bi−1 + n+1−i
n+1 bi
son los puntos de B´ezier de b(u) sobre [a, b] en su representaci´on de grado
n + 1. La Figura 3.10 ilustra la construcci´on para n = 3.
Observaci´on 11: La aproximaci´on de un polinomio de grado exactamente
m con un polinomio de grado n  m se denomina reducci´on de grado,
v´ease por ejemplo [Eck ’93, Eck ’95, Lutterkort et al ’99].
3.12. Convergencia por elevaci´on de grado 39
Figura 3.10: Elevaci´on de grado.
3.12 Convergencia por elevaci´on de grado
El proceso de elevaci´on de grado se puede repetir hasta obtener una repre-
sentaci´on de grado tan alto como se quiera
b(t) =
m
k=0
dkBm
k (t) , m  n .
La expresi´on simple, dada por Zhou, para los dk,
dk =
n
i=0
biβik ,
donde
βik =
n
i
m − n
k − i
/
m
k
se denomina distribuci´on polihipergeom´etrica en la teor´ıa de probabili-
dades. La construcci´on de la representaci´on de grado m es como sigue:
b(t) =
n
i=0
biBn
i (t)(1 − t + t)m−n
=
n
i=0
m−n
j=0
bi
n
i
m − n
j
ti+j
(1 − t)m−i−j
=
m
k=0
n
i=0
biβik Bm
k (t) , donde k = i + j ,
vea [Farin ’86, de Boor ’87].
An´alogamente a la propiedad de convergencia por subdivisi´on, el pol´ıgono de
B´ezier de la representaci´on de grado m de b(t) converge a b[0, 1] , cuando
40 3. T´ecnicas de B´ezier
m tiende a ∞, vea [Farin ’79, Trump  Prautzsch ’96]. Rescribiendo βik,
obtenemos:
βik =
n
i
i−1
α=0
k − α
m − α
n−1
α=i
m − k + i − α
m − α
=
n
i
(k/m)
i
(1 − k/m)
n−i
+ O(1/m)
= Bn
i (k/m) + O(1/m) .
Sustituyendo en la ecuaci´on de los dk se obtiene
m
max
k=0
dk − b(k/m) = O(1/m) ,
vea tambi´en 11.8
Una prueba diferente, m´as general, de este hecho se puede encontrar en 6.6
para splines. Vea el Ejercicio 6 de 6.9 para una construcci´on eficiente de los
dk.
3.13 Ejercicios
1 Considere los desplazamientos uniformes Ôi(x) = Ô(x − ih) de una curva
polin´omica de grado exactamente n. Demuestre que la curva ∆k
Ôi(x)
tiene grado exactamente n − k.
2 Demuestre que el operador de Bernstein
B[f](u) =
n
i=0
f(ih)Bn
i (t) , u = nh · t ,
tiene orden de aproximaci´on 2, es decir, si f es dos veces diferenciable,
entonces
max
u∈[0,nh]
B[f](u) − f(u) = O(h2
) .
3 Sean b0, . . . , bn los puntos de B´ezier sobre el intervalo [a, b] y sean c0, . . . , cn
los puntos de B´ezier de la misma curva sobre el subintervalo [c, c + h] de
[a, b]. Demuestre que
max
i=0,...,n−k
∆k
ci ≤
h
b − a
k
max
i=0,...,n−k
∆k
bi ,
donde · denota el supremo, la norma de la suma o la norma Eucl´ıdea.
3.13. Ejercicios 41
4 Sea b una curva polin´omica. Pruebe que la longitud de arco de su
pol´ıgono de B´ezier compuesto sobre [0, 1
m , 2
m , . . . , 1] converge cuadr´atica-
mente en 1/m a la longitud de arco
1
0
˙b(t) 2 dt de b[0, 1]. Vea tambi´en
[Kobbelt  Prautzsch ’95, Gravesen ’97].
5 Verifique que la longitud de arco de los pol´ıgonos de B´ezier de las repre-
sentaciones de grado m, construidos por elevaci´on de grado de b, converge
linealmente en 1/m a la longitud de arco de b[0, 1].
6 Dise˜ne un algoritmo que encuentre las autointersecciones de una curva de
B´ezier plana. Si una curva se interseca a s´ı misma, ¿qu´e se puede decir
del hod´ografo?
7 Encuentre dos c´ubicas definidas sobre [0, 1] tales que las curvas y tambi´en
sus pol´ıgonos de B´ezier tengan 9 intersecciones.
8 Encuentre dos c´ubicas sobre [0, 1] que tengan extremos comunes y que se
intersecten en m´as puntos que sus pol´ıgonos de B´ezier.
9 Describa un algoritmo que verifique si dos cajas con lados paralelos a los
ejes coordenadas se intersecan.
10 Considere una curva b que interseca o toca cualquier hiperplano en un
punto o a lo largo de un segmento. Demuestre que b yace en un sub-
espacio m-dimensional.
11 Demuestre que el pol´ıgono de B´ezier de grado m de b(x) = x4
sobre
[−1, 1] es no convexo para todo m ≥ 4.
12 Considere la representaci´on de B´ezier de grado m de una curva polin´omica
de grado n, b(t) =
m
i=0 biBm
i (t). Demuestre que existe un polinomio p
de grado n tal que p(i/m) = bi.
13 Verifique que b(t) = [t2
t]t
y b(t2
) recorren el mismo segmento de curva
sobre [0, 1] pero tienen diferentes pol´ıgonos de B´ezier de grado 4.
14 Use los polinomios sim´etricos para probar la f´ormula de elevaci´on de
grado de 3.12:
dk =
n
i=0
biβik .
Volltext algebra superior
4 Interpolaci´on y aproximaci´on
4.1 Interpolaci´on — 4.2 Interpolaci´on de Lagrange — 4.3 Interpolaci´on de
Newton — 4.4 Interpolaci´on de Hermite — 4.5 Interpolaci´on de Hermite c´ubica
por trozos — 4.6 Aproximaci´on — 4.7 Ajuste por m´ınimos cuadrados —
4.8 Mejoras en el par´ametro — 4.9 Ejercicios
En modelaci´on geom´etrica, as´ı como tambi´en en otras aplicaciones, con fre-
cuencia hay que encontrar expresiones anal´ıticas, usualmente de curvas de las
cuales no se conoce una descripci´on matem´atica o ´esta es muy complicada.
En este caso se mide o se eval´ua la curva en un conjunto de puntos y se
construye una aproximaci´on o interpolaci´on. Este cap´ıtulo describe algunas
de las t´ecnicas b´asicas.
4.1 Interpolaci´on
Un conjunto de n funciones C1(u), . . . , Cn(u) se dice linealmente indepen-
diente sobre los valores u1, . . . , un si la matriz
C =



C1(u1) · · · Cn(u1)
...
...
C1(un) · · · Cn(un)



es no-singular. En tal caso, para cualesquiera n puntos p1, . . . , pn ∈ IRd
existe una ´unica curva
p(u) =
n
i=1
xiCi(u)
que interpola los puntos pi en los ui, i.e.,
p(ui) = pi , i = 1, . . . , n .
44 4. Interpolaci´on y aproximaci´on
Para verificarlo escribimos las condiciones de interpolaci´on en forma matricial



C1(u1) . . . Cn(u1)
...
...
C1(un) . . . Cn(un)






xt
1
...
xt
n


 =



pt
1
...
pt
n



o en forma abreviada
CX = P
lo que representa d sistemas de ecuaciones lineales simult´aneas para las d
columnas de X. La existencia de la soluci´on se desprende de la independencia
de C1, . . . , Cn sobre u1, . . . , un. 3
Figura 4.1: Curva interpolante
Observaci´on 1: Si los Ci son polinomios de grado n − 1, la matriz C
es invertible para cualesquiera n valores distintos u1, . . . , un. De hecho, el
sistema Cx = o (para una sola columna x) tiene solamente la soluci´on trivial
x = o pues el polinomio cero es el ´unico polinomio de grado n − 1 con n
raices.
Observaci´on 2: Dos puntos pueden interpolarse con una recta, tres con una
par´abola, cuatro con una c´ubica, etc.
4.2 Interpolaci´on de Lagrange
Un m´etodo simple para construir una interpolaci´on polin´omica fue propuesto
por Lagrange. Dados n + 1 puntos pi con sus correspondientes valores
param´etricos ui, i = 0, . . . , n, de acuerdo con la Observaci´on 1 existe una
´unica curva polin´omica p de grado n que interpola dichos puntos. Dicha
curva puede escribirse como
p(u) =
n
i=0
piLn
i (u) ,
donde los polinomios de Lagrange Ln
i (u) se definen como
Ln
i (uk) =
1
0
seg´un
k = i
k = i
.
4.2. Interpolaci´on de Lagrange 45
Figura 4.2: Polinomio de Lagrange de grado 3.
La Figura 4.2 muestra un ejemplo.
Claramente, se tiene
Ln
i =
n
j=0, j=i(u − uj)
n
j=0, j=i(ui − uj)
.
Existen diferentes maneras para evaluar los polinomios de Lagrange. Una
posibilidad consiste en usar la siguiente relaci´on de recurrencia: primero ob-
serve que los polinomios de Lagrange suman uno,
n
i=0
Ln
i (u) ≡ 1 .
Entonces por definici´on
(1) Lk
i =
Lk−1
i αik si i = 0, . . . , k − 1
1 −
k−1
j=0 Lk
j =
k−1
j=0 Lk−1
j (1 − αjk) si i = k ,
donde αik representa el par´ametro local en [uk, ui],
αik =
u − uk
ui − uk
.
Como en el algoritmo de de Casteljau en 2.3, mediante esta relaci´on de re-
currencia se obtiene un m´etodo iterativo para evaluar p(u) a partir de los
puntos p0
i = pi tomando combinaciones afines.
p(u) =
n
i=0
p0
i Ln
i (u)
=
n−1
i=0
p1
i Ln−1
i (u)
...
=
0
i=0
pn
i L0
i (u) = pn
0 ,
46 4. Interpolaci´on y aproximaci´on
donde
pk+1
i = pk
i αi,n−k + pk
n−k(1 − αi,n−k) .
Esta forma de calcular p(u) se denomina el algoritmo de Aitken. N´otese
que los polinomios pk
i = pk
i (u) tienen grado k e interpolan los puntos pi y
pn, . . . , pn−k+1.
Observaci´on 3: La evaluaci´on de los polinomios de Lagrange, por el m´etodo
anterior, puede organizarse mediante el siguiente esquema triangular:
1 = L0
0 L1
0 L2
0 · · · Ln
0
L1
1 L2
1 · · · Ln
1
L2
2 · · · Ln
2
...
...
Ln
n .
Observaci´on 4: Similarmente se puede organizar tambi´en el c´alculo de los
pk
i por medio de un esquema triangular an´alogo
p0
0
p0
1 p1
0
p0
2 p1
1 p2
0
...
...
p0
n p1
n−1 p2
n−2 · · · pn
0 .
En l´ıneas generales la interpolaci´on de Lagrange tiene inter´es te´orico pues en
la pr´actica muchas veces no produce los resultados que espera el dise˜nador.
4.3 Interpolaci´on de Newton
Otra base del espacio vectorial de polinomios de grado menor o igual que
n, ´util para la contrucci´on de curvas polin´omicas de interpolaci´on en valores
prescritos del par´ametro u0, u1, ..., un, fu´e introducida por Newton. Considere
los n + 1 polinomios m´onicos Pi(u) donde Pi tiene grado i y se anula en las
primeras i abscisas u0, . . . , ui−1. Esto es:
P0 = 1 y para i ≥ 1 Pi(u) = (u − u0) · · · (u − ui−1) .
4.3. Interpolaci´on de Newton 47
Si [u0 . . . ui]q denota al coeficiente dominante, correspondiente al t´ermino de
mayor grado, del polinomio de grado i que interpola una curva dada q = q(u)
en los puntos u0, . . . , ui, entonces la curva p(u) de grado ≤ n que interpola
q(u) en u0, . . . , un puede escribirse como
p(u) =
n
i=0
[u0 . . . ui]q · Pi(u) .
De la definici´on de los polinomios de Lagrange se desprende que el coeficiente
dominante es de la forma
[u0 . . . un]q =
n
k=0
q(uk)
(uk − u0) · · · (uk − uk)∗ · · · (uk − un)
,
donde el asterisco (*) denota que se omite el t´ermino correspondiente. Usando
esta representaci´on expl´ıcita es f´acil de verificar la relaci´on de recurrencia
[u0 . . . un]q =
[u1 . . . un]q − [u0 . . . un−1]q
un − u0
...
[ui uj]q =
[uj]q − [ui]q
uj − ui
[uj]q = q(uj) .
En vista de esta recursi´on la expresi´on [u0 . . . ui]q se denomina la i-´esima
diferencia dividida de q(u) en u0, . . . , ui. N´otese que las diferencias divi-
didas son sim´etricas con respecto a sus nodos u0, . . . , un.
Observaci´on 5: Si q(u) es suficientemente diferenciable entonces la difer-
encia dividida [u0 . . . un]q depende continuamente de las abscisas ui, v´ease
los Ejercicios 1 y 2. Por lo tanto [u0 . . . un]q tambi´en est´a definida cuando
uno o varios ui coinciden, como funci´on de las derivadas en ui.
[ui
n+1. . . ui]q = q(n)
(ui)/n! .
Observaci´on 6: Supongamos que u0 = · · · = uk, entonces se desprende de
la Observaci´on 5 que
p(u) =
n
j=0
[u0 . . . uj]q · Pj(u)
interpola todas las derivadas hasta orden k de q(u) en u = u0. Como p(u) no
depende del orden de las abscisas ui, tambi´en interpola las derivadas qr
(ui),
donde ui = . . . = ui+r.
Observaci´on 7: Si los valores ui est´an uniformemente distribuidos, ui =
u0 + ih, entonces se tiene
[u0 . . . un]q =
1
n! hn
∆n
q(u0) .
48 4. Interpolaci´on y aproximaci´on
La principal ventaja de la represetnaci´on de Newton es la permanenecia de las
funciones base obtenidas. A diferencia de la interpolaci´on de Lagrange, si se
a˜naden sucesivos puntos de interpolaci´on, no hay que modificar las anteriores
funciones base.
4.4 Interpolaci´on de Hermite
De la Observaci´on 6 de 4.3 se desprende que la curva
p(u) =
n
i=0
[u0 . . . ui]q · Pi
interpola los puntos Pi y si las abscisas ui coinciden entonces tambi´en inter-
pola las derivadas de q. Esta construcci´on se denomina interpolaci´on de
Hermite. En particular, un caso muy frecuente es la interpolaci´on hasta
un cierto orden k en los extremos de un intervalo [a, b]. El interpolador de
Hermite correspondiente es de grado n = 2k + 1 y se puede escribir como
p(u) =
k
i=0
q(i)
a Hn
i +
k
i=0
q
(i)
b Hn
n−i ,
donde q
(i)
u denota la i-´esima derivada de q en u y los polinomios de Her-
mite Hn
i de grado n est´an definidos por
dr
dur
Hn
i (a) =
dr
dur
Hn
n−i(b) =
1 si i = r
0 si i = r
, r = 0, . . . , k .
La Figura 4.3 muestra el interpolador de Hermite de grado tres y los cuatro
polinomios de Hermite correspondientes.
Alternativamente, el interpolador se puede describir en su representaci´on de
B´ezier. Se desprende de 2.8 que los puntos de control bj sobre [a, b] est´an
dados por
bj =
j
i=0
j
i
(b − a)i
n · · · (n − i + 1)
q(i)
a
y
bn−j =
j
i=0
j
i
(a − b)i
n · · · (n − i + 1)
q
(i)
b ,
4.4. Interpolaci´on de Hermite 49
Figura 4.3: Interpolaci´on c´ubica de Hermite
es decir, para j = 0, . . . , (n − 1)/2, se tiene
b0 = qa
b1 = qa +
b − a
n
q′
a
b2 = qa +
b − a
n
(2q′a +
b − a
n − 1
q′′a)
...
bn = qb .
Observaci´on 8: En vez de interpolar q′′
a y q′′
b se podr´ıa interpolar las cur-
vaturas en a y b. La curvatura en el punto a est´a dada por
xa =
n − 1
n
∆b0 × ∆2
b0
∆b0
3
,
donde × denota el producto vectorial.
Si, adem´as de posici´on y derivadas se interpolan curvaturas en vez de derivadas
segundas, aparecen 2 grados extras de libertad en la interpolaci´on de Hermite
de grado n = 5. Los puntos de B´ezier b2 y b3 se pueden mover paralelamente
a las l´ıneas b0b1 y b5b4, respectivamente, sin modificar la curvatura de los
extremos. Es decir, el interpolador no es ´unico.
50 4. Interpolaci´on y aproximaci´on
4.5 Interpolaci´on de Hermite c´ubica por trozos
Una funci´on f(u) se puede aproximar por un polinomio p de grado n inter-
polando f en n + 1 abscisas u0  · · ·  un. Un resultado cl´asico de an´alisis
num´erico establece que la diferencia entre p y f en [u0, un] se puede expresar
como
p(u) − f(u) =
f(n+1)
(v)
(n + 1)!
(u − u0) · · · (u − un) ,
donde v = v(u) est´a en [u0, un]. Por lo tanto usualmente el error se hace
peque˜no cuando las diferencias entre las abscisas decrecen. Sin embargo un
interpolador de grado m´as alto de la funci´on f(u) no necesariamente resulta
en una mejor aproximaci´on de esta funci´on. Por esta raz´on es com´un el uso
de funciones polinomicas a trozos de reducudo grado.
Por ejemplo, las c´ubicas son usadas con mucha frecuencia debido a que tienen
grado bajo y a que permiten suficiente flexibilidad para muchas aplicaciones.
A continuaci´on describiremos la interpolaci´on de Hermite con polinomios
c´ubicos a trozos.
Dados m puntos p1, . . . , pm y derivadas d1, . . . , dm correspondientes a valores
del par´ametro u1  · · ·  um, entonces existe una ´unica c´ubica por trozos,
continuamente diferenciable s(u) sobre [u1, um] tal que
s(ui) = pi , y s′
(ui) = di .
Su representaci´on se obtiene de 4.4, y est´a dada por
s(u) =
3
j=0
b3i+jB3
j (ti) , u ∈ [ui, ui+1] ,
donde ti = (u − ui)/(ui+1 − ui) representa el par´ametro local sobre [ui, ui+1]
para i = 1, . . . , m − 1, y
b3i = pi
b3i+1 = pi + di∆ui/3
b3i+2 = pi+1 − di+1∆ui/3 .
La Figura 4.4 ilustra esta situaci´on.
Frecuentemente las derivadas di no est´an dadas directamente, sino que deben
ser estimadas a partir de los datos. Una forma elemental para asignar valores
a los di es calculando las derivadas del interpolador cuadr´atico determinado
por tres puntos consecutivos, como se ilustra en la Figura 4.5.
4.5. Interpolaci´on de Hermite c´ubica por trozos 51
Figura 4.4: Pol´ıgono de B´ezier compuesto
Figura 4.5: Obtenci´on de las derivadas a partir de par´abolas.
Esto significa
di = (1 − αi)
∆pi−1
∆ui−1
+ αi
∆pi
∆ui
, para i = 1, . . . , m − 1 ,
donde
αi =
∆ui−1
∆ui−1 + ∆ui
.
En los puntos extremos estas estimaciones se ajustan a:
d0 = 2
∆p0
∆u0
− d1 , dm = 2
∆pm−1
∆um−1
− dm−1 .
A menudo tambi´en se tienen que determinar las abscisas ui de la interpo-
laci´on. Algunas de las posibles opciones son:
la parametrizaci´on equidistante, donde
∆ui = constante ,
52 4. Interpolaci´on y aproximaci´on
la parametrizaci´on seg´un la longitud de las cuerdas , donde
∆ui = ∆pi ,
y la parametrizaci´on centr´ıpeta [Lee ’89], donde
∆ui = ∆pi .
Estos y otros m´etodos se discuten exhaustivamente en [Foley  Nielson ’89,
Farin ’02, Hoschek  Lasser ’92].
Observaci´on 9: Un proceso de interpolaci´on con abscisas ui prescritas se
denomina lineal si los puntos de B´ezier b0, b1, . . . , b3m dependen linealmente
de los puntos p0, . . . , pm. Esto es, un esquema de interpolaci´on lineal
est´a definido por una matriz S, de dimensi´on m+1 × 3m+1 que no depende
de los pi y satisface
[b0 . . . b3m] = [p0 . . . pm]S .
Note que el esquema de interpolaci´on anterior, donde las derivadas di se
obtienen a partir de polinomios cuadr´aticos, es lineal.
4.6 Aproximaci´on
En general, dado un conjunto de funciones base C1, . . . , Cn no existe una
curva
p(u) =
n
i=1
xiCi(u)
que interpole m´as de m puntos p1, . . . , pm, m  n, en valores prescritos
de los par´ametros u1, . . . , um. En este ´ultimo caso se puede construir un
aproximante p(u), usualmente bajo la condici´on que las diferencias
p(ui) − pi = ri
se hagan peque˜nas en alg´un sentido.
Usando la notaci´on matricial, necesitamos minimizar






C1(u1) . . . Cn(u1)
...
...
C1(um) . . . Cn(um)









xt
1
...
xt
n


 −






pt
1
...
pt
m






=






rt
1
...
rt
m






o en forma m´as abreviada
CX − P = R = [rij] .
4.7. Ajustes por m´ınimos cuadrados 53
Hay varias posibles elecciones para la distancia que se va a utilizar para
minimizar R. Lo usual es minimizar la suma de los cuadrados
m
i=1
r2
i =
i,j
r2
ij = trazaRt
R = trazaRRt
.
Este es el m´etodo de Gauss de ajuste por m´ınimos cuadrados.
Una modificaci´on de este m´etodo consiste en minimizar una suma ponderada
w2
i r2
i = traza(WR)t
(WR) ,
donde
W =



w1
...
wm



es una matriz diagonal de pesos.
Ambos esquemas son lineales en el sentido de la secci´on siguiente. Otros
esquemas son m´as complicados. Por ejemplo se podr´ıa minimizar
max ri ∞ = max rij .
Esto nos conduce a un sistema lineal de desigualdades, el cual puede ser
resuelto usando el m´etodo simplex. Vea el Ejercicio 8.
Observaci´on 10: Es importante observar que para cualquier j, la j-´esima
columna de R, depende solamente de la j-´esima columna de X para todo j.
Por lo tanto la minimizaci´on de R utilizando cualquiera de las tres distancias
anteriores significa minimizar cada columna de R de manera independiente.
4.7 Ajustes por m´ınimos cuadrados
En esta secci´on veremos como encontrar un ajuste por m´ınimos cuadrados.
Es m´as, en esta secci´on el tratamiento ser´a m´as general, pues impondremos
una restricci´on adicional DX = Q sobre la soluci´on X. Esta restricci´on
t´ıpicamente fuerza al aproximante p(u) a interpolar ciertos puntos pi. Como
explicamos en la Observaci´on 10 de 4.6 es suficiente considerar una columna x
de X y las correspondientes columnas p, q, y r de P, Q, y R, respectivamente.
El siguiente teorema muestra como se puede calcular el residual m´ınimo:
r = Cx − p
bajo la restricci´on Dx = q:
54 4. Interpolaci´on y aproximaci´on
La suma de los cuadrados rt
r = r2
i es m´ınima para la soluci´on
x, y de
(2)
Ct
C
D
Dt
O
x
y
=
Ct
p
q
.
tal que Dx = q.
Demostraci´on: Sean x, y una soluci´on de (2) y supongamos que x + h
satisface la restricci´on
D[x + h] = q .
Esto implica Dh = o. Es m´as, si
¯r = C[x + h] − p
= r + Ch ,
entonces se tiene
¯rt
¯r = rt
r + 2rt
Ch + ht
Ct
Ch .
El ´ultimo sumando de la expresi´on anterior es no negativo y el segundo
t´ermino es cero, pues teniendo en cuenta (2)
ht
Ct
r = ht
Ct
[Cx − p] = −ht
Dt
y = 0 .
Por lo tanto rt
r es m´ınima. 3
Observaci´on 11: Si no hay restricciones i.e., D = 0 y Õ = Ó entonces el
sistema lineal (2) se reduce a las ecuaciones normales de Gauss
Ct
Cx = Ct
p .
Observaci´on 12: Si la matriz C es la identidad y si Dx = q es un sistema
subdeterminado entonces (2) consiste en las ecuaciones de correlaci´on
x = p − Dt
y .
y las ecuaciones normales
Dp − DDt
y = q ,
4.8. Mejoras en el par´ametro 55
las cuales se obtienen por sustituci´on de las ecuaciones de correlaci´on en la
expresi´on de las restricciones Dx = Úq.
Observaci´on 13: Sea W una matriz diagonal de pesos de dimensi´on m×m.
Entonces por el teorema anterior, el residual ponderado
Wr = WCx − Wp
se hace m´ınimo cuando Dx = q para la soluci´on x, y de la ecuaci´on
ponderada
(3)
Ct
W2
C
D
Dt
O
x
y
=
Ct
W2
p
q
.
4.8 Mejoras en el par´ametro
A menudo se puede mejorar la calidad de una aproximaci´on si se escogen de
manera diferente los nodos ui. Sea Ô(u) una curva que aproxima los puntos
Ôi en los valores ui de los par´ametros. Denotemos por vi los valores de los
par´ametros para los cuales Ô(u) est´a mas cerca de los Ôi. En general, ui y vi
son diferentes. Por lo tanto un ajuste por m´ınimos cuadrados con respecto
a los vi producir´a una curva que yace m´as cerca de los Ôi porque el nuevo
conjunto de curvas sobre el cual se minimiza tambi´en contiene la curva p(u).
Un m´etodo elemental para calcular aproximadamente los vi a partir de los ui
es el siguiente: linealizamos p(u), en ui. Esto es, calculamos la recta tangente
en ui y determinamos el punto m´as cercano a pi sobre esta recta tangente a
p en ui (Ver la Figura 4.6, izquierda). Esto significa encontrar ∆i tal que:
[p(ui) + ∆ip1
(ui) − pi]t
p′
(ui) = 0 ,
entonces se obtiene
∆i = [pi − p(ui)]t p′
(ui)
p′(ui) 2
2
.
Entonces ui + ∆i es una aproximaci´on de vi.
Otro m´etodo para estimar ∆i se basa en que la recta que pasa por pi y
p(ui + ∆i) sea perpendicular a la tangente en p(ui + ∆i), como se ilustra en
la Figura 4.6 (derecha). Esto se expresa por la condici´on:
f(∆i) = [p(ui + ∆i) − pi]t
p′
(ui + ∆i) = 0 .
56 4. Interpolaci´on y aproximaci´on
Figura 4.6: Mejora del par´ametro.
Usando el m´etodo de Newton, se obtiene
∆i ≈ −
f(0)
f′(0)
= −
[p(ui) − pi]t
p′
(ui)
p′(ui) · p′(ui) + [p(ui) − pi]t p′′(ui)
.
Se podr´ıa tambi´en iterar directamente estos dos procesos para obtener mejores
aproximaciones de los vi, pero lo usual es que antes de cada iteraci´on se cal-
cule una nueva curva de aproximaci´on usando los valores calculados ui + ∆i.
4.9 Ejercicios
1 Use inducci´on sobre n para probar la f´ormula de Hermite-Genocchi
para diferencias divididas [de Boor ’84]
[u0 . . . un]q =
0≤xn≤···≤x1≤1
q(n)
(u0+(u1−u0)x1+· · ·+(un−un−1)xn)dx .
2 Deduzca de la f´ormula de Hermite-Genocchi que
lim
u0,...,un→u
[u0 . . . un]q = q(n)
(u)/n! .
3 Escriba los polinomios de Hermite de grado 5, H5
0 , . . . , H5
5 . Encuentre
sus puntos de B´ezier.
4 Para cualesquiera tres puntos b0, b1, c calcule el punto b2 sobre la recta
b1c tal que los puntos de B´ezier b0, b1, b2 definan una curva cuadr´atica
b(t) con curvatura prescrita κ0 = ˙b × ¨b / ˙b 3
en b0.
5 Calcule y dibuje el polinomio que interpola la funci´on error de Gauss
exp(−t2
/2) en t = −7, −5, −3, . . . , 7 .
4.9. Ejercicios 57
6 Calcule y dibuje una c´ubica por trozos C1
que interpole exp(−t2
/2) y
sus derivadas en t = −7, −1, +1, +7.
7 Eval´ue el interpolador del Ejercicio 6 con el algoritmo de de Casteljau en
±6, ±4, ±2, 0.
8 Sea r = Cx − p. Demuestre que r ∞ = max |ri| es m´ınimo para la
soluci´on x, ρ del problema (de programaci´on lineal)
Cx − p − eρ ≤ 0
−Cx + p − eρ ≤ 0
ρ = min!
donde e = [1 . . . 1]t
, v´ease por ejemplo, [Boehm  Prautzsch ’93, 10.4].
Volltext algebra superior
5 Representaci´on por B-splines
5.1 Splines — 5.2 B-splines — 5.3 Una definici´on recursiva de B-splines —
5.4 El algoritmo de de Boor — 5.5 El teorema fundamental — 5.6 Derivadas
y suavidad — 5.7 Propiedades de los B-splines — 5.8 Conversi´on a la repre-
sentaci´on B-spline — 5.9 El algoritmo de de Boor extendido — 5.10 Conversi´on
entre las representaciones de de Boor y de B´ezier — 5.11 B-splines como dife-
rencias divididas — 5.12 Ejercicios
Los splines son curvas polin´omicas por trozos continuamente diferenciables
hasta un orden prescrito. El ejemplo m´as sencillo es el spline C0
, o sea, lineal
por trozos. Este spline es simplemente una poligonal en el plano o en el
espacio. Otro ejemplo son los splines c´ubicos C1
construidos en 4.5.
El nombre “spline” es una palabra en idioma ingl´es que significa “list´on
el´astico”. Estos listones eran usados por artesanos para crear curvas, que des-
criben superficies a construir, como cascos de barcos y fuselajes de aviones.
Constre˜nidos por pesos, estos listones el´asticos o splines asumen una forma
que minimiza su energ´ıa el´astica, propiedad que heredan en forma aproxi-
mada los splines matem´aticos C2
de grado tres.
La herramienta de los splines se desarrolla para solventar las limitaciones de
las curvas de B´ezier: falta de control local, la laboriosidad requerida para
imponer continuidad C2
y el hecho de que el n´umero de puntos de conrol de
una curva de B´ezier impone su grado.
5.1 Splines
Una curva s(u) se denomina un spline de grado n sobre la secuencia de
nodos a0, . . . , am, con ai ≤ ai+1 y ai  ai+n+1 para todos los posibles i, si
s(u) es n−r veces diferenciable en cada nodo de multiplicidad1
r y
s(u) es un polinomio de grado ≤ n sobre cada intervalo internodal
[ai, ai+1], para i = 0, . . . , m − 1.
1Un nodo ai+1 tiene multiplicidad r si ai  ai+1 = . . . = ai+r  ai+r+1.
60 5. Representaci´on por B-splines
N´otese que los nodos denotan valores del par´ametro donde la curva cambia
su expresi´on polin´omica.
Tambi´en es com´un referirse a un spline de grado n como spline de or-
den n + 1. Las Figuras 5.1 y 5.2 muestran ejemplos de splines sobre se-
cuencias de nodos simples (de multiplicidad uno), obtenidos a trav´es de la
construcci´on de St¨ark, vea las Figuras 3.8 y 3.9. Los puntos de B´ezier
internos y extremos se denotan por peque˜nos c´ırculos blancos y negros,
respectivamente.
Figura 5.1: Funciones spline de grado 1, 2 y 3.
5.2 B-splines
En analog´ıa a la representaci´on de B´ezier de curvas polin´omicas tambi´en es
conveniente expresar un spline s(u) como una combinaci´on af´ın de ciertos
puntos de control ci, esto es:
s(u) = ciNn
i (u)
donde los Nn
i (u) son funciones polin´omicas por trozos con soporte finito
(se anulan fuera de un intervalo finito) y satisfacen ciertas condiciones de
5.2. B-splines 61
Figura 5.2: Splines param´etricos de grado 1, 2, y 3.
continuidad. Shoenberg introdujo el nombre de B-splines para estas funciones
[Schoenberg ’67]. Sus pol´ıgonos de B´ezier se pueden obtener a trav´es de la
construcci´on de St¨ark.
La Figura 5.3 ilustra un B-spline C2
por trozos de grado tres. Note que el
teorema de St¨ark s´olo se requiere para las ordenadas. Las abscisas se obtienen
como en la Observaci´on 8 de 2.8.
Figura 5.3: Puntos de B´ezier del B-spline N3
0 (u).
Para grados m´as altos, esta construcci´on, aunque en principio posible, es m´as
complicada, v´ease [Prautzsch ’89]. Por lo tanto nosotros utilizaremos una
construcci´on alternativa, encontrada independientemente por de Boor y
62 5. Representaci´on por B-splines
Mansfield [de Boor ’72] en 1970 y Cox [Cox ’72] en 1971. Definimos los
B-splines en t´erminos de esta construcci´on y a partir de ella deduciremos
las relaciones y propiedades m´as importantes de los B-splines.
5.3 Una definici´on recursiva de los B-splines
Para introducir la relaci´on de recurrencia para definir los B-splines, consi-
deramos por simplicidad una secuencia (ai) doblemente infinita de nodos
simples tales que ai  ai+1 para todo i. Entonces los B-splines Nn
i se
definen a trav´es de la siguiente relaci´on de recurrecncia
N0
i (u) =
1 si u ∈ [ai, ai+1)
0 en caso contrario
Nn
i (u) = αn−1
i Nn−1
i (u) + (1 − αn−1
i+1 )Nn−1
i+1 (u),
donde
αn−1
i = (u − ai)/(ai+n − ai)
es el par´ametro local con respecto al soporte de Nn−1
i . La Figura 5.4 muestra
algunos B-splines de grado 0, 1 y 2.
Figura 5.4: Algunos B-splines de grado 0,1 y 2.
En el caso de nodos multiples los B-splines se definen por la misma recursi´on
teniendo en cuenta la convenci´on
Nr−1
i ≡ Nr−1
i /(ai+r − ai) = 0 si ai = ai+r .
La Figura 5.5 muestra algunos B-splines con nodos m´ultiples.
De la definici´on de B-splines se desprenden de forma inmediata las siguientes
propiedades
5.4. El algoritmo de de Boor 63
Figura 5.5: B-splines con nodos m´ultiples.
• Nn
i (u) es polin´omica a trozos y tiene grado n,
• Nn
i (u) es positiva sobre (ai, ai+n+1),
• Nn
i (u) = 0 fuera de [ai, ai+n+1],
• Nn
i (u) es continua por la derecha.
En las secciones 5.5 y 5.6 veremos que los B-splines son n−r veces continua-
mente diferenciables en los nodos de multiplicidad r y que un spline de grado
n se puede expresar como una combinaci´on lineal de los B-splines Nn
i . Esta
expresi´on es ´unica.
La desventaja del modelo B-spline frente al de B´ezier, aparte de la mayor
complejidad matem´atica, consiste en que las funciones base no admiten una
expresi´on expl´ıcita, y cambian al variar el vector de nodos. De hecho, muchos
programas de CAD, para procesar splines (dibujo, c´alculo de curvatura, inter-
secciones) transforman cada segmento al modelo de B´ezier y as´ı el procesado
resulta m´as eficiente.
Observaci´on 1: Para el caso particular a1 = . . . = an = 0 y an+1 =
. . . = a2n = 1, entonces la recursi´on anterior para Nn
0 , . . . , Nn
n coincide con
la recursi´on para los polinomios de Bernstein. Por lo tanto
Nn
i (u) = Bn
i (u) para i = 0, . . . , n y u ∈ [0, 1] .
Esto es, los B-splines son una generalizaci´on de los polinomios de Bernstein.
5.4 El algoritmo de de Boor
Considere la combinaci´on lineal
s(u) =
i
c0
i Nn
i (u)
64 5. Representaci´on por B-splines
de B-splines de grado n sobre una secuencia de nodos (ai). Sin p´erdida
de generalidad podemos suponer que la secuencia de nodos y la sumatoria
se extienden de −∞ a ∞. Por la forma de los soportes locales de los Nn
i
esta suma es siempre finita para cualquier u dado. Supongamos que u ∈
[an, an+1), entonces
s(u) =
n
i=0
c0
i Nn
i (u) .
Usando repetidamente la relaci´on de recurrecncia para B-splines y agrupando
t´erminos obtenemos:
s(u) =
n
i=1
c1
i Nn−1
i (u)
...
=
n
i=n
cn
i N0
i (u) = cn
n ,
donde los cr
i est´an dados por las combinaciones afines
cr
i = (1 − α)cr−1
i−1 + α cr−1
i , α = αn−r
i =
u − ai
ai+n+1−r − ai
.
Note que α∈[0, 1] pues u∈[an, an+1), y por tanto, las combinaciones afines
son convexas.
Este algoritmo fue desarrollado por de Boor en 1972 [de Boor ’72]. Los puntos
cr
i se pueden ordenar en el siguiente esquema triangular, donde la regla de
recursi´on es la anterior recursi´on af´ın.
c0
0
c0
1 c1
1
c0
2 c1
2 c2
2
...
...
c0
n c1
n c2
n · · · cn
n
regla
∗ ∗
∗
Z
Z~-
1−α
α
(α depende de la posici´on)
Una consecuencia importante del algoritmo de de Boor es que el spline s(u)
sobre un intervalo internodal (i.e. entre dos nodos consecutivos) es una com-
binaci´on convexa de n + 1 coeficientes consecutivos ci. Por lo tanto si los
ci representan puntos en un espacio af´ın, entonces s(u) tambi´en es un punto
del espacio af´ın. Por esta raz´on, los ci se denominan puntos de control de
s(u).
Es m´as, el spline yace en la c´apsula convexa de los puntos de control, lo cual
5.5. El teorema fundamental 65
implica que
n
i=0
1 · Nn
i (u) = 1 para u ∈ [an, an+1) ,
los B-splines forman una partici´on de la unidad. La Figura 5.6 ilustra la inter-
pretaci´on geom´etrica del algoritmo de de Boor dada por Gordon y Riesenfeld
en 1974, [Gordon  Riesenfeld ’74].
Figura 5.6: Combinaciones convexas del algoritmo de de Boor para n = 3.
Observaci´on 2: Para u ∈ IR, el algoritmo de de Boor aplicado a los pun-
tos c0
0, . . . , c0
n calcula el polinomio sn(u), el cual coincide con s(u) sobre el
intervalo internodal [an, an+1).
5.5 El teorema fundamental
Los polinomios sim´etricos nos permitir´an considerar el algoritmo de de Boor
en un contexto m´as amplio. Sea
s(u) =
i
ciNn
i (u)
un spline de grado n sobre los nodos ai, y sea si[u1 . . . un] la forma polar
que coincide sobre su diagonal con s(u) sobre [ai, ai+1). Entonces tenemos
una versi´on m´as general del teorema fundamental de 3.2:
66 5. Representaci´on por B-splines
Los puntos de control de s est´an dados por
ci = sj[ai+1 . . . ai+n] , i = j − n, . . . , j .
Para la demostraci´on considere
pr
i = sj[ai+1 . . . ai+n−r u r. . . u] ,
y
u = (1 − α)ai + αai+n−r+1 .
Entonces, como sj es multiaf´ın y sim´etrico se tiene que
pr
i = (1 − α)pr−1
i−1 + α pr−1
i , α = αn−r
i =
u − ai
ai+n−r+1 − ai
,
y en particular
p0
i = sj[ai+1 . . . ai+n] y pn
j = sj(u) .
Para u ∈ [aj, aj+1) esta construcci´on coincide con el algoritmo de de Boor y
puede utilizarse para calcular cualquier polinomio, sj[u . . . u] de grado n. Por
lo tanto, cualquier polinomio de grado n puede expresarse, sobre [aj, aj+1)
como una combinaci´on lineal de B-splines Nn
j−n(u), . . . , Nn
j (u). Contando
dimensiones se verifica que la expresi´on es ´unica, lo que prueba la aseveraci´on.
3
Figura 5.7: El teorema fundamental para un spline c´ubico .
Observaci´on 3: En la demostraci´on se verific´o que los B-splines Nn
0 (u), . . . ,
Nn
n (u) forman una base para el espacio vectorial de todos los polinomios de
grado menor o igual que n. Este resultado es de [Curry  Schoenberg ’66].
Observaci´on 4: El “segmento” si del spline determina los puntos de control
ci−n, . . . , ci. Rec´ıprocamente, todo punto cj est´a determinado por cualquiera
de los “segmentos” sj, . . . , sj+n, esto es, se tiene
ci = si[ai+1 . . . ai+n] = · · · = si+n[ai+1 . . . ai+n] .
5.6. Derivadas y suavidad 67
Observaci´on 5: La prueba anterior muestra que el polinomio sim´etrico
sn[u1 . . . un] se puede calcular a trav´es de la versi´on m´as general del algoritmo
de de Boor. Es suficiente sustituir en la recursi´on α(u) por
α(ur) =
ur − ai
ai+n−r+1 − ai
.
Si m, de las n variables ui, . . . , un coinciden con nodos, entonces se requiere
s´olo n−m pasos recursivos para calcular sj[u1 . . . , un]. Este c´alculo se puede
organizar en un esquema triangular de 1 + 2 + . . . + (n − m + 1) puntos.
5.6 Derivadas y suavidad
Debido a que los B-splines forman una base, vea la Observaci´on 3, la derivada
de un segmento poli´nomico sn se puede escribir como
s′
n(u) =
n
i=1
diNn−1
i (u) , u ∈ [an, an+1) ,
donde los vectores di a determinar, se pueden expresar f´acilmente en
t´erminos de los ci. De hecho denotemos por s′
n[u2 . . . un] el polinomio
sim´etrico de s′
n(u) y sea ∆ = ai+n − ai la longitud del soporte del B-spline
Nn−1
i (u). Entonces se desprende del teorema fundamental y de 3.9 que
di = s′
n[ai+1 . . . ai+n−1]
=
n
∆
sn[∆ ai+1 . . . ai+n−1]
=
n
ai+n − ai
(ci − ci−1) .
Como los di no dependen del intervalo internodal [an, an+1), la derivada del
spline s evaluada en cualquier u ∈ IR se puede expresar como
(1) s′
(u) =
i
n
ai+n − ai
∇ciNn−1
i (u) ,
donde ∇ci = ci − ci−1 denota la primera diferencia hacia atr´as.
De manera similar se pueden obtener representaciones B-spline de derivadas
de s(u) de orden superior. Esto es tambi´en ´util para verificar las propiedades
de suavidad de los B-splines.
Observe primero que un spline s de grado n es continuo en cualquier nodo
de multiplicidad n. De hecho si a0  a1 = · · · = an  an+1, entonces la
68 5. Representaci´on por B-splines
Observaci´on 4 de 5.5 implica que
s0(a1) = s0[a1 . . . an] = c0
= sn[a1 . . . an]
= sn(an) .
Por lo tanto, si a1 es un nodo de multiplicidad r, entonces la derivada n − r
de s en a1 es continua. En otras palabras,
un B-spline satisface las propiedades de suavidad dadas en 5.1.
5.7 Propiedades de los B-splines
En esta secci´on resumimos las propiedades m´as importantes de los B-splines.
• Los B-splines de grado n definidos sobre una secuencia de nodos dada,
que no se anulan sobre un intervalo internodal, son linealmente
independientes sobre este intervalo.
• Contando dimensiones se verifica que los B-splines Nn
0 , . . . , Nn
m con
nodos a0, . . . , am+n+1 forman una base para todos los splines de grado
n con soporte en el intervalo [a0, am+n+1] y este conjunto de nodos.
• An´alogamente, los B-splines Nn
0 , . . . , Nn
m con nodos a0, . . . , am+n+1
restringidos al intervalo [an, am+1) forman una base para todos los
splines de grado n restringidos a este intervalo.
• Los B-splines forman una partici´on de la unidad,
m
i=0
Nn
i (u) = 1, para todo u ∈ [an, am+1) .
• Un segmento de spline s[an, am+1] de grado n con nodos extremos
de multiplicidad n
(a0 =)a1 = . . . = an y am+1 = . . . = am+n(= am+n+1)
tienen los mismos puntos extremos y rectas tangentes en esos puntos
que sus pol´ıgonos de control.
• Los nodos extremos a0 y am+n+1 no influyen sobre Nn
0 y Nn
m sobre
el intervalo [an, am+1].
• Los B-splines son positivos en el interior de su soporte
Nn
i (u)  0 para u ∈ (ai, ai+n+1) .
5.8. Conversi´on a la representaci´on B-spline 69
• Los B-splines tienen soporte compacto
suppNn
i = [ai, ai+n+1] .
• Los B-splines satisfacen la recursi´on de de Boor, Mansfield y Cox
donde αn−1
i = (u − ai)/(ai+n − ai) representa el par´ametro local sobre
el soporte de Nn−1
i .
• La derivada de un B-spline est´a dada por
d
du
Nn
i (u) =
n
ai+n − ai
Nn−1
i (u) −
n
ai+n+1 − ai+1
Nn−1
i+1 (u) .
• La representaci´on en t´erminos de B-splines de una curva spline es
invariante bajo aplicaciones afines.
• Un segmento sj[aj, aj+1] de un spline de grado n yace en la c´apsula
convexa de sus n + 1 puntos de control cj−n, ..., cj.
sj(u) =
j
i=j−n
ciNn
i (u) , u ∈ [aj, aj+1) ,
• Existe una f´ormula de elevaci´on de grado. Esta se presenta en 6.5.
La prpopiedad m´as importante desde el punto de vista pr´actico es la de
control local. Un punto de control s´olo interviene en los intervalos en que la
funci´on base asociada tiene soporte, o sea, en los intervalos en que el punto
aparece en el algoritmo de de Boor.
El vector de nodos con multiplicidd n en los nodos extremos, es muy im-
portante por ser pr´acticamente el ´unico empleado en los programas de CAD
comerciales, para curvas no cerradas. As´ı la curva en los puntos extremos
disfruta de las deseables propiedades del modelo de B´ezier: pasa por dichos
puntos, es tangente en ellos al pol´ıgono de control, la curvatura s´olo depende
de los tres puntos extremos, etc. Con este tipo de vector de nodos el B-spline
es una verdadera generalizaci´on intuitiva de las curvas de B´ezier. Y si no hay
nodos internos se tiene una curva de B´ezier. Vea la Observaci´on 1.
5.8 Conversi´on a la representaci´on B-spline
Dado que cualquier polinomio de grado n se puede considerar como un spline
de grado ≥ n sobre cualquier secuencia de nodos, en particular podemos
expresar los monomios como combinaciones lineales de B-splines sobre una
70 5. Representaci´on por B-splines
secuencia de nodos (ai) prefijada. Para esto recordemos de 3.1 que los
monomios An
j (u) = n
j uj
tienen forma polar
An
j [u1 . . . un] =
i ... k
ui
j
. . . uk .
Entonces resulta del teorema fundamental 5.5 que
An
j (u) =
i
αjiNn
i (u) ,
donde αji = An
j [ai+1 . . . ai+n], y en consecuencia
a(u) = a0An
0 (u) + · · · + anAn
n(u)
=
i
(a0α0i + · · · anαni)Nn
i (u) ,
lo cual generaliza la identidad de Marsden. Ver Ejercicio 4. En particular
para la funci´on identidad
u =
1
n
An
1 (u)
=
i
γiNn
i (u) ,
donde γi = α1i/n = (ai+1 + · · · + ai+n)/n. Los γi se denominan abscisas
de Greville [Greville ’67].
Observaci´on 6: Las abscisas de Greville aparecen de forma natural como
los puntos de control del gr´afico de una funci´on spline
s(u) =
i
ciNn
i .
De hecho, el gr´afico s(u) = [u s(u)]t
tiene puntos de control ci = [γi ci]t
. La
Figura 5.8 muestra un ejemplo, s(u) = N3
2 (u). Otros ejemplos se presentan
en la Figura 5.1.
5.9 El algoritmo de de Boor extendido
La expansi´on de Taylor de un polinomio sn(u) determinado por un segmento
de spline
sn(u) =
n
i=0
ciNn
i (u) , u ∈ [an, an+1) ,
puede calcularse para cualquier u ∈ IR, usando las ideas presentadas en 2.6
para curvas de B´ezier.
5.9. El algoritmo de de Boor extendido 71
Figura 5.8: Puntos de control del B-spline c´ubico N3
2 (u).
Sea sn[u1 . . . un] la forma polar de sn y considere los puntos y los vectores
cr,i,k = sn[ε r. . . ε ai+1 . . . ai+n−r−k u k. . . u]
donde ε denota la direcci´on 1 − 0, para i = r + k, . . . , n. Entonces se tiene
dr
dur
sn(u) =
n!
(n − r)!
cr,n,n−r
=
n!
(n − r)!
n
i=r
cr,i,0Nn−r
i (u)
y la expansi´on de Taylor
sn(u + h) =
n
r=0
cr,n,n−r
n
r
hr
.
Los puntos y vectores crik pueden organizarse en un esquema tetra´edrico
ilustrado en la Figura 5.9 para n = 2, donde ε4 significa sn[ε a4], etc.
Este esquema fu´e considerado por primera vez por Sablonniere en 1978
[Sablonniere ’78] y consta de n+2
3 subtetraedros que contienen los puntos
de control dados ci = c0,i,0 en la arista “izquierda” y los multiplos
(n − r)!
n!
s(r)
n (u)
de las derivadas en el lado opuesto.
Cualesquiera dos puntos de los cuatro de un subtetraedro pueden calcularse
a partir de los otros dos. Las reglas para realizar estos c´alculos se desprenden
directamente de las propiedades de los polinomios sim´etricos multiafines. Por
ejemplo, en la cara “izquierda” se tiene
cr+1,i,k =
1
ai+n−r−k − ai
(cr,i,k − cr,i−1,k) ,
72 5. Representaci´on por B-splines
Figura 5.9: El algoritmo de de Boor extendido.
en la cara de “atr´as”
cr,i,k+1 = (1 − α)cr,i−1,k + α cr,i,k , α =
u − ai
ai+n−r−k − ai
,
en la cara de “abajo”
(2) cr,i,k = cr,i,k+1 + (ai+n−r−k − u)cr+1,i,k ,
y en la cara de la “derecha”
(3) cr,i−1,k = cr,i,k+1 + (ai − u)cr+1,i,k .
Observaci´on 7: Las f´ormulas anteriores se pueden usar para ir de la repre-
sentaci´on B-spline a la forma monomial y viceversa.
Observaci´on 8: Para obtener las derivadas a partir de los puntos de control
o viceversa es suficiente conocer solamente las caras izquierda y derecha del
arreglo tetra´edrico, [Lee ’82, Boehm ’84b].
Observaci´on 9: Si se calcula primero la cara de atr´as y luego la cara de
abajo (o arriba) del tetraedro, es necesario usar la f´ormula (2)(o (3)) para
determinar cr+1,i,k (o cr,i−1,k). Sin embargo, esto es imposible si
u = ai+n−r−k (o u = a1). Por lo tanto las derivadas del polinomio sn
no se pueden calcular de esta manera para u = an+1, . . . , a2n (o u =
a0, . . . , an−1).
5.10 Conversi´on entre las representaciones de
de Boor y de B´ezier
Tambi´en existe un algoritmo tetra´edrico para convertir la representaci´on
B-spline en la representaci´on de B´ezier y viceversa [Boehm ’77, Sablonniere ’78].
5.10. Conversi´on entre las representaciones de de Boor y de B´ezier 73
Este se puede derivar de manera similar al algoritmo de 5.9. Sea la notaci´on
como en 5.9 y
qrik = sn[a r. . . a ai+1 . . . ai+n−r−k b k. . . b]
para i = r + k, . . . , n. Entonces los puntos de control del spline est´an dados
por
ci = q0,i,0
y los puntos de B´ezier del polinomio sn sobre [a, b] estan dados
bj = qn−j,n,j .
Como antes, los puntos qrik se pueden organizar en un esquema teatr´edrico
tal como se ilustra en la Figura 5.10 para n = 2, donde a3, ab, etc. denotan
q1,2,0, q1,0,1, etc.
Figura 5.10: Conversi´on entre las representaciones de B´ezier y de de Boor.
Aqu´ı la cara izquierda se calcula con la regla
qr+1,i,k = (1 − α)qr,i−1,k + α qr,i,k , α =
a − ai
ai+n−r−k − ai
,
y la cara de abajo por
qr,i,k+1 = (1 − γ)qr+1,i,k + γ qr,i,k , γ =
b − a
ai+n−r−k − a
.
Rec´ıprocamente, los puntos de control de la representaci´on B-spline se cal-
culan a partir de los de B´ezier de la siguiente manera. Primero despejamos
qr,i−1,k y qrik de las f´ormulas anteriores. Luego aplicamos las f´ormulas para
calcular los puntos de la cara de abajo y luego de la cara izquierda.
74 5. Representaci´on por B-splines
5.11 B-splines como diferencias divididas
La definici´on cl´asica de B-spline usa diferencias divididas, t´ecnica que ha
sido explotada sistem´aticamente para el desarrollo de la teor´ıa de los splines
de una variable [de Boor ’78]. En particular las diferencias divididas fueron
usadas por de Boor, Cox, y Mansfield en 1971 para obtener la relaci´on de
recurrencia que satisfacen los B-splines.
Usando la f´ormula de la derivada (1) de 5.6 mostraremos que los B-splines
son diferencias divididas de la funci´on potencial truncada:
f(a) = (a − u)n
+ :=
(a − u)n
si a  u
0 si a ≤ u
.
Vea la Figura 5.11. N´otese que f es una funci´on de a, u es un par´ametro fijo.
Figura 5.11: Funci´on potencial truncada.
Usando la notaci´on de las diferencias divididas dada en 4.3, se obtiene
el B-spline Nn
0 sobre los nodos a0, . . . , an+1 se puede escribir
Nn
0 (u) = (an+1 − a0)[a0 . . . an+1](a − u)n
+ .
Este hecho se puede probar por inducci´on sobre n. Para n = 0 la identi-
dad se verifica directamente. Para el paso inductivo, recordemos de 4.3 que
[a0 . . . an+1]f(a) es el coeficiente del t´ermino de mayor grado del polinomio
de grado (n + 1) que interpola f(a) en a0, . . . , an+1. Por lo tanto podemos
sustituir f(a) por la funci´on cero si u ≥ an+1 y por el monomio (a − n)n
de
grado n en a, si u  a0. Esto significa que nuestra identidad se verifica para
u  a0 y u ≥ an+1.
Entonces, es suficiente demostrar que se satisface la derivada de la identidad
de la tesis del teorema. N´otese que la diferencia dividida es una combinaci´on
lineal de la funci´on potencial y sus derivadas. Por lo tanto la anterior diferen-
cia dividida es diferenciable en todo u excepto en los nodos de multiplicidad
n + 1. Esto sin embargo no causa ning´un problema debido a que a lo sumo
existe un nodo de multiplicidad n + 1.
5.12. Ejercicios 75
Usando la definici´on recursiva de las diferencias divididas, la hip´otesis de
inducci´on y la f´ormula de la derivada para B-splines obtenemos
d
du
(an+1 − a0)[a0 . . . an+1](a − u)n
+
= −n(an+1 − a0)[a0 . . . an+1](a − u)n−1
+
= n([a0 . . . an](a − u)n−1
+ − [a1 . . . an+1](a − u)n−1
+ )
=
n
an − a0
Nn−1
0 −
n
an+1 − a1
Nn−1
1
=
d
du
Nn
0 (u) ,
lo cual prueba nuestra aseveraci´on. 3
5.12 Ejercicios
1 Considere un spline s(u) c´ubico C2
sobre la secuencia de nodos simples
a0, . . . , am. Muestre que cualquier funci´on C2
f(u) = s(u) que interpola
s en todos los nodos y la derivada en u = a0 y u = am tiene mayor
energ´ıa que s, es decir,
am
a0
|f′′
(u)|2
du 
am
a0
|s′′
(u)|2
du .
Para la soluci´on puede consultar cualquier libro de an´alisis num´erico, por
ejemplo [Boehm  Prautzsch ’93, p. 125f].
2 Dado un spline s(u) =
m
i=0 ciNn
i (u) sobre la secuencia de nodos
a0, . . . , am+n+1, muestre que
am+n+1
a0
s(u)du =
m
i=0
ai+n+1 − ai
n + 1
ci .
3 Bosqueje los B-splines c´ubicos sobre las siguientes secuencias de no-
dos: 0, 0, 0, 0, 1; 0, 0, 0, 1, 2; 0, 0, 1, 2, 3 y 0, 1, 2, 3, 4. Despliege sus
pol´ıgonos de B´ezier y calcule las ordenadas de los puntos de B´ezier.
4 Use polinomios sim´etricos para probar la identidad de Marsden
(u − a)n
=
i
(ai+1 − a) . . . (ai+n − a)Nn
i (u) .
5 Use la f´ormula para la derivada de un B-spline para deducir por inducci´on,
la f´ormula de recursi´on de de Boor, Mansfield y Cox.
76 5. Representaci´on por B-splines
6 Use la regla de Leibniz para el producto de dos funciones f = gh,
[ai . . . ai+k]f =
i+k
r=i
([ai . . . ar]g)([ar . . . ai+k]h) ,
para obtener la recursi´on de de Boor, Mansfield y Cox. V´ease tambi´en
[de Boor ’72].
7 Sea s(u) =
3
i=0 ciN3
i el spline definido sobre los nodos 0, 1, 2, . . . , 7 dado
por c0, . . . , c3 = 4, 7, −2, 1.
a) Bosqueje s[3, 4] y su pol´ıgono de control.
b) Calcule s, s′
, s′′
, s′′′
en u = 3.
c) Calcule la representaci´on monomial de s(u) sobre el intervalo [3, 4].
d) Calcule la representaci´on de B´ezier de s(u) sobre [3, 4].
8 Demuestre que si un polinomio sim´etrico y a multiaf´ın puede calcularse
a partir de n + 1 puntos p[ai,1 . . . ai,n], i = 0, . . . , n, por combinaciones
afines como en el algoritmo de de Boor, entonces existen n´umeros reales
a1, . . . , a2n tales que ai,j = ai+j.
6 T´ecnicas de B-splines
6.1 Inserci´on de nodos — 6.2 El algoritmo de Oslo — 6.3 Convergencia por
inserci´on de nodos — 6.4 Un algoritmo para la elevaci´on de grado — 6.5 Una
f´ormula de elevaci´on de grado — 6.6 Convergencia por elevaci´on de grado —
6.7 Interpolaci´on — 6.8 Interpolaci´on con splines c´ubicos — 6.9 Ejercicios
La mayor´ıa de los algoritmos para curvas de B´ezier tienen una generalizaci´on
para splines. Un ejemplo es la t´ecnica de inserci´on de nodos, la cual puede
emplearse para la elevaci´on de grado, para la implementaci´on del algoritmo de
Boor y tambi´en en el proceso de subdivisi´on. En particular, el algoritmo de de
Casteljau puede interpretarse como un caso de inserci´on de nodos m´ultiples.
6.1 Inserci´on de nodos
Considere un spline, como en 5.7
s(u) =
i
ciNn
i (u)
sobre la secuencia de nodos (ai). Sea (ˆaj) un refinamiento de (ai), esto es,
la secuencia de nodos (ˆaj) contiene a (ai), como una subsecuencia. V´ease la
Figura 6.1.
a1
ˆa1 = ˆa2
a2
ˆa3
a3
ˆa4
a4
ˆa6ˆa5
................................................
inicial
refinada
Figura 6.1: Refinamiento de una secuencia de nodos.
Sea ˆNj(u) el B-spline de grado n sobre ˆaj, . . . , ˆaj+n+1, entonces s(u) se puede
rescribir como
s(u) =
j
ˆcj
ˆNn
j (u) .
78 6. T´ecnicas de B-splines
La mejor manera de calcular los ˆcj es a trav´es de la inserci´on repetida
de nodos simples, esto es: se inserta un nodo en cada paso [Boehm ’80].
Supongamos entonces que (ˆaj) se obtiene a partir de (ai) por inserci´on de un
s´olo nodo ˆa. Desplazando el ´ındice de ser necesario, podemos suponer que
ˆa = ˆan+1 y an ≤ ˆa  an+1.
Como consecuencia inmediata del teorema fundamental de 5.5 se tiene
ˆcj =



cj para j ≤ 0
cj−1 · (1 − αj) + cj · αj para j = 1, 2, . . . , n
cj−1 para j ≥ n + 1
,
donde
αj =
ˆa − aj
aj+n − aj
es la coordenada local de ˆa con respecto al soporte [aj, aj+n] de ˆNn
j . La
Figura 6.2 muestra una ilustraci´on para n = 3.
Figura 6.2: Inserci´on de un nuevo nodo.
Comparando el proceso de inserci´on de nodos con el algoritmo de de Boor
de 5.4, se observa que los nuevos puntos de control c1, . . . , cn son los puntos
c1
1, . . . , c1
n que aparecen en la segunda columna del arreglo triangular de de
Boor [Boehm ’80]. Es m´as, los puntos
c1
1, . . . , cr
r, . . . , cr
n, . . . , c1
n
del esquema de de Boor coinciden con los nuevos puntos de control de s
cuando ˆa es insertado r veces.
6.2. El algoritmo de Oslo 79
En particular, para r = n el algoritmo de de Boor coincide con la inserci´on
repetida n veces del nodo ˆa.
Observaci´on 1: Si todos los nodos (ˆai) en la secuencia refinada tienen
multiplicidad n, entonces el pol´ıgono de control ci representa el pol´ıgono de
B´ezier de s. Esto es consecuencia de la Observaci´on 1 de 5.3. Por lo tanto, si
se incrementa hasta n la multiplicidad de cada nodo de un spline, se genera
la representaci´on de B´ezier del spline. Esto fu´e observado por primera vez
por Cohen [Cohen et al. ’80].
Observaci´on 2: Un B-spline se puede expresar como una combinaci´on
lineal de B-splines sobre una secuencia de nodos refinada (ˆaj). La f´ormula
correspondiente
Nn
i (u) =
j
αij
ˆNn
j (u)
fue dada por de Boor [de Boor ’76b]. Los coeficientes αij se denominan B-
splines discretos con nodos ˆaj. Esta denominaci´on fue acu˜nada por Schu-
maker [Schumaker ’73] para el caso en que los ˆaj son nodos equidistantes.
Observaci´on 3: En particular, si s(u) = Nn
j (u) es un B-spline, entonces el
proceso anterior de inserci´on de nodos implica la siguiente identidad
Nn
j (u) =



ˆNn
j (u) para j ≤ 0
αj
ˆNn
j (u) + (1 − αj+1) ˆNn
j+1(u) para j = 1, . . . , n .
ˆNn
j+1 para j ≥ n + 1
Esta identidad representa la eliminaci´on de nodos para B-splines [Boehm ’80].
6.2 El algoritmo de Oslo
Aunque usualmente la inserci´on repetida de nodos simples es en general el
mejor m´etodo [Lyche ’93] para calcular los puntos de control con respecto
a cualquier refinamiento(ˆaj) de (ai), tambi´en se puede calcular cada punto
cj a trav´es de la generalizaci´on del algoritmo de de Boor considerada en la
Observaci´on 5 de 5.5.
Para calcular cj se requiere alg´un intervalo internodal [ak, ak+1] cuya inter-
secci´on con el soporte [ˆaj, ˆaj+n+1] de ˆNn
j sea no vac´ıa, tal como se ilustra en
la Figura 6.3. Entonces cada punto de control
ˆcj = sk[ˆaj+1 . . . ˆaj+n]
puede calcularse usando el algoritmo generalizado de de Boor. Esta relaci´on
de recurrencia para cj fue descubierta por Cohen, Lyche y Riesenfeld en
Oslo en 1980, y se denomina el algoritmo de Oslo [Cohen et al. ’80]. Note
80 6. T´ecnicas de B-splines
que las combinaciones afines en el algoritmo de Oslo en general pueden ser
no convexas. En consecuencia se requieren mejoras adicionales para evitar
combinaciones no convexas.
Figura 6.3: Elecci´on de ak para la construcci´on de cj.
6.3 Convergencia por inserci´on de nodos
En esta secci´on generalizamos las ideas presentadas en 3.3. Considere el
spline s(u) = i ciNn
i (u) sobre la secuencia de nodos (ai). Entonces a
trav´es de un proceso de inserci´on de nodos que finalmente se hacen densos,
la secuencia de los correspondientes pol´ıgonos de control converge al spline
s. La velocidad de convergencia es cuadr´atica con relaci´on al m´aximo de las
distancias internodales.
Sea [a, b] un intervalo, h = max{∆ai|[ai, ai+1] ⊂ [a, b]}, y sean
γi = (ai+1 + · · · + ai+n)/n las abscisas de Greville. Entonces se
tiene
max s(γi) − ci = O(h2
) ,
donde el m´aximo se toma sobre todos los i tales que [ai+1, ai+n] ⊂
[a, b].
Para la demostraci´on [Schaback ’93] consideramos un punto de control
ci = sr[ai+1 . . . ai+n], donde sr es el polinomio sim´etrico de s restringido
al intervalo internodal [ar, ar+1) que contiene a γi. Como
∂
∂u1
sr[u . . . u] = · · · =
∂
∂un
sr[u . . . u]
la expansi´on de Taylor de sr alrededor de [γi . . . γi] tiene la forma
ci = sr[γi . . . γi] +
i+n
j=i+1
(aj − γi)
∂
∂u1
sr[γi . . . γi] + O(h2
)
= s(γi) + O(h2
) ,
lo cual prueba la aseveraci´on. 3
6.4. Un algoritmo para la elevaci´on de grado 81
6.4 Un algoritmo para la elevaci´on de grado
Todo spline de grado n
s(u) =
i
ciNn
i (u)
sobre una secuencia de nodos (ai) tambi´en puede rescribirse en t´erminos de
B-splines Nn+1
i de grado n + 1,
s(u) =
i
di
ˆNn+1
i (u)
sobre la secuencia de nodos (ˆai) obtenida a partir de (ai) elevando la multi-
plicidad de cada nodo en uno, tal como se ilustra en la Figura 6.4.
Figura 6.4: Secuencia de nodos para la elevaci´on de grado.
El teorema fundamental de 5.5 y la f´ormula (2) de la Secci´on 3.11 implican
que
dj = sr[ˆaj+1 . . . ˆaj+n+1] =
1
n + 1
n+1
k=1
sr[ˆaj+1 . . . ˆa∗
k . . . ˆaj+n+1]
donde sr[u1 . . . ur] y sr[u1 . . . un+1] representan las formas polares en n y
n + 1 variables, respectivamente, de un segmento polin´omico del spline s(u)
que depende de dj. Cada punto
sr[ˆaj+1 . . . ˆa∗
k . . . ˆaj+n]
se puede calcular por medio del algoritmo de de Boor generalizado en la
Observaci´on 5 de la Secci´on 5.5, requiri´endose de la inserci´on de a lo sumo
[(n − 1)/2] nodos. Para el caso de un spline c´ubico uniforme, este algoritmo
fue descrito por primera vez en [Ramshaw ’87, pp. 109f] para dos segmentos
y en [Seidel ’89] para cinco segmentos.
Observaci´on 4: El n´umero de operaciones para este algoritmo es de orden
n2
por cada punto de control ˆci. Es posible reorganizarlo con m´as eficiencia
resultando de orden n, ver [Prautzsch  Piper ’91, Liu ’97, Trump ’01].
Observaci´on 5: En [Prautzsch ’84a, Cohen et al. ’85, Piegl  Tiller ’94]
se pueden encontrar otros algoritmos de orden n2
.
82 6. T´ecnicas de B-splines
6.5 Una f´ormula de elevaci´on de grado
Un B-spline de grado n se puede expresar en t´erminos de B-splines de grado
n + 1. Denotemos por Nn
(u|ai . . . ai+n+1) un B-spline de grado n sobre los
nodos ai, . . . , ai+n+1.
Con esta notaci´on se tiene la f´ormula
(1) Nn
(u|a0 . . . an+1) =
1
n + 1
n+1
i=0
Nn+1
(u|a0 . . . ai ai . . . an+1) ,
la cual fue descubierta por C. A. Micchelli [Micchelli ’79]. La Figura 6.5
ilustra el ejemplo para n = 1
N1
(u|abc) =
1
3
(N2
(u|aabc) + N2
(u|abbc) + N2
(u|abcc)) .
Figura 6.5: F´ormula de elevaci´on de grado.
Para la demostraci´on empleamos la t´ecnica de [Lee ’94] y utilizamos dife-
rencias divididas. Si f(a) = (a − u)n+1
+ la f´ormula de elevaci´on de grado se
expresa como
[a0 . . . an+1]f′
=
n+1
i=0
[a0 . . . ai ai . . . an+1]f .
Esta f´ormula es v´alida para cualquier funci´on diferenciable f, lo cual veri-
ficamos por inducci´on. Para n = −1 la f´ormula es v´alida por definici´on de
diferencias divididas
[a0]f′
= f′
(a0) = [a0 a0]f .
Para n ≥ 0 usamos la relaci´on de recurrencia para diferencias divididas (vea
6.6. Convergencia por elevaci´on de grado 83
4.3), la hip´otesis de inducci´on y luego otra vez esta relaci´on:
[a0 . . . an+1]f′
=
1
an+1 − a0
([a1 . . . an+1]f′
− [a0 . . . an]f′
)
=
1
an+1 − a0
n
i=1
([a1 . . . ai ai . . . an+1]f − [a0 . . . ai ai . . . an]f)
+ [a1 . . . an+1 an+1]f − [a0 . . . an+1]f
+ [a0 . . . an+1]f − [a0 a0 . . . an]f
=
n+1
i=0
[a0 . . . ai ai . . . an+1]f . 3
6.6 Convergencia por elevaci´on de grado
Una repetida elevaci´on de grado genera una secuencia de pol´ıgonos de con-
trol que converge al spline. Considere un spline s(u) de grado n, cuya repre-
sentaci´on de grado m
s(u) = ciNm
i (u) , m  n ,
sobre la secuencia de los nodos ai ha sido generada por elevaci´on de grado.
Los soportes de los Nm
i tienen longitud no mayor que h := sup |ai+n+1 − ai|.
Sean γi := 1
m (ai+1 + · · · + ai+m) las abscisas de Greville, entonces si h y
todas las derivadas de s son acotadas, se tiene
sup ci − s(γi) = O(1/m) .
Demostraci´on: Procedemos como en 6.3 y consideramos un punto de con-
trol, por ejemplo c0 = s[a1 . . . am], donde s[u1 . . . um] denota la forma polar
de s sobre un intervalo internodal adecuado. Por la Observaci´on 9 en 3.9,
∂k
∂ui1
. . . ∂uik
s[γ0 . . . γ0] =
εi
m . . . (m − k + 1)
s(k)
(γ0) ,
donde εi = 1 si todas las coordenadas de i = (i1, . . . , ik) son distintas y
εi = 0 en cualquier otro caso. Entonces la expansi´on de Tylor de s[a1 . . . am]
alrededor de [γ0 . . . γ0] est´a dada por
c0 = s(γ0) +
n
k=1
m
i1=1
. . .
m
ik=1
εi
k!
(ai1
− γ0) . . . (aik
− γ0)
m . . . (m − k + 1)
s(k)
(γ0) .
84 6. T´ecnicas de B-splines
Utilizando el hecho que εi = 0 para mk
−(m . . . (m−k+1))´ındices i distintos
y teniendo en cuenta que
m
i1=1 . . .
m
ik=1(ai1
− γ0) . . . (aik
− γ0) = 0 se
obtiene
c0 − s(γ0) ≤
n
k=2
hk
k!
mk
− (m . . . (m − k + 1))
m . . . (m − k + 1)
sup sk
(u) ,
lo que finaliza la demostraci´on. 3
6.7 Interpolaci´on
Los splines se utilizan frecuentemente para resolver problemas de interpo-
laci´on. En particular es de inter´es la unicidad del interpolante. Sean Nn
0 , . . . ,
Nn
m B-splines de grado n sobre la secuencia de nodos a0, . . . , am+n+1 y sean
p0, . . . , pm puntos que deben ser interpolados en las abscisas u0  . . .  um.
Si deseamos hallar un spline s =
m
i=0 ciNn
i tal que
s(uj) =
m
i=0
ciNn
i (uj) = pj ,
tenemos que resolver el siguiente sistema lineal
(2)




Nn
0 (u0) · · · Nn
m(u0)
...
...
Nn
0 (um)· · · Nn
m(um)








ct
0
...
ct
m



 =




pt
0
...
pt
m



 ,
que abreviamos: NC = P. N´otese que este sistema lineal consiste de va-
rios sistemas, que pueden ser resueltos independientemente, uno para cada
columna de C. La matriz N se denomina matriz de colocaci´on.
El Teorema Schoenberg-Whitney de 1953 establece cuando el problema
de interpolaci´on tiene soluci´on ´unica [Schoenberg  Whitney ’53]
La matriz N es invertible si y s´olo si tiene diagonal positiva, i.e.
Nn
i (ui) = 0 para todo i.
Note que si las Nn
i son continuas entonces la condici´on Nn
i (ui) = 0 es equiva-
lente a que ui ∈ (ai, ai+n+1).
Para probar el teorema, nos basamos en [Powell ’81]. Sea Nn
i (ui) = 0 para
alg´un i y supongamos que ai+n+1 ≤ ui. Entonces
Nn
0 (uj) = . . . = Nn
i (uj) = 0 para todo j ≥ i ,
6.7. Interpolaci´on 85
N =
@
@
@
@
@@
@
@
@
@
@@
i
i
.0 · · · 0
...
...
0 · · · 0
utilizando un razonamiento de algebra lineal se tiene que N es singular.
An´alogamente N es tambi´en singular si ui ≤ ai.
Para el rec´ıproco, supongamos que N es singular y sea c una columna soluci´on
no trivial del sistema
Nc = o .
Supongamos primero que ninguna secuencia de n + 1 coordenadas consecu-
tivas de c consiste de ceros. Entonces la propiedad de variaci´on decreciente
(vea el Ejercicio 4), implica que el spline
m
i=0
ciNn
i
tiene a lo sumo m ceros en (a0, am+n+1) si a0  an−1 o en [a0, am+n+1] si
a0 = . . . = an−1. Por lo tanto por lo menos un ui yace fuera del soporte del
correspondiente B-spline Nn
i . Si
cr = · · · = cr+n = 0 ,
entonces se pueden considerar los splines
r−1
i=0
ciNn
i y
m
i=r+n+1
ciNn
i
los cuales son cero en u0, . . . , ur−1 y en ur+n+1, . . . , um, respectivamente.
Observaci´on 6: Una soluci´on del anterior sistema NC = P podr´ıa no ser
afinmente invariante. La invariancia af´ın se satisface si N es regular y si cada
una de las fila suma uno, esto es, si
Ne = e, donde e = [1 . . . 1]t
.
La condici´on Ne = e implica que e = N−1
e, lo cual significa que los puntos
ci dados por C = N−1
P son combinaciones afines de los pi. La condici´on
sobre las filas se satisface si an ≤ ui  am+1,
Observaci´on 7: Se dice que la matrix N es totalmente positiva, vea
[Karlin ’68, de Boor ’76a].
86 6. T´ecnicas de B-splines
Figura 6.6: Donde N0, . . . , Nm suman uno.
6.8 Interpolaci´on con splines c´ubicos
La matriz de colocaci´on se puede calcular f´acilmente para el caso c´ubico,
n = 3, sobre los nodos ai = i. El B-spline N3
0 (u) con su pol´ıgono de control
se muestra en la Figura 6.7.
Figura 6.7: El B-spline c´ubico N3
0 (u) con nodos 0,1,2,3,4.
Escogiendo las abscisas, ui = 2, 3, 4, . . . , (m+1), (m+2) el sistema lineal (2)
se puede escribir
1
6










4 1
1 4 1
·
·
·
1 4 1
1 4




















ct
0
ct
1
·
·
·
ct
m−1
ct
m










=










pt
0
pt
1
·
·
·
pt
m−1
pt
m










.
Note sin embargo que los elementos de la primera y ´ultima fila no suman
1. Por lo tanto, una mejor escogencia de las abscisas de interpolaci´on, que
conduzca a un interpolante invariante respecto a transformaciones afines, es
la siguiente:
ui = 3, (3 +
1
2
), 4, 5, . . . , m, (m +
1
2
), (m + 1) .
6.8. Interpolaci´on con splines c´ubicos 87
El sistema lineal (2) en este caso est´a dado por:
1
6














1 4 1
a b b a
1 4 1
·
·
·
1 4 1
a b b a
1 4 1




























ct
0
ct
1
ct
2
·
·
·
ct
m−2
ct
m−1
ct
m














=














pt
0
pt
1
pt
2
·
·
·
pt
m−2
pt
m−1
pt
m














,
donde a = 1/8 y b = 23/8, como se desprende de la Figura 6.7.
Otra alternativa podr´ıa ser interpolar los puntos pi en ui = i + 2 para i =
1, . . . , m − 1 y derivadas prefijadas a y b en u1 y um+1, respectivamente. El
sistema lineal que resulta es
1
6










−3 0 3
1 4 1
·
·
·
1 4 1
−3 0 3




















ct
0
ct
1
·
·
·
ct
m−1
ct
m










=










at
pt
1
·
·
·
pt
m−1
bt










.
Esta soluci´on define un spline con derivadas prescritas en los extremos y se
denomina spline empotrado. La Figura 6.8 ilustra un ejemplo.
Figura 6.8: Spline empotrado c´ubico.
En algunas aplicaciones son de inter´es los splines peri´odicos s(u) =
i ciN3
i (u) = s(u + m). Entonces ci+m = ci y se tiene un sistema lineal
88 6. T´ecnicas de B-splines
c´ıclico
1
6










4 1 1
1 4 1
·
·
·
1 4 1
1 1 4




















ct
1
·
·
·
ct
m










=










pt
1
·
·
·
pt
m










.
La Figura 6.9 presenta un ejemplo.
Figura 6.9: Spline c´ubico peri´odico.
6.9 Ejercicios
1 Desarrolle un algoritmo de intersecci´on para curvas splines, generalizando
el presentado en 3.7.
2 Considere un spline c´ubico plano s(u) =
3
i=0 ciN3
i (u) sobre los nodos
0, 1, . . . , 7 para u ∈ [3, 4]. ¿Para qu´e posiciones de c3 respecto a c0, c1 y
c2 el segmento s[3, 4] de este spline tiene una c´uspide? V´ease tambi´en el
Ejercicio 7 de 2.10.
3 Pruebe que los B-splines tambi´en verifican la propiedad de variaci´on de-
creciente, introducida en 3.8.
4 Demuestre a partir de la propiedad de variaci´on decreciente que una
funci´on spline s(u) =
m
i=0 ciNn
i es id´enticamente igual a cero en alg´un
intervalo internodal (ai, ai+1), para i ∈ {0, . . . , m + n}, o tiene a lo
sumo m + 1 ceros en el intervalo I. Donde I est´a definido como: I =
(a0, am+n+1) si a0 = . . . = an−1 e I = (a0, . . . , an+m+1) en caso
contrario, vea [Schumaker ’81, Teorema 4.76].
6.9. Ejercicios 89
5 Considere las representaciones de B´ezier de grado n y de grado m de
una curva polin´omica b(u) =
n
i=0 biBn
i (u) =
m
i=0 ciBm
i (u), donde
n  m. Sean Nn
0 , . . . , Nn
n y Mn
0 , . . . , Mn
m los B-splines de grado n sobre
los nodos: 0, 1, . . . , n, m + 1, m + 2, . . . , m + n + 1 y 0, 1, 2, . . . , m + n + 1,
respectivamente. Demuestre
n
i=0
biNn
i =
m
i=0
ciMn
i ,
es decir, una representaci´on de B´ezier de grado mayor puede ser calculada
a partir de la de grado menor por inserci´on de nodos [Trump  Prautzsch ’96].
6 Determine y dibuje los puntos de B´ezier de los splines de la Figuras 6.8
y 6.9.
7 Sea a0, . . . , a4 una secuencia de nodos y sea mi el n´umero de nodos que
coinciden con ai. Para cada posible secuencia m0, . . . , m4 considere la
secuencia de nodos a0, . . . , a4 y dibuje los puntos de B´ezier del B-spline
c´ubico correspondiente.
8 Describa un algoritmo de elevaci´on de grado para splines que utilice poli-
nomios sim´etricos. V´ease tambi´en 3.11.
9 Sea s(u) un spline funcional que interpola los valores p0, . . . , pm. Si alguna
de las filas de la matriz de colocaci´on N no suma uno entonces el spline
que interpola qi = pi + h difiere de s(u) + h.
10 Use la identidad
(u1 − u2)[u1u2u3 . . . un]f
+ (u2 − u0)[u0u2u3 . . . un]f
+ (u0 − u1)[u0u1u3 . . . un]f = 0
para diferencias divididas para obtener las f´ormulas de eliminaci´on y de
inserci´on de nodos [Boehm ’80].
Volltext algebra superior
7 Curvas suaves
7.1 Contacto de orden r — 7.2 Parametrizaci´on por longitud de arco —
7.3 Gamma splines — 7.4 B-splines gamma — 7.5 Nu-splines — 7.6 El marco
de Frenet — 7.7 Continuidad de Frenet — 7.8 Osculantes y polinomios sim´etricos
— 7.9 Interpretaci´on geom´etrica del teorema fundamental — 7.10 Splines con
matrices de conexi´on arbitrarias — 7.11 Inserci´on de nodos — 7.12 Bases de
splines — 7.13 Ejercicios
Hay varias maneras de definir continuidad geom´etrica. La condici´on de Cr
-
continuidad de St¨ark establece, desde el punto de vista de construcci´on, el
criterio m´as simple para continuidad geom´etrica de curvas construidas con
segmentos de B´ezier. Un criterio m´as general es el contacto GCr
de orden r.
Una curva es GCr
si admite una parametrizaci´on r-veces diferenciable. Una
noci´on todav´ıa m´as general, denominada continuidad de Frenet se basa en
invariantes geom´etricos de orden superior tales como curvaturas, torsi´on, etc.
Los polinomios sim´etricos proveen una herramienta elegante para el estudio
de la continuidad geom´etrica de curvas polin´omicas a trazos.
La continuidad Cr
es un concepto cl´asico que permite un esquema sencillo
(este es el caso de los B-spline) para construir curvas Cr
. Adem´as, es la
definici´on adecuada cuando la parametrizaci´on de la curva es relevante, como
en el caso de: construcci´on de superficies que interpolen curvas y la animaci´on
de objetos a lo largo de trayectorias, en que el par´ametro corresponde al
tiempo. Un ejemplo es la parametrizaci´on de trayectorias para m´aquinas
de control num´erico. Sin embargo, no es la definici´on adecuada, por ser
innecesariamente restrictiva, si estamos interesados s´olo en la forma de la
curva (el lugar geom´etrico que define), pues la continuidad Cr
depende de
la parametrizaci´on. Lo anterior justifica la introducci´on del contacto GCr
el
cual es independiente de la parametrizaci´on y es ´util para la modelaci´on de
formas. Una aplicaci´on pr´actica de la continuidad de Frenet es la definici´on
de orientaciones de s´olidos r´ıgidos mediante el triedro de Frenet asociado a
una trayectoria. Si se desean aceleraciones continuas basta con continuidad
F3
en la base de Frenet.
92 7. Curvas suaves
7.1 Contacto de orden r
Considere dos curvas p(s) y q(t), r veces diferenciables en s = t = 0. Decimos
que p y q tienen contacto de orden r en 0 si ˙q(0) = o y si existe una
reparametrizaci´on s(t) con s(0) = 0 tal que p(t) y q(t) = q(s(t)) tienen las
mismas derivadas hasta orden r en t = 0. El contacto de orden r tambi´en se
denomina conexi´on general Cr
y se denota por GCr
.
Como en casos anteriores denotamos las derivadas con respecto a s y t con
punto y ap´ostrofe, respectivamente.
Por la regla de la cadena, el contacto de orden r en s = t = 0 significa:
p = q
p′
˙s = ˙q
p′
¨s + p′′
˙s2
= ¨q
p′
˙¨s + 3p′′
˙s¨s + p′′′
˙s3
= ˙¨q .
...
...
Usando notaci´on matricial
[p p′
. . . p(r)
]














1 0 0 0 · · · 0
α β γ · · ·
α2
3αβ · · ·
α3
...
αr














= [q ˙q . . . q(r)
]
o en forma abreviada
PC = Q ,
donde α = ˙s = 0, β = ¨s, γ = ˙¨s , etc. Las matrices P y Q′
se denominan jets
de orden r de p y q en t = 0 y s = 0, respectivamente. La matriz C se
denomina la matriz de conexi´on de orden r.
En particular, sean p y q curvas polin´omicas de grado n ≥ r con puntos
de B´ezier pi y qi, i = 0, . . . , n, respectivamente. Entonces 2.4 implica que
los r-jets P y Q en pn y q0 est´an determinados por los ´ultimos y primeros
r + 1 puntos B´ezier, respectivamente. El rec´ıproco tambi´en es cierto. Por
consiguiente el contacto de orden r se puede expresar en t´erminos de los
puntos de B´ezier como
[pn . . . pn−r]C = [q0 . . . qr] ,
7.1. Contacto de orden r 93
donde C es una matriz triangular superior con elementos en la diagonal cii =
(−α)i
= 0, i = 0, . . . , r. N´otese que C depende de n.
Observaci´on 1: Dada una reparametrizaci´on s(t) siempre existe una repara-
metrizaci´on polin´omica, equivalente hasta la derivada r-´esima:
s(t) = st +
¨s
2!
t2
+ · · · +
(r)
s
r!
tr
.
En particular, cualquier conexi´on GC1
se puede trasformar en una conexi´on
C1
usando el cambio de par´ametro s = αt.
Observaci´on 2: Similarmente, una conexi´on GC2
puede trasformarse en
una conexi´on C2
simple por medio de la trasformaci´on cuadr´atica s = αt +
(β/2)t2
. N´otese que la conexi´on C2
simple tambi´en se puede obtener apli-
cando una trasformaci´on proyectiva, vea por ejemplo [Degen ’88].
s =
α2
t
α − (β/2)t
.
Observaci´on 3: Si s = t, entonces ¨s = · · · =
(r)
s = 0. Por lo tanto obtenemos
la condici´on de St¨ark tal como se ilustra en la Figura 7.1 para r = n = 3 con
los puntos de B´ezier pi y qj de p(s) y q(t) definidas sobre [−1, 0] y [0, 1],
respectivamente
Figura 7.1: Contacto C3
de St¨ark.
Observaci´on 4: Cuando se modifica β = ¨s entonces q2 se mantiene a lo
largo de una paralela a la tangente que pasa por q0 y q1 como se ilustra
en la Figura 7.2. Entonces p y q tienen contacto GC2
en pn = q0 si las
distancias g y h de pn−2 y q2 a la tangente q0q1 satisfacen g : h = 1 : α2
,
vea [Farin ’82, Boehm ’85].
Observaci´on 5: Para contactos de orden superior se tiene una situaci´on
similar: si modificamos
(n)
s entonces qn se mueve a lo largo de una paralela
a la tangente q0q1.
94 7. Curvas suaves
Figura 7.2: Contacto GC2
de Farin.
7.2 Parametrizaci´on por longitud de arco
Sea x(t) una parametrizaci´on diferenciable de la curva x. Entonces
s(t) =
t
0
˙x dt
es la longitud de arco del segmento x[0, t] y
x′
= 1 ,
donde x′
= d
ds x(t(s)) denota la derivada de x con respecto a la longitud de
arco y t(s) es la inversa de s(t).
Adem´as, si x(t) es regular, es decir, ˙x = o, entonces la longitud de arco s(t),
su inversa t(s) y x(s) = x(t(s)) son diferenciables hasta el mismo orden que
x(t), pues ˙s = ˙x . En otras palabras, la parametrizaci´on con respecto a la
cual una curva alcanza su m´axima suavidad es la longitud de arco.
Por lo tanto dos curvas regulares p(s) y q(s) parametrizadas por longitud de
arco tienen contacto de orden en r en s = 0 si
x(s) =
p(s) si s ≤ 0
q(s) si s  0
es r veces diferenciable en s = 0. En consecuencia
la matriz de una conexi´on de dos curvas parametrizadas por
longitud de arco es la identidad.
7.3 Gamma splines
Sea s(u) una curva c´ubica por trozos consistente de m segmentos con conexi´on
GC2
. Denotamos por b3i, . . . , b3i+3 a los puntos de B´ezier del segmento i-
7.3. Gamma splines 95
´esimo, es decir,
s(u) =
3
j=0
b3i+jB3
j (t) , i = 0, . . . , m − 1 ,
donde u = ai(1 − t) + ai+1t y t ∈ [0, 1].
Supondremos en las pr´oximas tres secciones sobre γ-splines y ν-splines que
los nodos ai se han escogido de manera tal que s(u) es continuamente dife-
renciable, esto es: s′
(ai−) = s′
(ai+), o sea
(b3i+1 − b3i)∆ai−1 = (b3i − b3i−1)∆ai
donde ∆j = aj+1 − aj, tal como se ilustra en la Figura 3.8.
Como los segmentos de s tienen contacto GC2
, los cuatro puntos
b3i−2, b3i−1, b3i+1, b3i+2 son coplanares, para todo i. Denotamos por ci
y di los v´ertices exteriores de este cuadril´atero, tal como se ilustra en la
Figura 7.3 para i = 1. El cuadril´atero se denomina A-marco generalizado
o γ-A-marco.
Figura 7.3: A-marco generalizado.
La Figura 7.2 indica que existe un n´umero γ distinto de cero, tal que
ε = γ∆0 y δ = γ∆1 .
Una curva c´ubica por trozos que satisface las condiciones de conexi´on GC2
con γ finito se denomina un γ-spline. Por lo tanto, un γ-spline est´a definido
por puntos de control ci, n´umeros γi = 0 asociados y nodos ai [Boehm ’85].
La construcci´on de su representaci´on de B´ezier se ilustra en la Figura 7.4.
Note que los γi podr´ıan ser negativos.
Observaci´on 6: La raz´on λ : µ en la Figura 7.3 coincide con (∆2
0 −∆2
1) : ∆2
1.
Los puntos c1 o d1 yacen en el infinito (o en la recta ideal), es decir, est´an
96 7. Curvas suaves
Figura 7.4: Un γ-spline.
infinitamente distantes si γ = ∞ o µ = ∞, respectivamente. N´otese adem´as
que la raz´on λ : µ no depende de γ.
Observaci´on 7: En la Secci´on 7.7, verificaremos que una curva GC2
tiene
curvatura continua.
Observaci´on 8: Un γ-spline con todos los γ´s iguales a 1 es un spline c´ubico
C2
, tal como se discuti´o en 5.1. Ver la Figura 5.2.
7.4 B-splines gamma
Un γ-spline s(u) depende afinmente de sus puntos de control ci. Por lo tanto
se puede escribir como una combinaci´on af´ın de estos
s(u) =
i
ciMi(u) ,
donde los Mi(u) forman una base de γ-splines con nodos ai, . . . , ai+3 y valores
γ asociados γi, . . . , γi+3. Las ordenadas de B´ezier de Mi se pueden obtener
por medio de la construcci´on de 7.3 en dimensi´on uno donde ci = 1 y todos los
dem´as cj son iguales a cero. Las abscisas de B´ezier subdividen uniformente
los intervalos internodales, como se muestra en la Observaci´on 10 de 2.8.
La construcci´on del γ-B-spline M2 se ilustra en la Figura 7.5.
7.5. Nu-splines 97
Figura 7.5: Un γ-B-spline.
Observaci´on 9: Los γ-B-splines son no negativos s´olo si todos los γ’s son
positivos. Si alg´un γi es negativo, entonces obtenemos γ-B-splines con valores
negativos y un γ-spline construido con tales γ-B-splines en general no yace
en la c´apsula convexa de sus puntos de control ci.
Observaci´on 10: De manera similar se pueden construir splines cu´articos
con torsi´on continua, ver [Boehm ’87].
En t´erminos pr´acticos si γi tiende a cero entonces la curva es atraida hacia
el punto Ci.
7.5 Nu-splines
Como un γ-spline s(u) es GC2
, entonces de acuerdo con 7.1, existen cons-
tantes νi tales que
(1) s′′
(ai+) = s′′
(ai−) + νis′
(ai−) .
En particular para cualquier j tenemos
M′′
j (ai+) = M′′
j (ai−) + νiM′
j(ai−) .
Usando la representaci´on de B´ezier de los Mi es f´acil calcular los νi [Boehm ’85]:
νi = 2
1
∆ai−1
+
1
∆ai
1
γi
− 1 .
Los splines c´ubicos GC2
que satisfacen la condici´on (1) se denominan ν-
splines. Los coeficientes νi se denominan tensiones. Los γ-spline fueron
introducidos por Nielson en 1974 [Nielson ’74], para interpolar puntos s(ai)
en el plano, por medio de curvas cuyo ajuste se pueda controlar.
98 7. Curvas suaves
7.6 El marco de Frenet
Una definici´on de continuidad menos restrictiva que el contacto GCr
, adem´as
v´alida en espacios de dimensi´on arbitraria, se basa en el marco de Frenet.
Sea x(s) una curva regular en IRd
parametrizada por longitud de arco y
supongamos que sus derivadas hasta orden d son linealmente independientes.
En consecuencia, la curva x no est´a contenida en ning´un subespacio af´ın de
IRd
.
El marco de Frenet de x(s) es el sistema ortonormal de orientaci´on positiva
f1, . . . , fd obtenido de x′
, . . . , x(d)
por el proceso de Gram-Schmidt de manera
tal que ft
i x(i)
 0 para cada i = 1, . . . , d − 1. El vector f1 = x′
es el vector
tangente de x. Para d = 3 f2 se denomina el vector normal y f3 el vector
binormal de x. La Figura 7.6 ilustra esta definici´on.
Figura 7.6: El marco de Frenet.
La derivada del marco de Frenet, la cual mide el cambio local de la curva con
respecto a la longitud de arco, est´a dada por las f´ormulas de Frenet
[f′
1 . . . f′
d] = [f1 . . . fd]









0 −κ1
κ1 0 −κ2
κ2 0
...
−κd−1
κd−1 0









,
donde los κi est´an dados por,
κ1 = ft
2x′′
κ1κ2 = ft
3x′′′
κ1κ2κ3 = ft
4x′′′′
etc.
7.7. Continuidad de Frenet 99
Vea por ejemplo [Carmo ’76]. Los κi son diferentes de cero y tambi´en se
pueden calcular utilizando las siguientes f´ormulas
κ1 = vol2[x′
x′′
]
κ2
1κ2 = vol3[x′
x′′
x′′′
]
κ3
1κ2
2κ3 = vol4[x′
x′′
x′′′
x′′′′
]
etc.
Los escalares κi se denominan curvaturas y son invariantes geom´etricos
de la curva x, es decir, s´olo dependen de su forma. La primera de ellas, κ1 es
la curvatura usual, y la segunda κ2 es la torsi´on de x. V´ease los Ejercicios
1, 2 y 3 para una interpretaci´on geom´etrica de κ1 y κ2.
7.7 Continuidad de Frenet
Una curva continua x(s) en IRd
se dice Frenet continua de orden r si
los primeros r vectores f1, . . . , fr del marco de Frenet y las primeras r − 1
curvaturas κ1, . . . , κr−1 de x son continuas. La continuidad de Frenet de
orden r, est´a definida s´olo para r ≤ d.
Sean x′
−, . . . , x
(r)
− y x′
+, . . . , x
(r)
+ las derivadas por la izquierda y por la derecha
de x en s = s0. Entonces se tiene:
la curva x parametrizada por su longitud de arco s es Frenet con-
tinua de orden r en s = s0 si y s´olo si
(2) [x′
− . . . x
(r)
− ]C = [x′
+ . . . x
(r)
+ ] ,
donde C es una matriz de conexi´on triangular superior cuya dia-
gonal consta de 1′
s.
Demostraci´on: Sean [f1 . . . fr]− y [f1 . . . fr]+ las matrices formadas por
los vectores de Frenet, por la izquierda y por la derecha, respectivamente.
Anal´ogamente, sean κ−
i , y κ+
i las curvaturas por la izquierda y por la derecha
de x en s0. Se desprende de 7.6 que
[x′
− . . . x
(r)
− ] = [f1 . . . fr]−U− ,
donde U− es una matriz triangular superior cuya diagonal es
1, κ−
1 , . . . , (κ−
1 . . . κ−
r−1) .
Para las derivadas por la derecha se satisface una relaci´on similar. Por lo
tanto la ecuaci´on (2) se satisface si y s´olo si
(3) [f1 . . . fr]−U−CU−1
+ = [f1 . . . fr]+ ,
100 7. Curvas suaves
donde U−CU−1
+ es triangular superior con diagonal
1, (κ−
1 /κ+
1 ), . . . , (κ−
1 . . . κ−
r−1/κ+
1 . . . κ+
r−1).
Como los vectores de Frenet son ortogonales entonces (3) se satisface si y s´olo
si U−CU−1
+ es la matriz identidad. Luego (3) y (2) son ciertas si y s´olo si las
curvaturas y los vectores de Frenet son continuos.
Esto termina la demostraci´on. 3
De acuerdo a 7.1, los r-jets de una curva con respecto a dos parametriza-
ciones distintas est´an relacionados por una matriz cuya diagonal es de la
forma α0
, α1
, . . . , αr
, con α = 0. Por lo tanto reparametrizando la curva
podemos rescribir la condici´on (2) de la siguiente manera. Sea x(t) una
parametrizaci´on de la curva x con derivadas linealmente indepedientes hasta
orden r por la derecha y por la izquierda en un punto t = t0. Entonces:
La curva x(t) es Frenet continua hasta orden r en t = t0 si y s´olo
si
[˙x− . . . x
(r)
− ]¯C = [˙x+ . . . x
(r)
+ ] ,
donde C es una matriz triangular superior cuya diagonal es de la
forma α, α2
, . . . , αr
con α = 0.
Observaci´on 11: El contacto de orden r implica continuidad de Frenet de
orden r. El rec´ıproco es cierto en general s´olo para r ≤ 2.
Observaci´on 12: Una curva plana en IR3
tiene torsi´on cero.
Observaci´on 13: Las curvaturas κi son invariantes euclideanos, es decir,
se preservan bajo rotaciones, reflexiones en planos y traslaciones. Note sin
embargo que la continuidad de Frenet es invariante desde el punto de vista
af´ın, de hecho es invariante por transformaciones proyectivas.
Observaci´on 14: El contacto de orden r es invariante bajo proyecciones. Sin
embargo, la continuidad de Frenet de orden r se preserva bajo proyecciones
s´olo si las derivadas hasta orden r de la curva proyectada son linealmente
independientes.
Observaci´on 15: Considere las curvas polin´omicas p(t) y q(t) en IRd
tales
que
p(0) = q(0) y −αp′
(0) = q′
(0) ,
con α = 0. Sean p0, . . . , pn y q0, . . . , qn puntos de B´ezier p y q sobre [0, 1].
Entonces p y q tienen los mismos marcos de Frenet y curvaturas en t = 0 si
los subespacios generados por p0, . . . , pi−1 dividen el segmento pi y qi en la
raz´on
1 : (α)i
, si i es par y −1 : γi
para i impar,
ver [Boehm ’87]. La Figura 7.7 ilustra la situaci´on para d = 3.
7.8. Osculantes y polinomios sim´etricos 101
Figura 7.7: Continuidad de Frenet: visi´on de Boehm.
7.8 Osculantes y polinomios sim´etricos
Para los splines Frenet continuos tambi´en existen pol´ıgonos de control y un
algoritmo de inserci´on de nodos, como para el caso de los Cr
-splines simples.
Ambos pueden deducirse a partir de los polinomios sim´etricos y del teorema
fundamental de 5.5, como mostraremos a continuaci´on.
Sea p(u) una curva polin´omica de grado n. Entonces
pa(u) = p(u) +
1
n
(a − u)p′
(u)
es una curva polin´omica de grado n − 1 en u. Esta curva se denomina el
primer osculante de p en el nodo a. La Figura 7.8 ilustra esta definici´on.
El segundo osculante de p se obtiene tomando el primer osculante de pa.
De manera similar se pueden construir osculantes de grado m´as elevado,
tomando osculantes sucesivos de p. El i-´esimo osculante de p en los nodos
a1, . . . , ai se puede escribir
pa1 ... ai
= (pa1
)a2 ... ai
.
Los osculantes tienen las siguientes propiedades. V´ease tambi´en el Ejercicio 7.
• La diagonal del n-´esimo osculante de una curva polin´omica
de grado n coincide con ´esta, ´esto es
pa n...a = p(a) .
• Los osculantes son sim´etricos con respecto a los nodos
pab(u) = pba(u) .
102 7. Curvas suaves
Figura 7.8: Primer osculante de una curva.
• Los osculantes son afines con respecto a sus nodos. Para
a = (1 − α)c + αd se tiene
pa = (1 − α) · pc + α · pd .
Debido a 3.1 estas tres propiedades caracterizan el n-´esimo osculante de p
como el polinomio sim´etrico multiaf´ın de p, esto es:
pu1 ... un
= p[u1 . . . un] .
Supongamos que p′
, . . . , p(n)
son linealmente independientes, entonces
p, p′
, . . . , p(i)
generan un subespacio de dimensi´on r que denotamos por
Pr
u, v´ease tambi´en el Ejercicio 10. Este subespacio se denomina el r-´esimo
subespacio osculador de p en u. De 3.9 se desprende
p(r)
a (a) =
n − r
n
p(r)
(a) .
Note que p y su primer osculante tienen el mismo r-´esimo subespacio oscu-
lador en u = a para r = 0, . . . , n − 1.
7.9 Interpretaci´on geom´etrica del
teorema fundamental
Sea s(u) = ciNn
i un spline con nodos simples ai, i ∈ Z, y sea sj
el
polinomio que coincide con s sobre el intervalo internodal [aj, aj+1]. Recuerde
del teorema fundamental 5.5 que
ci = sj
[ai+1 . . . ai+n] = sj
ai+1 ... ai+n
7.9. Interpretaci´on geom´etrica del teorema fundamental 103
para j = i, . . . , i + n.
Sea Sk
j el k-´esimo plano osculador en s en aj. Como el primer osculante sj
aj
genera el subespacio Sn−1
j y como los osculantes son sim´etricos en sus nodos,
obtenemos la siguiente interpretaci´on del teorema fundamental:
El punto de control ci yace en los subespacios osculadores
Sn−1
i+1 , . . . , Sn−1
i+n .
Es m´as
cualesquiera n subespacios osculadores consecutivos Sn−1
i+1 , . . . , Sn−1
i+n
se intersecan precisamente en el punto de control ci, si todos los
Sn
j generados por los segmentos sj
son n-dimensionales
De hecho, cualesquiera n+1 puntos de control consecutivos cj−n, . . . , cj gene-
ran Sn
j . Por lo tanto son independientes lo cual implica que las intersecciones
Sn−1
i+1 ∩ . . . ∩ Sn−1
i+k est´an generadas por ci−n+k, . . . , ci.
En particular observe que, los n+1 planos osculadores Sn−1
i , . . . , Sn−1
i+n tienen
intersecci´on vac´ıa.
Observaci´on 16: Esta interpretaci´on geom´etrica del teorema fundamental,
es tambi´en v´alida en el caso de nodos multiples si interpretamos la inter-
secci´on Sn−1
j ∩ k. . . ∩Sn−1
j como el (n − k)-´esimo subespacio osculador de
Sn−k
j .
Observaci´on 17: Sea p(u) una curva polin´omica n-dimensional (es decir,
que no yace en ning´un subespacio propio) y Pk
u su k-´esimo subspacio oscu-
lador en u. Como p(u) es un spline sobre cualquier secuencia de nodos con
segmentos n-dimensionales, entonces para cualquier m ≤ n + 1 los subespa-
cios osculantes Pn−1
a1
, . . . , Pn−1
am
los cuales podr´ıan coincidir, se intersecan en
un espacio de dimensi´on n−m. De lo contrario, n+1 subespacios osculadores
no tendr´ıan intersecci´on vac´ıa.
Observaci´on 18: Por la Observaci´on 17 existen a lo sumo m subespacios os-
culadores Pn−1
a1
, . . . , Pn−1
am
posiblemente coincidentes, cuya intersecci´on con-
tiene un subespacio de dimensi´on n − m
Observaci´on 19: Es m´as, se puede demostrar que la intersecci´on de cualquier
espacio osculador Pn−r
u con un subespacio m-dimensional tiene dimensi´on
m − r, excepto para un n´umero finito de n’s, vea [Prautzsch ’02].
Observaci´on 20: Vea [Pottmann ’93, Mazure  Pottmann ’96] para una
extensi´on del tratamiento geom´etrico de B-splines a los splines de Tcheby-
cheff.
Observaci´on 21: Los puntos de B´ezier bi de una curva c´ubica p(u) que
104 7. Curvas suaves
genera IR3
est´an dados por los osculantes de orden 3, vea la Figura 7.9,
b0 = p000 = P0
0 ,
b1 = p001 = P1
0 ∩ P2
1 ,
b2 = p011 = P2
0 ∩ P1
1 y
b3 = p111 = P0
1 .
Figura 7.9: Subespacios osculadores y el pol´ıgono de B´ezier
7.10 Splines con matrices de conexi´on arbitraria
Sean ai nodos simples, esto es que satisfacen ai  ai+1 para todo i, y sea
s(u) una curva continua que es polin´omica sobre cada intervalo internodal
[ai, ai+1]. Supongamos adem´as que las derivadas por la izquierda y por la
derecha de s(u) en cada nodo y hasta grado n−1 est´an relacionadas por una
matriz de conexi´on no singular arbitraria. Entonces la curva s tiene un plano
osculador (n − 1)-dimensional en cada nodo ai, que denotamos por Si o Sai
¡Sin embargo, en general, s no es Frenet continua!
Supondremos adem´as que cada segmento polin´omico de s genera el espacio
n-dimensional e introducimos la notaci´on
s[ai+1 . . . ai+n] = Si+1 ∩ · · · ∩ Si+n
para la intersecci´on de n subespacios osculadores en nodos consecutivos.
Por la Observaci´on 18 de 7.9 se tiene que dos subespacios osculadores con-
secutivos Sj+1 y Sj+2 se intersecan en un subespacio de Sj+2 de dimensi´on
n − 2. Entonces aplicando sucesivamente la Observaci´on 19 de 7.9, se tiene
que m subespacios osculadores consecutivos
Sj+1, . . . , Sj+m
se intersecan en un subespacio (n − m)-dimensional de Sj+m. Por lo tanto,
en general, s[ai+1 . . . ai+n] es un punto. Sin embargo este punto podr´ıa estar
en el infinito, v´ease el Ejercicio 9.
7.11. Inserci´on de nodos 105
Como s es tambi´en un spline sobre cualquier secuencia de nodos m´as fina,
la definici´on de s[ai+1 . . . ai+n] se puede extender a cualquier secuencia de
nodos consecutivos x1, . . . , xn de un refinamiento de la secuencia (ai). La
funci´on de n variables s[x1 . . . xn] tiene las siguientes tres propiedades, que
se desprenden directamente de la definici´on:
• s[x1 . . . xn] coincide con s(u) sobre la diagonal, esto es
s[u . . . u] = s(u)
.
• s[x1 . . . xn] es sim´etrica, es decir, si (y1, . . . , yn) es una
permutaci´on de (x1, . . . , xn) entonces
s[y1 . . . yn] = s[x1 . . . xn] .
• s[x1 . . . xn] es una funci´on racional por trozos. Si, por
ejemplo x2, . . . , xn est´an fijos entonces s[x x2 . . . xn] yace
sobre la recta Sx2
∩ · · · ∩ Sxn
.
Generalizando la nomenclatura del teorema 5.5 los puntos ci = s[ai+1 . . . ai+n]
se denominan tambi´en puntos de control de s [Seidel ’92].
Observaci´on 22: Si las matrices de conexi´on son totalmente positivas, en-
tonces cualesquiera n subespacios osculantes consecutivos Si+1, . . . , Si+n se
intersecan en un punto, vea [Dyn  Micchelli ’88].
7.11 Inserci´on de nodos
Considere una curva polin´omica por trozos s(u) de grado n sobre la secuencia
de nodos ai como en 7.10 tales que cualesquiera n subespacios osculantes
consecutivos Sj+1, . . . , Sj+n se intersecan en un punto. Sea ˆa ∈ [aj, aj+1) un
nuevo nodo y sean
ˆai =



ai para i ≤ j
ˆa para i = j + 1
ai−1 para i ≥ j + 2
,
los nodos de la secuencia refinada. Usando las propiedades de los osculantes
generalizados, s[x1 . . . xn], se pueden calcular los nuevos puntos de control
ˆci = s[ˆai+1 . . . ˆai+n] a partir de los controles iniciales ci = s[ai+1 . . . ai+n].
De hecho, de 7.10 resulta:
ˆci =



ci para i ≤ j − n
ci−1(1 − αi) + ciαi para i = j − n + 1, . . . , j
ci−1 para i ≥ j + 1
,
106 7. Curvas suaves
donde αi es una funci´on racional por trozos de ˆa. V´ease el Ejercicio 6.
En particular, si insertamos el nodo ˆa n veces entonces se obtiene un algoritmo
similar al algoritmo de de Boor para el c´alculo de s[ˆa . . . ˆa] = s(ˆa). La ´unica
diferencia, es que en general los pesos αi no dependen linealmente de ˆa.
Observe que este algoritmo de de Boor generalizado funciona solamente
cuando todas las intersecciones s[aj+1 . . . aj+k ˆa n−k. . . ˆa] = Sj+1 ∩ . . . ∩Sj+k ∩
(k-´esimo subespacio osculante en ˆa), requeridas para el c´alculo de s[ˆa . . . ˆa],
son puntos. Sin embargo, tal como se desprende de la Observaci´on 18, estas
intersecciones pueden no ser puntos en a lo sumo un n´umero finito de nodos
ˆa.
Observaci´on 23: Los puntos de control ci, i = 0, . . . , m, definen el spline
s(u) para todo u ∈ [an, am+1]. Por lo tanto, si consideramos s solamente sobre
[an, am+1], es conveniente suponer nodos de multiplicidad n en los extremos.
a0 = · · · = an−1 y am+1 = · · · = am+n+1 .
7.12 Bases de splines
Hasta ahora hemos supuesto que la curva s(u) tiene derivadas independien-
tes hasta orden n − 1. Esto sin embargo no es necesario para que est´en bien
definidos los puntos de control y para que exista un algoritmo de inserci´on
de nodos.
Sea a = (a0, . . . , am) una secuencia de nodos simples y C = (C1, . . . , Cm−1)
una secuencia de matrices (n−1)×(n−1) no singulares. Una curva polin´omica
por trozos s(u) se denomina un spline de grado n sobre a y C si es polin´omica
de grado n sobre cada intervalo internodal (ai, ai+1), i = 0, . . . , m − 1, y si
para cada u = a1, . . . , am−1, las derivadas por la izquierda y por la derecha
est´an relacionadas por
[s
(1)
− . . . s
(n−1)
− ]Ci = [s
(1)
+ . . . s
(n−1)
+ ] .
Para fijar ideas suponderemoas que s yace en 3D.
Dada la secuencia de nodos a0, . . . , am y la secuencia de matrices no singu-
lares C1, . . . , Cm−1 para cualesquiera m+n puntos b0, . . . , bn, b2n, . . . , bmn,
que generan un espacio de dimensi´on m + n, se puede construir un spline de
grado n, que tiene derivadas continuas hasta grado n − 1. Este spline se
denomina una curva normal para el espacio de los splines en 3D de grado
n, sobre la secuencia de nodos a y matrices de conexi´on C.
La curva normal la denotamos por snorm y los puntos de B´ezier de sus seg-
mentos polin´omicos son b0, b1, . . . , bn; bn+1, . . . , b2n, etc. Los puntos de
7.13. Ejercicios 107
B´ezier (tales como bn+1, bn+2, . . . , b2n+1, . . . ) est´an determinados por las
condiciones de conexi´on dadas por las matrices de conexi´on C.
Cualquier spline de grado n, sobre a y C es la imagen por una aplicaci´on af´ın
del espacio n + m dimensional en 3D. H.P. Seidel se refiere a la curva normal
como spline universal en [Seidel ’92]. Las im´agenes de los puntos de control
de snorm son los puntos de control de s. Esto entonces demuestra que para
cualquier spline s sobre a y C hay un pol´ıgono de control y que existe un
algoritmo de inserci´on de nodos. Los pesos αi de 7.11 dependen solamente
de a, C y de ˆa, pero no de cada spline en particular.
Es m´as, las curvas normales sobre a y C con puntos de control 0, . . . , 0, 1,
0, . . . , 0 forman una base para el espacio de splines sobre a y C. El algoritmo
de de Boor generalizado implica que estos splines tienen igual soporte que los
B-splines ordinarios sobre a.
Observaci´on 24: En los casos que no se pueda definir los puntos de con-
trol de un spline normal sobre a y C, por interseci´on de los n subespacios
osculantes, podemos perturbar los nodos ai de manera tal que los osculantes
en cada uno de los n nodos consecutivos se intersecten en exactamente un
punto. V´ease la Observaci´on 18 de 7.9. Vea tambi´en los Ejercicios 13 - 15.
7.13 Ejercicios
1 Considere la curva x(t) con curvatura κ(t) = 0. Muestre que los c´ırculos
tangentes a x con contacto de orden 2 tiene radio 1/κ. Estos c´ırculos se
denommnan osculadores y sus centros son los centros de curvatura.
2 Considere una curva x(s) parametrizada por longitud de arco. Su vector
tangente t(s) describe una curva sobre la esfera unitaria. La longitud de
arco de la curva t, que denotamos por α(s), representa cuanto se han
desviado los ´angulos de la curva en tiempo s con respecto a los valores
angulares iniciales en s = 0. Demuestre que la curvatura κ de x es igual
a la derivada de t respecto a s, es decir, α′
= κ.
3 Demuestre que la torsi´on de una curva en IR3
coincide con la velocidad
angular del vector binormal con respecto a s.
4 Convierta un ν-spline a su representaci´on γ-spline, o sea, exprese los γi
en t´erminos de los νi, vea 7.5.
5 Un γ-spline (ν-spline) sobre los nodos a0, . . . , am+2 con par´ametros
γ1, γ2, . . . , γm+1 (ν1, , . . . , νm+1) es tambi´en un γ-spline (ν-spline) sobre
una secuencia de nodos refinada ˆa0 = a0, . . . , ˆai = ai, ˆai+1, ˆai+2 = ai+1
, . . . , ˆam+3 = am+2 con par´ametros ˆγ1, . . . , ˆγm+2 (ˆν1, . . . , ˆνm+2). Ex-
prese los valores ˆγi (ˆνi) en funci´on de los γi (νi) respectivamente.
108 7. Curvas suaves
6 En 7.3 mostramos como se puede obtener el pol´ıgono de control de un
γ-spline s(u) a partir de su pol´ıgono de B´ezier. Subdivida el pol´ıgono
de B´ezier de un segmento de s(u) y construya el pol´ıgono de control
correspondiente de este segmento spline. Exprese los nuevos puntos de
control como combinaciones afines de los puntos de control dados, cf.
[Boehm ’85].
7 Verifique que los osculantes son afines y sim´etricos en t´erminos de sus
nodos.
8 Considere el γ-spline s(u) = s(u+4) sobre los nodos 0, 1, 2, 3, 4 con puntos
de control [1 1]t
, [−1 1]t
, [−1 −1]t
, [1 −1]t
y par´ametros γ = γ1 = γ2 =
γ3 = γ4. ¿Para qu´e valor de γ s(u) interpola un c´ırculo de radio ρ 
√
2
centrado en el origen para u = 1, 2, 3, 4? ¿Para qu´e γ, s(u) interpola a
este c´ırculo en u = 1/2, 3/2, 5/2, 7/2 ?
9 Encuentre dos c´ubicas p(u) y q(u) con el mismo marco de Frenet en u = 0
tales que sus planos osculadores en u = 1 son paralelos pero diferentes.
10 Sea p(u) una curva polin´omica de grado n que genere IRn
. Demuestre
que cada i-´esimo subespacio osculador de p tiene dimensi´on i para i =
0, 1, . . . , n.
11 Encuentre un spline c´ubico que consista de segmentos planos y con nodos
simples tales que cada uno de sus puntos de control es intersecci´on de 3
planos osculadores consecutivos S2
j .
12 Sea p(u) una curva de grado n que genera IRn
y sea Pk
u su k-´esimo
subespacio osculador en u. Demuestre que cualquier intersecci´on Pn−i
a ∩
Pn−j
b converge a Pn−i+j
a , cuando b tiende a a.
13 Considere el espacio de splines c´ubicos sobre Z con matrices de conexi´on
Ci = −1
0
0
1 para i = 1, . . . , m y Ci = 1
0
0
1 para todos los dem´as no-
dos. Muestre que tres planos osculadores en nodos consecutivos pueden
intersecarse en una recta.
14 Encuentre los spline base (en el sentido de 7.12) del espacio de splines
c´ubicos del Ejercicio 13. Trate de que en su base haya el mayor n´umero
posible de B-splines.
15 Construya una base para el espacio de splines c´ubicos del Ejercicio 13,
cuyos elementos tengan soporte m´ınimo.
8 Subdivisi´on uniforme
8.1 B-splines uniformes — 8.2 Subdivisi´on uniforme — 8.3 Subdivisi´on iterada
— 8.4 La matriz de subdivisi´on — 8.5 Derivadas — 8.6 Subdivisi´on estacionaria
— 8.7 Teoremas de convergencia — 8.8 C´alculo del esquema de diferencias —
8.9 El esquema de los cuatro puntos — 8.10 An´alisis del esquema de los cuatro
puntos — 8.11 Ejercicios
Los splines se simplifican mucho si los nodos son simples y est´an uniforme-
mente espaciados. En este caso dos B-splines de un mismo grado difieren
por una traslaci´on, lo cual permite una evaluaci´on eficiente por medio de un
m´etodo matricial o a trav´es de una tabla de valores precalculados. Por esta
raz´on, se han ideado algoritmos simples para convertir una representaci´on
B-spline arbitraria en una representaci´on B-spline sobre una secuencia de
nodos m´as fina pero satisfaciendo la condici´on de estar uniformemente espa-
ciados. Estos algoritmos son prototipos de toda una clase de algoritmos que
se denominan algoritmos de subdivisi´on estacionaria.
8.1 B-splines uniformes
Los B-splines sobre la secuencia de nodos Z se pueden definir como en 5.3 y
tambi´en por convoluci´on, usando la f´ormula de la derivada de 5.7. Sea
N0
(u) =
1 para 0 ≤ u  1
0 en caso contrario
el B-spline constante por trozos sobre los nodos 0 y 1, vea la Figura 5.4.
Usando la f´ormula de la derivada de un B-spline Nn
(u) de grado n sobre los
nodos 0, 1, 2, . . . , n + 1 se obtiene por la recursi´on
Nj
(u) =
u
0
(Nj−1
(v) − Nj−1
(v − 1))dv , j = 1, . . . , n ,
que se puede rescribir
Nj
(u) =
1
0
Nj−1
(u − t)dt
110 8. Subdivisi´on uniforme
o tambi´en
Nj
(u) =
IR
Nj−1
(u − t)N0
(t)dt
= Nj−1
∗ N0
la cual se denomina convoluci´on de Nj−1
con N0
. La Figura 8.1 ilustra
esta construcci´on recursiva. En lo que sigue consideramos los trasladados
Nn
(u − i) y los denotamos como en los Cap´ıtulos 5 y 6:
Nn
i (u) = Nn
(u − i) .
Figura 8.1: Construcci´on del B-spline uniforme N2
(u).
8.2 Subdivisi´on uniforme
La combinaci´on af´ın de puntos ci ponderados
sn
(u) = ciNn
i (u)
con B-splines uniformes sobre Z se denomina un spline uniforme sobre
Z. Subdivisi´on uniforme es el c´alculo de la representaci´on B-spline de
sn
(u) sobre la secuencia refinada de nodos 1
2 Z.
Para esta representaci´on introducimos los B-splines escalados Mn
(u) =
Nn
(2u) y sus trasladados
Mn
i (u) = Mn
(u − i/2) = Nn
(2u − i),
vea la Figura 8.2.
La construcci´on de la representaci´on sobre la secuencia refinada
sn
(u) = bn
i Mn
i (u)
8.2. Subdivisi´on uniforme 111
Figura 8.2: Escalamiento de un B-spline uniforme.
no es dif´ıcil. Para n = 0 se tiene
sn
(u) = ciN0
i (u)
= ci(M0
2i(u) + M0
2i+1(u))
y por lo tanto
b0
2i = b0
2i+1 = ci .
Para n = j + 1  0 la recursi´on para los B-splines uniformes implica lo
siguiente:
sn
(u) = ciNj+1
i (u)
=
IR
ciNj
i (u − t)N0
(t)dt
=
IR
bj
i Mj
i (u − t)[M0
0 (t) + M0
1 (t)]dt
=
1
2
bj
i [Mj+1
i (u) + Mj+1
i+1 (u)]
=
1
2
(bj
i−1 + bj
i )Mj+1
i (u)
y por lo tanto
bj+1
i =
1
2
(bj
i−1 + bj
i ) .
Este c´alculo recursivo de los bn
i se denomina el algoritmo de Lane y
Riesenfeld [Lane  Riesenfeld ’80].
Dado un pol´ıgono de control primero se duplican todos los puntos
de control y posteriormente se construyen los pol´ıgonos conectando
los puntos medios repetidamente.
La Figura 8.3 ilustra esta construcci´on para n = 3. Los puntos negros corres-
ponden al pol´ıgono original, los cuales se duplican. La secuencia de c´ırculos
en el cuadro superior derecho de la Figura 8.3, denota el pol´ıgono para n = 1.
112 8. Subdivisi´on uniforme
Figura 8.3: Subdivisi´on uniforme.
En los dos cuadros inferiores los c´ırculos peque˜nos siempre indican v´ertices
del pol´ıgono previo.
Observaci´on 1: La construcci´on anterior para n = 2 se denomina el al-
goritmo de Chaikin aunque fue estudiado anteriormente por de Rham
[Rham ’47].
Observaci´on 2: Se tiene
sn+1
(u) =
u
u−1
sn
(t)dt = sn
∗ N0
= s0
∗ Nn
.
8.3 Subdivisi´on iterada
El algoritmo de la subdivisi´on uniforme se puede describir de una manera
m´as compacta utilizando una notaci´on matricial.
Sea
C = [ . . . c−1 c0 c1 . . . ]
y
Bn = [ . . . bn
−1 bn
0 bn
1 . . . ]
8.3. Subdivisi´on iterada 113
las matrices formadas por los puntos de control de un spline uniforme sn
de grado n sobre Z y 1
2 Z, respectivamente. Entonces el procedimiento de
Lane-Riesenfeld dado en 8.2, puede rescribirse
B0 = CD y Bj+1 = BjM , j = 0, . . . , n − 1 ,
donde D y M son las matrices bi-infinitas
D =




· ·
1 1
1 1
· ·




y
M = 1/2







·
· 1
1 1
1 ·
·







.
La multiplicaci´on por D corresponde duplicar cada punto de control y la
multiplicaci´on por M equivale al c´alculo de los punto medios de pares con-
secutivos de puntos de control. Entonces la matriz
Sn = DMn
,
representa el operador de subdivisi´on para los splines uniformes de grado n.
El proceso de subdivisi´on se puede repetir. Aplicando Sn = DMn
dos veces,
se obtiene el pol´ıgono de control del spline sn
sobre 1
4 Z. Esto significa
sn
(u) = ciNn
i (u)
= bn
i Nn
i (2u)
= an
i Nn
i (4u) ,
donde
[ . . . a−1 a0 a1 . . . ] = CSnSn .
Observaci´on 3: En 6.3 se demostr´o que la secuencia de los pol´ıgonos de
control
Ck = CSk
n
del spline sn
sobre 2−n
Z converge a sn
cuando k tiende a infinito.
114 8. Subdivisi´on uniforme
8.4 La matriz de subdivisi´on
La matriz de subdivisi´on S1 = D ˙M para los splines lineales por trozos se
obtiene directamente de la Figura 8.3
S1 =
1
2




· · ·
1 2 1
1 2 1
· · ·



 .
Similarmente la matriz de subdivisi´on S2 para splines cuadr´aticos por trozos
(algoritmo de Chaikin) resulta
S2 =
1
4




· · · ·
1 3 3 1
1 3 3 1
· · · ·




y en general la matriz Sn es de la forma
Sn =




. . .
a0 a1 . . . an+1
a0 a1 . . . an+1
. . .



 ,
donde ai es el coeficiente binomial
ai = 2−n n + 1
i
.
Otra derivaci´on de Sn est´a dada en la Observaci´on 5 de 8.8.
La multiplicaci´on del pol´ıgono de control C por la matriz de subdivisi´on Sn
nos conduce a las ecuaciones de refinamiento
bn
2i =
j
cja2i−2j y bn
2i+1 =
j
cja2i+1−2j,
las cuales se pueden combinar en una sola expresi´on.
bn
i =
j
cjai−2j .
8.5 Derivadas
La derivada de un spline s(u) = ciNn
i (u) sobre Z tiene una forma particu-
larmente simple. Especializando la identidad (1) de 5.6 obtenemos
s′
(u) = ∇ciNn−1
i (u) ,
8.6. Subdivisi´on estacionaria 115
donde ∇ci = ci − ci−1 denota la diferencia hacia atr´as. Entonces la derivada
s′
est´a controlada por el pol´ıgono de diferencias ∇C = [ . . . ∇ci . . . ]
obtenido del pol´ıgono de control C = [ . . . ci . . . ] de s. Es m´as, sean
Ck = [ . . . ck
i . . . ] = C(Sn)k
los pol´ıgonos de control obtenidos de C por subdivisi´on k veces. Entonces
las representaciones de s y de su derivada, ambos sobre 2−k
Z, son
s(u) = ck
i Nn
i (2k
u)
y
s′
(u) = 2k
(∇ck
i )Nn−1
i (2k
u) .
Por lo tanto, subdividiendo s′
obtenemos los pol´ıgonos diferencia ∇Ck
2k
∇Ck = (∇C)(Sn−1)k
.
Entonces, 1
2 Sn−1 aplica ∇Ck en ∇Ck+1. Por esta raz´on 1
2 Sn−1 se denomina la
matriz del esquema de diferencias asociada con el esquema de subdivisi´on
representado por Sn.
8.6 Subdivisi´on estacionaria
Generalizando 8.4 podemos considerar una matriz de subdivisi´on bi-infinita
de la forma
S =




. . .
. . . α−1 α0 α1 . . .
. . . α−1 α0 α1 . . .
. . .



 ,
donde los elementos αi son n´umeros arbitrarios que satisfacen i αi =
i α2i+1 = 1 y s´olo un n´umero finito de los αi son diferentes de cero.
Iterando la subdivisi´on se obtiene la siguiente secuencia de pol´ıgonos de con-
trol
Ck = [ . . . ck
i . . . ] = CSk
.
Esta secuencia converge uniformemente a una curva continua c(u) si
sup
i
ck
i − c(2−k
i) −→
k→∞
0 .
La convergencia uniforme de los pol´ıgonos Ck a c(u), sobre cada compacto
implica que los splines constantes por trozos
ck(u) =
i
ck
i N1
i (u)
116 8. Subdivisi´on uniforme
tambi´en convergen a c(u), que es uniformemente continua sobre intervalos
compactos.
Una condici´on necesaria y suficiente para la convergencia uniforme fue dada
en [Dyn et al. ’91] y [Micchelli  Prautzsch ’87].
Los pol´ıgonos de control Ck convergen uniformemente a una curva
uniformemente continua c(u) si y s´olo si los pol´ıgonos diferencia
∇ck convergen uniformemente a cero.
La prueba de este hecho est´a en 15.3. V´ease tambi´en los Ejercicios 3 y 4.
8.7 Teoremas de convergencia
Consideremos ahora una secuencia Ck = [ . . . ck
i . . . ] de pol´ıgonos arbitrarios,
no necesariamente obtenidos por subdivisi´on y supongamos que la secuencia
de pol´ıgonos 2k
∇2
Ck, las segundas diferencias divididas, converge uniforme-
mente a cero. Entonces por 8.6, los pol´ıgonos primera diferencia dividida
2k
∇Ck convergen uniformemente a una curva uniformemente continua, d(u).
Por lo tanto, las primeras diferencias ∇Ck convergen uniformemente a cero
y los pol´ıgonos Ck, a una curva uniformemente continua c.
Este hecho implica que el spline constante por trozos
dk(u) = 2k
∇ck
i N0
i (2k
u)
y que los splines lineales por trozos
ck(u) = ck
i N1
i (2k
u)
convergen uniformemente a d(u) y c(u), respectivamente. Como
ck(u) = ck
−1 +
u
0
dk(t) dt ,
y como integraci´on y convergencia uniforme conmutan, resulta
c(u) = c(0) +
u
0
d(t) dt .
En consecuencia c es diferenciable y c′
(u) = d(u). Una aplicaci´on repetida
de este resultado resulta en el siguiente teorema general:
Si la secuencia de pol´ıgonos 2kr
∇r+1
Ck converge uniformemente
a cero cuando k tiende a infinito, entonces c es una curva Cr
.
Adem´as para todo i = 0, . . . , r, los pol´ıgonos 2ki
∇i
Ck convergen
uniformemente a las derivadas ci
de una curva c, r veces conti-
nuamente diferenciable.
8.8. C´alculo del esquema de diferencias 117
8.8 C´alculo del esquema de diferencias
Para utilizar los resultados de 8.7 debemos calcular los pol´ıgonos diferencia
∇Ck. Sea C = [ . . . ci . . . ] un pol´ıgono de control y S la matriz de subdi-
visi´on como en 8.6. Tal como se explic´o en 8.4, los v´ertices bi del pol´ıgono
subdividido B = CS se calcula usando la ecuaci´on de refinamiento
bi =
j
cjαi−2j .
Multiplicando por el monomio zi
y sumando sobre i obtenemos el polinomio
de Laurent
i
bizi
=
i j
cjαi−2jz2j
zi−2j
=
j
cjz2j
k
αkzk
,
el cual se puede expresar de manera compacta como:
b(z) = c(z2
) · α(z) .
El factor
α(z) =
k
αkzk
no depende de C y se denomina el polinomio caracter´ıstico del esquema
de subdivisi´on S. Note que cada esquema de subdivisi´on tiene un ´unico
polinomio caracter´ıstico y viceversa.
La representaci´on de esquemas de subdivisi´on por polinomios caracter´ısticos
permite obtener f´acilmente sus esquemas de diferencias asociados: Multipli-
cando las diferencias ∇bi por zi
y sumando sobre i obtenemos el polinomio
de Laurent
∇b(z) =
i
∇bizi
= b(z)(1 − z) .
Sustituyendo la ecuaci´on para b(z) se tiene
∇b(z) = c(z2
)α(z)(1 − z)
= ∇c(z2
)α(z)
1 − z
1 − z2
= ∇c(z2
)
α(z)
1 + z
.
La suposici´on α2i = α2i+1 = 1 establecida en 8.5 es equivalente a
α(−1) = 0 y α(1) = 2. Por lo tanto (1 + z) es un factor de α(z), lo cual
implica que
β(z) =
α(z)
1 + z
.
118 8. Subdivisi´on uniforme
es el polinomio caracter´ıstico del esquema de diferencias asociado con
S.
Observaci´on 4: La matriz de subdivisi´on D para un spline constante por
trozos sobre Z dada en 8.3, tiene polinomio caracter´ıstico
σ0(z) = (1 + z) .
Observaci´on 5: La matriz 1
2 Sn−1 definida en 8.4 representa el esquema de
diferencias correspondiente al algoritmo de subdivisi´on para splines de grado
n sobre Z, vea 8.5. Por lo tanto el polinomio caracter´ıstico σn(z) de Sn est´a
dado por
σn =
1
2
(1 + z)σn−1(z)
=
1
4
(1 + z)2
σn−2(z)
...
= 2−n
(1 + z)n
σ0(z) = 2−n
(1 + z)n+1
,
lo cual prueba de manera distinta la identidad ai = 2−n n+1
i de 8.4.
8.9 El esquema de los cuatro puntos
Como un ejemplo de los resultados anteriores presentamos el esquema de los
cuatro puntos de Dyn, Gregory y Levin [Dyn et al. ’87]. Dado un pol´ıgono
P0 = [ . . . p0
i . . . ] se construye una secuencia de pol´ıgonos Pk = [ . . . pk
i . . . ]
de la forma
pk+1
2i−1 = pk
i+2
pk+1
2i = −ωpk
i−3 + (1/2 + ω)pk
i−2 + (1/2 + ω)pk
i−1 − ωpk
i ,
donde ω es un par´ametro de dise˜no para controlar la forma de la curva. La
construcci´on correspondiente se ilustra en la Figura 8.4.
Note que cada pol´ıgono Pk+1 obtenido por medio del esquema de los cuatro
puntos, interpola al polinomio previo Pk. Los algoritmos de subdivisi´on con
esta propiedad tambi´en se denominan esquemas iterativos interpolantes.
Observaci´on 6: Sea p(u) una curva c´ubica y sea
P0 = [ . . . p0
i . . . ]
el pol´ıgono dado por p0
i = p(i), i ∈ Z. Si ω = 1/16 entonces todos los
pol´ıgonos Pk obtenidos a trav´es del esquema de los cuatro puntos tambi´en
8.10. An´alisis del esquema de los cuatro puntos 119
Figura 8.4: Esquema de los cuatro puntos - construcci´on de pk+1
6 .
yacen sobre la c´ubica, concretamente
pk
i+1 = p(1 + i/2k
).
.Entonces el esquema de los cuatro puntos tiene precisi´on c´ubica para ω =
1/16.
Observaci´on 7: Usando la interpolaci´on polin´omica de grado 2k − 1 en
abscisas equidistantes, se pueden construir esquemas de 2k puntos con pre-
cisi´on polinomial de grado 2k − 1. V´ease [Kobbelt ’94].
8.10 An´alisis del esquema de los cuatro puntos
Por inspecci´on de la definici´on del esquema de los cuatro puntos se obtiene
su polinomio caracter´ıstico
α(z) = −ω + (1/2 + ω)z2
+ z3
+ (1/2 + ω)z4
− ωz6
= (1 + z)β(z) ,
donde
β(z) = −ω + ωz + 1/2z2
+ 1/2z3
+ ωz4
− ωz5
es el polinomio caracter´ıstico del esquema de diferencias. Entonces se tiene
∇pk+1
2i = − ω∇pk
i + 1/2∇pk
i+1 + ω∇pk
i+2
≤ (1/2 + 2|ω|) sup
i
∇pk
i
y similarmente
∇pk+1
2i+1 ≤ (1/2 + 2|ω|) sup
i
∇pk
i .
Por lo tanto, para |ω|  1/4 los pol´ıgonos de diferencias ∇Pk convergen a
cero y los pol´ıgonos Pk convergen a una curva continua. Es m´as, de acuerdo
120 8. Subdivisi´on uniforme
a 8.7 la diferenciabilidad depende de las segundas diferencias 2k
∇2
Pk. De
8.8 se desprende que el esquema de diferencias asociado tiene el polinomio
caracter´ıstico
γ(z) =
2β(z)
1 + z
= −ω + 2ωz + (1/2 − 2ω)z2
+ 2ωz3
− ωz4
.
Como previamente, en este caso tambi´en se puede demostrar que 2k
∇2
Pk
tiende a cero si 0  ω  1/8. Por lo tanto en este caso el esquema de los
cuatro puntos produce interpolantes C1
.
Observaci´on 8: Se puede demostrar [Dyn et al. ’91] que el esquema de los
cuatro puntos produce interpolantes C1
si 0  ω  (
√
5 − 1)/8 ≈ 0.15. Sin
embargo, en general no produce curvas C2
.
Observaci´on 9: El esquema de 2k puntos de Kobbelt produce interpolantes
Ck−1
[Kobbelt ’94]
8.11 Ejercicios
1 El B-spline uniforme Nn
se puede obtener como una convoluci´on de N0
n veces,
Nn
= N0
∗ n. . . ∗N0
.
2 Use la relaci´on de recurrencia para B-splines uniformes de 8.1 para demostrar
i
Nn
i = 1,
i
(i +
n + 1
2
)Nn
i (u) = u, y
IR
Nn
i = 1 .
3 Use la notaci´on de 8.6 para demostrar que ck+1
2i −ck
i y ck+1
2i+1 −1/2(ck
i +
ck
i+1) est´an acotados por alg´un m´ultiplo de supi ck
i · i |αi|.
4 Deduzca del Ejercicio 3 que la curva lineal por trozos ck
i N1
i (2−k
u)
converge uniformemente si las diferencias ∇ck
i convergen uniformemente
a cero.
5 Sea Sk la matriz del algoritmo de subdivisi´on de splines uniformes de
grado k dada en 8.4 y considere la secuencia de pol´ıgonos
Ck = Ck−1Sk, k = 1, 2, 3, . . . ,
donde C0 = [ . . . ci . . . ] es un pol´ıgono de control arbitrario. Demuestre
que los pol´ıgonos Ck convergen a una curva C∞
, [Rvachev ’90].
8.11. Ejercicios 121
6 Considere los splines uniformes sn = ciNn
i (u) de grado n sobre Z.
Para cualquier entero r ∈ IN sea
sn = bn
i Nn
i (ru)
la representaci´on correspondiente sobre 1
r Z. Demuestre que los puntos
de control bn
i se pueden calcular a trav´es de la relaci´on de recurrencia.
b0
ri = · · · = b0
ri+r−1 = ci
bn+1
i =
1
r
(bn
i−r+1 + · · · + bn
i ).
7 Considere dos matrices de subdivisi´on R y S con polinomios caracter´ısticos
α(z) y (1+z)α(z)/2. Dado el pol´ıgono C suponga que los pol´ıgonos CRk
convergen a una curva c(u). Demuestre que los pol´ıgonos CSk
convergen
a la curva d(u) =
u
u−1
c(u)du.
Volltext algebra superior
Parte II
Superficies
Volltext algebra superior
9 Superficies producto tensorial
9.1 Productos tensoriales — 9.2 Superficie producto tensorial de B´ezier —
9.3 Formas polares del producto tensorial de B´ezier — 9.4 Conversi´on entre las
formas monomial y de B´ezier — 9.5 Algoritmo de de Casteljau — 9.6 Derivadas
— 9.7 Conexiones simples Cr
— 9.8 Interpolaci´on bic´ubica C1
por trozos —
9.9 Superficies de topolog´ıa arbitraria — 9.10 Parametrizaci´on singular —
9.11 Splines bic´ubicos C1
de topolog´ıa arbitraria — 9.12 Ejercicios
La manera m´as sencilla de construir una superficie consiste en barrer una
curva en el espacio, por ejemplo en la representaci´on de B´ezier. Los puntos
de control de esta curva se mueven a su vez siguiendo curvas de B´ezier, cuyos
puntos de control definen la superficie.
La representaci´on de la superficie por medio de estos puntos de control tiene
propiedades similares a la representaci´on de B´ezier univariada. Por esta raz´on
se puede trabajar con estas superficies aplicando los algoritmos para curvas.
Tambi´en, se pueden construir vol´umenes multidimensionales barriendo una
superficie o un volumen en el espacio de manera que sus puntos de control se
mueven a lo largo de diversas curvas. An´alogamente se obtienen mallas de
control con propiedades similares de las de representaciones de curvas.
9.1 Productos tensoriales
Para mostrar como se construye una superficie producto tensorial a partir de
curvas, sean
A0(u), . . . , Am(u) y B0(v), . . . , Bn(v)
dos conjuntos de funciones independientes y consideramos la curva
p(u) =
m
i=0
aiAi(u) ,
126 9. Superficies producto tensorial
Cada uno de los puntos de control de esta curva yace sobre una curva de
B´ezier
ai = ai(v) =
n
j=0
bijBj(v) .
La superficie p dada por
p(u, v) =
i j
bijAi(u)Bj(v) .
se denomina superficie producto tensorial
Es f´acil ver que los productos AiBj tambi´en son linealmente independientes.
Observaci´on 1: El producto de dos funciones es una funci´on producto
tensorial especial
i
aiAi(u) ·
j
bjBj(v) =
i j
aibjAi(u)Bj(v) .
Observaci´on 2: La expresi´on uv + (1 − u)(1 − v) es una funci´on producto
tensorial. N´otese sin embargo que esta expresi´on no es el producto tensorial
de una funci´on de u y una funci´on de v, vea la Figura 9.1.
Figura 9.1: La funci´on uv + (1 − u)(1 − v).
Observaci´on 3: Sean Ai(u) y Bj(v) los polinomios de Lagrange, ver 4.2,
con nodos u0, . . . , um y v0, . . . , vn definidos por Ai(uk) = δi,k y Bj(vl) = δj,l
tal como la ilustra en la Figura 9.2. Entonces la superficie producto tensorial
p(u, v) =
i j
pijAi(u)Bj(v)
se denomina superficie de Lagrange. Esta superficie interpola los puntos
pij, como ilustra la Figura 9.3.
9.2. Superficies producto tensorial de B´ezier 127
Figura 9.2: Polinomios de Lagrange.
Figura 9.3: Superficie de interpolaci´on.
9.2 Superficies producto tensorial de B´ezier
En esta secci´on veremos como extender a las superficies tensoriales de B´ezier
las t´ecnicas desarrolladas para curvas. Esto tambi´en facilitar´a la extensi´on
de las t´ecnicas de B-splines al caso de superficies.
Una superficie polin´omica b(u) = b(u, v) es de grado m = (m, n) si es de
grados m y n en u y v, respectivamente. La pareja de transformaciones afines
u = c1(1 − s) + d1s, v = c2(1 − t) + d2t
mantiene invariante el grado de b, es decir, b(s, t) = b(u(s, t)) es tambi´en
de grado m en s = (s, t). El polinomio b(s, t) se puede considerar como un
polinomio de grado n en t cuyos coeficientes son polinomios de grado m en
s. Entonces b(s, t) tiene la representaci´on de B´ezier
b(s, t) =
i
bi(t)Bm
i (s) =
i j
bijBm
i (s)Bn
j (t) ,
o en notaci´on m´as compacta
b(s) =
i
biBm
i (s) ,
donde i = (i, j).
128 9. Superficies producto tensorial
Los coeficientes bi se denominan los puntos de B´ezier de b(u) sobre el
intervalo [c, d] = [c1, d1] × [c2, d2]. Cuando estos puntos se conectan como
indica la Figura 9.4 nos referimos a la configuraci´on resultante como la malla
de B´ezier de b. La variable s se denomina par´ametro local y u es el
par´ametro global.
Figura 9.4: Una malla de B´ezier.
Como en el caso de las curvas, las superfices tensoriales de B´ezier heredan
las propiedades de los polonomios de Bernstein.
• La simetr´ıa de los polinomios de Bernstein implica
b(u) =
i,j
bijBm
ij (s) =
i,j
bm−i,jBm
i,j(¯s) ,
donde ¯s = (1 − s, t), etc.
La utilidad pr´actica de la simetr´ıa consiste en que para parametrizar el mismo
parche tomando como origen otro v´ertice, simplemente se invierte el orden
de todas las filas o columnas, o de ambas.
Como una curva pasa por su primer y ´ultimo punto de B´ezier, se tiene que
• el borde de la malla de B´ezier determina las cuatro curvas frontera
del parche b[c, d].
Por ejemplo, se tiene
b(c1, v) =
j
b0jBn
j (v) .
En particular, resulta que
• las cuatro esquinas del parche y de su malla B´ezier coinciden, esto es:
b(c1, d1) = b00, b(c1, d2) = b0n , etc.
9.2. Superficies producto tensorial de B´ezier 129
Como los polinomios de Bernstein suman uno,
• sus productos tambi´en forman una partici´on de la unidad,
i
Bm
i =
j
1 · Bn
j = 1 .
• Por lo tanto b(u) es una combinaci´on af´ın de sus puntos de B´ezier
y la representaci´on de B´ezier afinmente invariante .
Como los polinomios de Bernstein son no negativos en [0, 1], se tiene que
• para todo u ∈ [c, d], b(u) es una combinaci´on convexa de los bi.
Por lo tanto
• el parche b[c, d] est´a contenido en la c´apsula convexa de sus puntos
de B´ezier.
Observaci´on 4: Usando la propiedad de la c´apsula convexa para cada com-
ponente se obtiene una caja de acotaci´on para el parche b[c, d],
b(u) ∈ [min
i
bi, max
i
bi] para u ∈ [c, d] ,
donde minbi es el punto cuya primera coordenada es el m´ınimo de las
primeras coordenadas de los bi; y de modo similar se definen las dem´as
coordenadas de minbi. La definici´on de maxbi es an´aloga. Ver la Figura
9.5.
Figura 9.5: La caja de acotaci´on.
130 9. Superficies producto tensorial
9.3 Formas polares del producto tensorial
Sean A0(u), . . . , Am(u) y B0(v), . . . , Bn(v) bases para los espacios vectoriales
de polinomios, hasta grado m y n, respectivamente.
Denotamos por
Ai[u1 . . . um] y Bj[v1 . . . vn]
las formas polares correspondientes. Entonces la superficie producto tensorial
b(u, v) =
i j
bijAi(u)Bj(v)
tiene forma polar tensorial
b[u1 . . . um, v1 . . . vn] =
i j
bijAi[u1 . . . um]Bj[v1 . . . vn] .
Esta forma polar satisface las siguientes tres propiedades.
• b[u1, . . . , um, v1, . . . , vn] coincide con b(u, v) sobre su diagonal,
esto es b[u, . . . , u, v, . . . , v] = b(u, v)
• b[u1, . . . , um, v1, . . . , vn] es sim´etrica en las variables ui y en las varia-
bles vj,
esto es
b[s1 . . . sm, t1 . . . tn] = b[u1 . . . um, v1 . . . vn]
para cualesquiera permutaciones (s1, . . . , sm) y (t1, . . . , tn) de (u1, . . . , um) y
(v1, . . . , vn), respectivamente.
• b[u1, . . . , um, v1, . . . , vn] es af´ın en cada una de las variables.
Los puntos de B´ezier de b(u, v) sobre un intervalo [a, b] × [c, d] se pueden
obtener directamente del teorema fundamental 3.2. Para cualquier u fijo, el
polinomio b(v) = b(u, v) tiene puntos de B´ezier
bj(u) = b[u m. . . u, c n−j
. . . c d j
. . . d] , j = 0, . . . , n ,
y para cada j, el polinomio bj(u) tiene puntos de B´ezier
bij = b[a m−i. . . a b i. . . b, c n−j
. . . c d j
. . . d] .
Entonces hemos demostrado la siguiente versi´on del teorema fundamental
9.4. Conversi´on entre las formas monomial y de B´ezier 131
El polinomio b(u, v) del producto tensorial cuya forma polar es
b[u1, . . . , um, v1, . . . , vn] tiene puntos de B´ezier
bij = b[a n−i. . . a b i. . . b, c m−j
. . . c d j
. . . d]
sobre el intervalo [a, b] × [c, d].
La forma polar b[u1, . . . , um, v1, . . . , vn] del producto tensorial se puede cal-
cular utilizando la generalizaci´on del algoritmo de de Casteljau a partir de
los puntos
bj(u) = b[u1 . . . um, c m−j
. . . c d j
. . . d] , j = 0, . . . , m ,
y ´estos a su vez, se pueden determinar a partir de los bij. Como los puntos
de B´ezier son ´unicos, el polinomio b(u, v) de un producto tensorial de grado
≤ (m, n) tiene una ´unica forma polar b[u1, . . . , um, v1, . . . , vn].
9.4 Conversi´on entre las formas monomial y
de B´ezier
La forma monomial de una superficie tensorial polin´omica
b(u, v) =
m
k=0
n
l=0
akl
m
k
n
l
uk
vl
se puede expresar en forma abreviada usando la siguiente notaci´on vectorial
b(u) =
m
k=0
ak
m
k
uk
,
donde u = (u, v), k = (k, l) y m = (m, n).
Convertir b(u) de la forma monomial a la forma de B´ezier sobre [0, 1]x[0, 1]
resulta sencillo. Aplicando dos veces la f´ormula de conversi´on de 2.8 se obtiene
b(u) =
m
i=0
biBm
i (u) ,
donde
bi =
i
k=0
i
k
ak .
Similarmente, aplicando dos veces la expresi´on de 2.9 se obtiene la f´ormula
para convertir de la representaci´on de B´ezier a la monomial
ak =
k
i=0
(−1)k+l−i−j k
i
bi .
132 9. Superficies producto tensorial
Observaci´on 5: Si b(u) si es un polinomio bilineal, es decir, una aplicaci´on
bi-af´ın, entonces ak = 0 para todo k ≤ (1, 1). Por lo tanto, los puntos de
B´ezier de b(u) est´an dados por
bij = a00 + ia10 + ja01 + ija11
= b(i/m, j/n) .
Esta propiedad se denomina precisi´on bilineal de la representaci´on de
B´ezier.
Figura 9.6: Malla de B´ezier uniforme bilineal.
9.5 Algoritmo de de Casteljau
Una superficie polin´omica en la representaci´on de B´ezier es,
b(u) =
i
biBm
i (s) ,
y se puede evaluar en s = (s, t) aplicando el algoritmo de la Casteljau para
curvas, (m + 2) o (n + 2) veces. Esto conduce al siguiente algoritmo para
superficies:
Use el algoritmo de de Casteljau para calcular
1. los puntos bi =
n
j=0 bijBn
j (t) y
2. el punto b(u) de la superficie dado por
m
i=0 biBm
i (s) .
Observaci´on 6: Por ejemplo, considere el polinomio b(s, t) = bijB3,2
ij (s, t)
cuya matriz de B´ezier aparece en la esquina superior izquierda de la
Figura 9.7. Esta Figura ilustra el algoritmo mostrando los 8 = 4 · 2 pa-
sos de de Casteljau para t = 1/2 y tres pasos para s = 2/3 en la ´ultima fila.
Cada flecha corresponde a un paso.
9.6. Derivadas 133
Figura 9.7: Evaluaci´on de un producto tensorial con el algoritmo de de Casteljau.
Observaci´on 7: Tambi´en podemos aplicar el algoritmo de de Casteljau
B´ezier primero a la filas de B´ezier para s = 2/3 y posteriormente a las
columnas para t = 1/2 tal y como se ilustra con las matrices y flechas a
trazos. Es m´as, se puede alternar arbitrariamente las operaciones sobre filas
y columnas, como se ilustra en la Figura 9.7 con matrices y flechas punteadas,
lo cual es importante pues el corte del algoritmo var´ıa si m es distinto de n.
Observaci´on 8: La propiedad de subdivisi´on del algoritmo de de Casteljau
descrita en 3.3 muestra que los puntos de B´ezier de b(s, t) sobre [0, 1] ×
[0, t] y [0, 1] × [t, 1] son ciertos B´ezier puntos intermedios calculados con este
algoritmo.
Observaci´on 9: El polinomio b(u, v) definido en la Figura 9.8 tiene matrices
de B´ezier 

0 0 0 6
9 1 0 7
10 1 1 10

 y


10 1 1 10
11 1 2 13
4 0 4 18

 .
sobre [0, 1] × [0, 1/2] y [0, 1] × [1/2, 1], respectivamente.
9.6 Derivadas
Las derivadas de una superficie tensorial tambi´en se pueden obtener usando
los algoritmos para curvas. La primera derivada parcial de una superficie
b(s) = biBm
i (s) ,
tiene la representaci´on de B´ezier
bs =
∂
∂s
b = m ∆10
biBm−1,n
i (s) ,
134 9. Superficies producto tensorial
Figura 9.8: Evaluaci´on usando el algoritmo de de Casteljau alternando s y t.
donde ∆10
bi = bi+1,j − bi,j, vea la Figura 9.9.
Figura 9.9: Los puntos de B´ezier ∆10
bi de la derivada bu.
Derivando repetidamente se obtiene la f´ormula general
∂q+r
∂sq∂tr
b =
m!
(m − q)!
∆q
biBm−q
i ,
donde ∆qr
= ∆10
∆q−1,r
= ∆01
∆q,r−1
y m! = m!n! y q = (q, r). En
particular, se tiene que b00, b10, b01 generan el plano tangente de b en
(u, v) = (0, 0) y que la torsi´on cruzada est´a dada por
bst(0, 0) = mn∆11
b00
= mn(b11 − b10 − b01 + b00) ,
vea la Figura 9.10.
Observaci´on 10: Por la simetr´ıa de los polinomios de Bernstein la propiedad
anterior es tambi´en v´alida en las otras tres esquinas del parche definido sobre
[0, 1]x[0, 1].
9.7. Conexiones simples Cr
135
Figura 9.10: La torsi´on cruzada ∆11
b00.
9.7 Conexiones simples Cr
El teorema de St¨ark de 3.10 conduce tambi´en a una condici´on necesaria y
suficiente para garantizar la conexi´on Cr
de dos parches b(u) y c(u) da-
dos por mallas de B´ezier b0, . . . , bm y c0, . . . , cm sobre [u0, u1] × [v0, v1] y
[u1, u2] × [v0, v1], respectivamente:
Las derivadas de b y c coinciden hasta orden r sobre u = u1 si y
s´olo si los puntos
bm−r,j, . . . , bmj = c0j, . . . , crj
forman el pol´ıgono de B´ezier compuesto de una curva de grado r
sobre [u0, u1, u2] para todo j = 0, . . . , n.
La Figura 9.11 ilustra una conexi´on C1
simple para m = 3, n = 3 y donde
∆i = ∆ui.
Figura 9.11: Conexi´on C1
de dos parches bic´ubicos.
136 9. Superficies producto tensorial
9.8 Interpolaci´on C1
bic´ubica por trozos
Los esquemas de interpolaci´on para curvas tambi´en se pueden extender f´acil-
mente a productos tensoriales. Ilustramos este proceso para el caso de inter-
polaci´on c´ubica discutida en 4.5.
Dados (m + 1) × (n + 1) puntos pij a interpolar que corresponden a los
valores de los par´ametros (ui, vj), para i = 0, . . . , m y j = 0, . . . , n, nuestro
objetivo es construir una superficie producto tensorial, s(u, v) bic´ubica C1
por trozos tal que s(ui, vj) = pij. En concreto, para cada (i, j) construimos
puntos de B´ezier b3i,3j, . . . , b3i+3,3j+3 que definen el segmento de s sobre
[ui, ui+1] × [vj, vj+1].
Sea P = [pij] la matrix (m + 1) × (n + 1) formada por los puntos de interpo-
laci´on. N´otese que los elementos de P son puntos y no escalares. Sean S y T
las matrices (m + 1) × (3m + 1) y (n + 1) × (3n + 1) de los esquemas de inter-
polaci´on lineales sobre las abscisas u0, . . . , um y v0, . . . , vn, respectivamente,
tal como se describe en la Observaci´on 9 de 4.5.
Entonces la interpolaci´on tensorial basada en las matrices S y T se describe
en dos pasos.
1 Interpole cada columna de P, calculando A = St
P.
2 Interpole cada fila de A, calculando B = AT.
Entonces los puntos de B´ezier buscados son los elementos de la matriz B =
[bij] = St
PT. La Figura 9.12 presenta una ilustraci´on.
Note que la interpolaci´on de las filas y de las columnas es intercambiable.
Esto es, por interpolaci´on de filas se obtiene Ct
= PT y por interpolaci´on de
columnas resulta entonces B = St
C = St
PT.
Claramente s(ui, vj) = b3i,3j = pi,j y si S y T generan interpoladores C1
,
s(u, v) es diferenciable en u, y como los pasos 1 y 2 conmutan, tambi´en es
diferenciable respecto a v.
Observaci´on 11: Una aproximaci´on a la superficie se puede obtener de
manera an´aloga al presentado en 4.6 para curvas.
9.9 Superficies de topolog´ıa arbitraria
La interpolaci´on proporcionada por superficies producto tensorial es excelente
para interpolar los v´ertices de una malla rectangular, en cada nodo de la
malla inciden exactamente 4 cuadril´ateros. Sin embargo no toda superficie
se puede descomponer en parches rectangulares, tal que sus fronteras formen
una malla regular. Esto se ilustra en la Figura 9.13.
9.10. Parametrizaci´on singular 137
Figura 9.12: Esquema de interpolaci´on del producto tensorial.
En estos casos, una soluci´on es refinar la malla y transformarla en una malla
no regular de cuadril´ateros, como en la Figura 9.14.
A´un as´ı, resulta complicado construir una superficie C1
con trozos rectangu-
lares que formen una malla arbitraria. Las construcciones dadas en 9.7 s´olo
permiten conectar tetraedros de parches en v´ertices interiores. Una mane-
ra de resolver este problema ser´a estudiada en los cap´ıtulos 13 y 14. Otra
opci´on consiste en la utilizaci´on de parametrizaciones singulares, las cuales
consideraremos en el resto de este cap´ıtulo.
9.10 Parametrizaci´on singular
Considere un parche de B´ezier
b(u, v) = bijBmn
ij (u, v) ,
con una singularidad en (u, v) = o, esto es, con b00 = b10 = b01 = b11 tal
como se ilustra en la Figura 9.15 para m = n = 3.
Las derivadas parciales bu y bv son cero en (u, v) = (0, 0), o sea, la parametriza-
ci´on de b es singular en (0, 0) y la expansi´on de Taylor de b alrededor (0, 0)
es de la forma
b(u, v) = aijui
vj
,
donde a10 = a01 = a11 = o. En general, el plano tangente de b en (0, 0) no
138 9. Superficies producto tensorial
Figura 9.13: Malla no regular.
Figura 9.14: Dos posibles conversiones a mallas de cuadril´ateros.
est´a definido. Sin embargo, si b00, b20, b02 son independientes y coplanares
con b21 y b12, si adem´as b21 yace al mismo lado de la tangente b00b20 que
b02 y si b12 yace al mismo lado de la tangente b00b02 que b20, entonces
b(u, v) admite una parametrizaci´on regular en una vecindad de (0, 0). En
particular, en este caso b(u, v) tiene un plano tangente bien definido [Reif
’93, Teorema 3.3].
9.11 Splines bic´ubicos C1
de topolog´ıa arbitraria
En general, es posible construir superficies de B´ezier bic´ubicas, C1
por trozos,
de topolog´ıa arbitraria, si trabajamos con parches regulares m´as los parches
singulares descritos en 9.10, [Reif ’93]. Cualesquiera dos parches adyacentes
tendr´an conexi´on C1
simple, pero algunos de los parches ser´an singulares. En
primer lugar describiremos la construcci´on de este tipo de spline y posteri-
ormente utilizaremos esta t´ecnica para el caso de una malla de cuadril´ateros
con topolog´ıa arbitraria.
9.11. Splines bic´ubicos C1
de topolog´ıa arbitraria 139
Figura 9.15: Una malla de B´ezier singular.
Una superficie bic´ubica con conexiones C1
est´a determinada por los puntos
de B´ezier internos de cada parche, marcados con c´ırculos ◦ en la Figura 9.16.
Los puntos de B´ezier de la frontera se denotan por y • calculados como el
punto medio del segmento que une los puntos de B´ezier adyacentes.
N´otese que los puntos de B´ezier interiores vecinos a una esquina compartida
por tres o m´as de cuatro parches deben coincidir, para que las conexiones
a lo largo de las curvas que emanan de este punto sean C1
. Un punto que
tiene esta propiedad se llama v´ertice extraordinario. Los parches ubicados
alrededor de un v´ertice extraordinario tienen un mismo plano tangente en
ese punto solamente si los puntos de B´ezier interiores conectados por l´ıneas
punteadas en la Figura 9.16 son coplanares y si satisfacen las condiciones
dadas en 9.10.
Figura 9.16: Un spline C1
bic´ubico.
140 9. Superficies producto tensorial
Observaci´on 12: La condici´on de coplanaridad mencionada anteriormente
puede ser satisfecha, en general, solamente si cada parche b tiene a lo sumo
un v´ertice extraordinario. Esta hip´otesis siempre se cumplir´a si cada parche
se subdivide en cuatro subparches.
Observaci´on 13: Los puntos de B´ezier interiores ◦ determinan el spline
completamente, pero deben satisfacer ciertas restricciones para garantizar
que la superficie sea C1
. A dichos puntos Reif los denomina puntos de
cuasi control.
Observaci´on 14: Reif tambi´en ha propuesto una aplicaci´on proyectiva que
convierte mallas de control arbitrarias en mallas de cuasi control que satis-
facen las condiciones de arriba, vea el Ejercicio 6. En 14.6. presentamos un
m´etodo m´as general.
9.12 Ejercicios
1 Generalice el algoritmo de generaci´on de curvas de 3.5 a superficies pro-
ducto tensorial.
2 Generalice el algoritmo de generaci´on de curvas por diferencias hacia
adelante presentado en 3.6 a superficies producto tensorial.
3 Generalice el algoritmo de intersecci´on de curvas de 3.7 a productos ten-
soriales.
4 Implemente un esquema de interpolaci´on basado en los splines C1
bic´ubicos
de 9.11 para interpolar los v´ertices de una malla arbitraria de cuadril´ateros.
5 La subdivisi´on de cada parche bic´ubico del spline C1
de 9.10 en cuatro
subparches sobre [0, 1/2]2
, . . . , [1/2, 1]2
corresponde a un refinamiento de
la malla de cuasi control, vea la Observaci´on 13. Desarrolle esta cons-
trucci´on.
6 Considere 2n vectores c1, . . . , c2n que generan IR3
y sea ci = cos(iπ
n ).
Demuestre que los vectores d1, . . . , d2n dados por
[d1 . . . d2n] = [c1 . . . c2n]





c0 c1 . . . c2n−1
c−1 c0 . . . c2n−2
...
...
...
...
c1−2n c2−2n . . . c0





son coplanares.
7 Extienda la interpolaci´on de Hermite para curvas, discutida en 4.4, al
caso de las superficies tensoriales en su representaci´on de B´ezier.
10 Representaciones de B´ezier de
parches triangulares
10.1 Polinomios de Bernstein multivariados — 10.2 Simples de B´ezier —
10.3 Precisi´on lineal — 10.4 El algoritmo de de Casteljau — 10.5 Derivadas —
10.6 Convexidad de superficies funcionales — 10.7 Limitaciones de la convexidad
— 10.8 Ejercicios
La representaci´on de B´ezier sobre tri´angulos es la generalizaci´on natural de
la representaci´on de B´ezier univariada y es ´util particularmente en el caso de
datos dispersos. Con la excepci´on de la propiedad de variaci´on decreciente,
b´asicamente todas las propiedades pueden ser generalizadas. Conociendo la
representaci´on de B´ezier sobre un tri´angulo, los resultados se pueden extender
f´acilmente a dimensi´on mayor obteni´endose la representaci´on de B´ezier sobre
un simplex multidimensional, v´ease el Cap´ıtulo 19.
10.1 Polinomios de Bernstein multivariados
Debido a su simetr´ıa, la mejor descripci´on de los polinomios de Bernstein es
en coordenadas baric´entricas. Sea A un tri´angulo con v´ertices a0, a1, a2 en
IR2
y sea Ù = [u v w]t
las coordenadas baric´entricas de un punto x ∈ IR2
con
respecto a A. Entonces escribimos x = AÙ = a0u + a1v + a2w, vea 1.2.
Procediendo como en 2.1, el c´alculo de la expansi´on trinomial
1 = (u + v + w)n
=
i,j,k
n!
i!j!k!
ui
vj
wk
,
donde 0 ≤ i, j, k, i + j + k = n, conduce a los polinomios de Bernstein de
grado n
Bn
ijk(u, v, w) =
n!
i!j!k!
ui
vj
wk
,
estos se pueden abreviar como
B = Bn
(Ù) =
n
Ù ,
142 10. Representaciones de B´ezier de parches triangulares
donde = (i, j, k) ∈ {0, 1, . . . , n}3
y | | = i+j +k = n. La Figura 10.1 ilustra
dos ejemplos y la Figura 10.2 provee el listado can´onico de los polinomios de
Bernstein de grado n = 3.
Figura 10.1: Dos polinomios de Bernstein de grado 2.
B300 B210 B120 B030
B201 B111 B021
B102 B012
B003
uuu 3u2
v 3uv2
vvv
3u2
w 6uvw 3v2
w
3uw2
3vw2
www
Figura 10.2: Los polinomios de Bernstein c´ubicos ordenados can´onicamente.
N´otese que s´olo dos de las tres variables de los Bn
(Ù) son independientes.
Como es usual Ù representa par´ametro local con respecto a A y x es el
par´ametro global.
Estas definiciones se pueden generalizar a un simplex A de dimensi´on d  1.
Los correspondientes polinomios de Bernstein multivariados se definen de
manera an´aloga
Bn
(Ù) =
n
Ù =
n!
i0! . . . id!
ui0
0 . . . uid
d ,
donde = (i0, . . . , id) ∈ {0, 1, . . . , n}d+1
, | | = i0 + · · · + id = n, y Ù =
(u0, . . . , ud) son coordenadas baric´entricas de un punto x respecto a A. Los
polinomios de Bernstein en dimensi´on d verifican las propiedades siguientes:
• Los polinomos de Bernstein de grado n son linealmente indepen-
dientes.
Esto se puede verificar dividiendo
b Ù = 0
10.2. Simples de B´ezier 143
por un
0 , lo cual conduce a
b vi1
1 . . . vid
d = 0 ,
donde vk = uk/u0. Como los monomios son linealmente independientes se
tiene que todos los b son cero, lo cual termina la verificaci´on.
Existen n+d
d polinomios de Bernstein de grado n. En consecuencia dichos
polinomios
• forman una base para el espacio de polinomios de grado total ≤ n,
sobre d variables.
• son sim´etricos, esto es, Bn
(Ù) = Bn
π( )(π(Ù)) para cualquier per-
mutaci´on π.
• sus ra´ıces yacen sobre las caras del simplex A. En particular
Bn
( k) =
1
0
para
ik = n
ik  n ,
donde 0, . . . , d son las columnas de la matriz identidad de dimensi´on
d + 1.
• forman una partici´on de la unidad
Bn
(Ù) ≡ 1 .
• son positivos para Ù  Ó,
lo cual es la raz´on porque usualmente se trabaja con polinomios de Bernstein
definidos sobre su simplex de referencia A.
• satisfacen la relaci´on de recurrencia
Bn
(Ù) = u0Bn−1
− 0
+ · · · + udBn−1
− d
,
donde B0
Ó = 1 y Bn
= 0 si tiene alguna coordenada negativa y | − j| = n−1.
10.2 Simples de B´ezier
Como los polinomios de Bernstein forman una base, toda superficie polin´omica
b(x) tiene una ´unica representaci´on de B´ezier,
b(x) = b Bn
(Ù) ,
144 10. Representaciones de B´ezier de parches triangulares
Figura 10.3: La malla de B´ezier de una superficie c´ubica.
con respecto a un simplex de referencia a0 . . . ad. Los coeficientes b se
denominan puntos de B´ezier de b y son los v´ertices de la malla de B´ezier
de b(x) sobre el simplex A, vea la Figura 10.3, donde d = 2 y n = 3.
Las propiedades de simetr´ıa de los polinomios de Bernstein se traducen en
propiedades correspondientes para las representaciones de B´ezier de superfi-
cies:
• Los puntos bπ( ) son los puntos de B´ezier de b con respecto a
π−1
(a0 . . . ad), para cualquier permutaci´on π.
• Los puntos de B´ezier de b(Ü) restringido a cualquier cara de di-
mensi´on inferior de A coincide con la “cara” de la malla de B´ezier.
Por ejemplo para cualquier δ  d
b(x) = bi0 ... iδ0 ... 0Bn
i0 ... iδ
(Ú) ,
donde Ú son las coordenadas baric´entricas de x con respecto a a0 . . . aδ.
En particular, en los v´ertices del simple a0 . . . ad se tiene
b(a0) = bn0 ... 0 , . . . , b(ad) = b0 ... 0n ,
y que
n(bn−1,1,0,...,0 − bn,0,...,0)
es la derivada direccional de b respecto a a1 − a0 en a0.
Como los polinomios de Bernstein suman uno,
• b(x) es una combinaci´on af´ın de sus puntos de B´ezier.
En consecuencia,
• la representaci´on de B´ezier es invariante por transformaciones afines.
10.3. Precisi´on lineal 145
Como los polinomios de Bernstein son no negativos sobre el simplex de refe-
rencia,
• b(x) es una combinaci´on convexa para todo Ù ≥ Ó.
Por lo tanto,
• la superficie b(A) yace en la c´apsula convexa de sus puntos de control.
10.3 Precisi´on lineal
Todo polinomio lineal
b(Ù) = u0p0 + · · · + udpd = PÙ , 1 = u0 + · · · + ud ,
admite la siguiente representaci´on de B´ezier de grado n  1.
b(Ù) = [u0p0 + · · · + udpd] Bn−1
(Ù)
= b Bn
(Ù) ,
los puntos
b = [i0p0 + · · · + idpd]/n = P /n
son los v´ertices del refinamiento uniforme del simplex p0 . . . pd, vea la
Figura 10.4.
Figura 10.4: Partici´on uniforme del tri´angulo pqr.
Observaci´on 1: La evaluaci´on de un polinomio lineal b(Ù) en los puntos b
resulta en sus puntos de B´ezier,
b( /n) = b o b(Ù) = b( /n)Bn
(Ù) .
146 10. Representaciones de B´ezier de parches triangulares
Esta propiedad de la representaci´on de B´ezier se denomina precisi´on lineal.
Observaci´on 2: Como consecuencia de la Observaci´on 1, la superficie fun-
cional
b(x) =
x
b(x)
, donde b(x) = b Bn
,
tiene puntos de B´ezier [at
b ]t
, donde na = [a0 . . . ad] , como se ilustra en
la Figura 10.5. Los b se denominan los ordenadas de B´ezier y las a las
abscisas de B´ezier de b(x).
Figura 10.5: Una funci´on cuadr´atica con su poliedro de B´ezier.
10.4 El algoritmo de de Casteljau
Un simplex de B´ezier b = b Bn
se puede evaluar f´acilmente usando una
generalizaci´on del algoritmo de de Casteljau. Usando repetidamente las rela-
ciones de recurrencia de los polinomios de Bernstein, tal como se hizo para
curvas, primero se obtiene
b(x) =
| |=n
b Bn
(Ù)
=
| |=n−1
b Bn−1
(Ù)
y posteriormente, despu´es de n − 2 pasos
b(x) =
| |=0
b B0
(Ù) = b000 ,
donde
b = [b + 0
. . . b i+ d
]Ù .
La Figura 10.6 ilustra un ejemplo.
Los puntos intermedios b , | | ≤ n del algoritmo de de Casteljau, en su or-
denaci´on can´onica, forman un esquema tetra´edrico. Si x yace en un simplex
A, entonces todos los pasos del algoritmo de de Casteljau son combinaciones
convexas, lo cual garantiza su estabilidad num´erica.
10.5. Derivadas 147
Figura 10.6: La construcci´on de de Casteljau.
10.5 Derivadas
Las derivadas parciales de un polinomio de Bernstein son f´aciles de calcular.
Sean u0, . . . , ud las variables independientes. Entonces se obtiene
∂
∂uj
Bn
= nBn−1
− j
, etc.,
donde B = 0, si tiene una coordenada negativa. A continuaci´on considere
una recta
x(t) = p + tv ,
donde v = a0v0 + · · · + advd y v0 + · · · + vd = 0. Esta recta determina la
curva b(x(t)) sobre la superficie
b(x) = b(Ù) = b Bn
(Ù) .
Su derivada respecto a t, en t = 0 est´a dada por
Dvb(p) =
d
dt
b (x(t))
t=0
= v0
∂
∂u0
b + · · · + vd
∂
∂ud
b
= n c Bn−1
,
148 10. Representaciones de B´ezier de parches triangulares
donde
c = v0b + 0
+ · · · + vdb + d
,
lo cual se abrevia por c = ∆vb tal como se ilustra en la Figura 10.7.
Figura 10.7: Las diferencias c .
De manera similar se pueden calcular derivadas de orden superior. Una
derivada direccional r-´esima Dv1
. . . Dvr
b tiene coeficientes de B´ezier
∆v1
. . . ∆vr
b , donde | | = n − r. El operador diferencia ∆v
conmuta con
los pasos del algoritmo de de Casteljau debido a que tomar combinaciones
afines es una operaci´on conmutativa, vea 2.6.
Por lo tanto podemos calcular la derivada r-´esima, realizando n − r pasos de
de Casteljau seguidos por r pasos de diferencias. En particular, se obtiene que
los puntos bguatda.com/cmx.p10...0, . . . , bguatda.com/cmx.p0...01 calculados en el pen´ultimo paso de de Casteljau
generan el plano tangente de b en x.
Observaci´on 3: Si d = 2, podemos considerar la malla de B´ezier de un
polinomio b(x) = b Bn
(Ù) como una funci´on lineal por trozos p(x) sobre
a0a1a2. Entonces
• La derivada direccional Dvp(x) de la malla de B´ezier contiene los pun-
tos de B´ezier de Dvb(x).
Este hecho se ilustra en la Figura 10.8 para una superficie funcional.
10.6 Convexidad de superficies funcionales
En la presente secci´on nos restringiremos al caso de dos variables. Esto es,
d = 2 y Ù = [u, v, w]t
.
Dada la representaci´on de B´ezier de un polinomio b(x) sobre un tri´angulo
a0a1a2, se denomina poliedro de B´ezier de b(x) sobre A al polinomio
p(x) a trazos que interpola las ordenadas b en las correspondientes abscisas.
Demostraremos que
10.6. Convexidad de superficies funcionales 149
Figura 10.8: La derivada de una malla de B´ezier.
si el poliedro de B´ezier p(x) de un polinomio b(x) es convexo,
entonces b(x) es tambi´en convexo.
El rec´ıproco no es cierto en general. V´ease 3.13, Ejercicio 11.
Para la prueba, sea
v0 = a2 − a1 , v1 = a0 − a2 , v2 = a1 − a0
tal como se ilustra en la Figura 10.3 y sea
bµν = Dvµ
Dvν
b
la segunda derivada de b con respecto a las direcciones vµ y vν, y pµν(x)
denotar´a su poliedro de B´ezier.
El poliedro de B´ezier p(x) es convexo si y s´olo si cada par de tri´angulos
adyacentes forman una funci´on convexa. Esto se satisface precisamente, si
p01 ≤ 0, p12 ≤ 0 y p20 ≤ 0 ,
vea la Figura 10.9. Debido a la propiedad de la c´apsula convexa esto implica
que b01 ≤ 0, b12 ≤ 0, y b20 ≤ 0, y tambi´en que
b00 = −b01 − b02 ≥ 0 ,
b11 = −b12 − b10 ≥ 0 ,
b22 = −b20 − b21 ≥ 0 .
Como cada direcci´on v ∈ IR2
se puede expresar como
v = αvµ + βvν , donde αβ ≤ 0 y µ, ν ∈ {0, 1, 2} ,
150 10. Representaciones de B´ezier de parches triangulares
Figura 10.9: Convexidad de una malla de B´ezier.
podemos rescribir la segunda derivada DvDvb como la suma de tres t´erminos
no negativos
DvDvb = α2
bµµ + 2αβbµν + β2
bνν ≥ 0 ,
lo cual prueba la convexidad de b. 3
Observaci´on 4: Un pol´ıgono convexo en el plano siempre representa una
curva convexa. Para mallas de B´ezier triangulares en el espacio esto no es
cierto en general, tal como lo ilustra la Figura 10.10.
Figura 10.10: Parche cuadr´atico no-convexo con malla de B´ezier convexa.
10.7 Limitaciones de la convexidad
Sabemos que los polinomios funcionales cuyos poliedros de B´ezier son con-
vexos tambi´en son convexos. El rec´ıproco, sin embargo, no es cierto en gene-
ral. Considere el polinomio cuadr´atico
b = 3B200 − B101 + 3B002 ,
ilustrado junto con su poliedro de B´ezier en la Figura 10.11.
Esta malla de B´ezier es claramente no convexa, pero b es convexo. Concre-
tamente, las segundas derivadas parciales son b00 = b11 = 6 y b01 = 2.
10.7. Limitaciones de la convexidad 151
Figura 10.11: Un polinomio convexo con malla no convexa.
Entonces para cualquier v = αv0 + βv1 = o se tiene
DvDvb = α2
b00 + 2αβb01 + β2
b11
= 4(α2
+ β2
) + 2(α + β)2
 0 ,
lo cual significa que b es estrictamente convexo.
Note que todos los poliedros de B´ezier de b de grado m´as alto tambi´en son
no convexos, pues para cualquier representaci´on de B´ezier de grado n del
polinomio constante b01 = 2, las ordenadas de B´ezier son iguales a 2. Este
resultado es sorprendente porque los poliedros de B´ezier de b convergen a b
cuando n tiende a infinito, vea 11.9. Por lo tanto tenemos una secuencia de
funciones no convexas con un l´ımite estrictamente convexo.
Otro resultado negativo fue observado por Grandine [Grandine ’89]. Con-
sidere un cuadril´atero abdc no convexo tal como se ilustra en la Figura 10.12
y sean b y c dos polinomios con contacto C1
a lo largo del segmento ad. Si
b y c tienen mallas de B´ezier convexas sobre adc y abd, respectivamente,
entonces tienen que ser lineales sobre ad.
Figura 10.12: Dominio cuadrilateral no convexo.
Se desprende del contacto C1
que b14 = c14(= Dv1
Dv4
c) sobre ad. Como
existen constantes positivas α, β tales que v1 = αv2 + βv4, la convexidad de
152 10. Representaciones de B´ezier de parches triangulares
los poliedros de B´ezier implica
b11 = αb12 + βb14 ≤ 0 sobre la l´ınea ad
y tambi´en que b11 ≥ 0. Entonces b11 = 0, lo que termina la prueba.
Este resultado tiene tambi´en una consecuencia sorprendente. Supongamos
que b tiene un poliedro de B´ezier convexo sobre abc. Entonces sus poliedros
de B´ezier sobre los tri´angulos abd, bcd, y adc no pueden ser todos convexos
a menos que b sea lineal sobre las tres rectas ad, bd y cd.
Como b es convexo esto implica que b es lineal. Por lo tanto,
la subdivisi´on, tal como se describe en 11.3, no preserva
convexidad.
Sin embargo vea el Ejercicio 1 de 11.12.
10.8 Ejercicios
1 El polinomio de Bernstein Bn
(Ù) tiene un ´unico m´aximo sobre su tri´angulo
de referencia. Este m´aximo se alcanza en Ù = /n.
2 El operador de Bernstein B asigna a una funci´on f, un polinomio de
grado n
B[f] = f( /n)Bn
(Ù) .
Muestre que el operador de Bernstein aplica sobreyectivamente los
polinomios de grado m ≤ n sobre polinomios de grado m.
3 Verifique que el monomio uα
vβ
tiene la representaci´on de B´ezier de grado
n ≥ α + β
uα
vβ
=
α!β!γ!
n!
i
α
j
β
Bn
(u, v, w) ,
donde w = 1 − u − v, γ = n − α − β y α, β, γ ≥ 0.
4 Calcule la representaci´on de B´ezier sobre el tri´angulo 1
0
0
1
0
0 del poli-
nomio en base monomial de grado n
b(x, y) =
0≤i+j≤n
aijxi
yj
.
10.8. Ejercicios 153
5 Sea ∆αβ el operador diferencia definido recursivamente por
∆αβ
b = ∆α−1,β
b + 1− 3
− ∆α−1,β
b
= ∆α,β−1
b + 2− 3
− ∆α,β−1
b
y ∆00
b = b .
Demostrar que
∆αβ
b00n =
α
i=0
β
j=0
α
i
β
j
(−1)α+β−i−j
bijk ,
donde k = n − i − j.
6 Usando la expansi´on de Taylor y el Ejercicio 5 demuestre la siguiente
f´ormula de conversi´on de la representaci´on de B´ezier a la monomial
b Bn
(Ù) =
0≤α+β≤n
α
i
β
j
(−1)k−γ
b
n!
α!β!γ!
uα
vβ
,
donde γ = n − α − β.
Volltext algebra superior
11 T´ecnicas de B´ezier para parches
triangulares
11.1 Polinomios sim´etricos — 11.2 El teorema fundamental — 11.3 Subdivisi´on y
reparametrizaci´on — 11.4 Convergencia bajo subdivisi´on — 11.5 Generaci´on de
superficies — 11.6 El polinomio sim´etrico de la derivada — 11.7 Conexiones Cr
simples — 11.8 Elevaci´on de grado — 11.9 Convergencia por elevaci´on de grado
— 11.10 Conversi´on a la representaci´on tensorial de B´ezier — 11.11 Conversi´on
a la representaci´on triangular de B´ezier — 11.12 Ejercicios.
Similarmente al caso de una variable, a cada polinomio le corresponde, de
manera ´unica, un polinomio sim´etrico multiaf´ın. Usando estos polinomios
sim´etricos es f´acil deducir algoritmos para evaluar, elevar de grado,
reparametrizar y subdividir representaciones triangulares de superficies de
B´ezier. Esto generaliza lo desarrollado para polinomios univariados en el
Cap´ıtulo 3.
11.1 Polinomios sim´etricos
Cada superficie polin´omica b(x) de grado total ≤ n se puede asociar con
un ´unico polinomio sim´etrico n-af´ın b[x1 . . . xn] sobre IR2
que tiene las
siguientes propiedades.
• b[x1 . . . xn] coincide con b(x)sobre su diagonal, esto es
b[x . . . x] = b(x)
• b[x1 . . . xn] es sim´etrica en sus variables, esto significa que para
cualquier permutaci´on (y1 . . . yn) de (x1 . . . xn) se tiene
b[y1 . . . yn] = b[x1 . . . xn]
• b[x1 . . . xn] es af´ın en cada variable, es decir,
b[(αx+(1−α)y), x2 . . . xn] = αb[x, x2 . . . xn]+(1−α)b[y, x2 . . . xn] .
156 11. T´ecnicas de B´ezier para parches triangulares
El polinomio sim´etrico b[x1 . . . xn] tambi´en se denomina la forma polar
[Casteljau ’85] o blossom de b(x) [Ramshaw ’87]. Para demostrar que para
cada b(x) existe el polinomio sim´etrico es suficiente verificar que ´este existe
para todos los elementos de una base de polinomios. Considere una combi-
naci´on lineal
b(x) = c C (x)
de polinomios C (x) de grado n. Sean C [x1 . . . xn] sus polinomios sim´etricos
donde = (i, j, k) ≥ O y | | = n, entonces el polinomio sim´etrico de b(x) es
b[x1 . . . xn] = c C [x1 . . . xn] ,
pues satisface las tres propiedades mencionadas anteriormente. Note que la
diagonal b[x . . . x] puede tener grado menor que n a pesar de que b[x1 . . . xn]
depende de n variables.
En el caso que las C sean los monomios An
ij(x, y) = n
xi
yj
, se obtienen los
polinomios sim´etricos elementales
An
ij[x1 . . . xn] =
α···β
γ···δ
xα
i. . . xβ yγ
j
. . . yδ ,
donde xα = (xα, yα) y α, . . . , β, γ, . . . , δ son i + j enteros distintos, entre 1 y
n.
En el caso de que los C son los polinomios de Bernstein Bn
(Ù) = n
Ù , se
obtienen los polinomios
Bn
[Ù1 . . . Ùn] =
α···β
γ···δ
ε···ϕ
uα
i
· · · uβ vγ
j
· · · vδ wε
k
· · · wϕ ,
donde uα, vα, wα son las coordenadas de Ùα y (α, . . . , β, γ, . . . , δ, ε, . . . , ϕ) es
una permutaci´on de (1, . . . , n).
Observaci´on 1: Los polinomios sim´etricos Bn
[Ù1 . . . Ùn] satisfacen la relaci´on
de recurrencia
Bn
[Ù1 . . . Ùn] = u1Bn−1
− 1
[Ù2 . . . Ùn]+v1Bn−1
− 2
[Ù2 . . . Ùn]+w1Bn−1
− 3
[Ù2 . . . Ùn] .
Observaci´on 2: El vector Ù, de coordenadas baric´entricas, y el vector Ü de
coordenadas afines est´an relacionados por
x = x(Ù) = [a0a1a2]Ù y Ù = Ù(x) = Ô + [v1, v2]x ,
donde Ô; v1, v2 denotan las coordenadas afines asociadas al sistema de coor-
denadas baric´entricas. Como estas transformaciones son afines, a partir de la
forma polar a[x1 . . . xn], dada por las coordenadas afines, se puede construir
la forma polar b[Ù1 . . . Ùn] = a[AÙ1 . . . AÙn] y rec´ıprocamente. Esto es, se
tiene a[Ü1 . . . Ün] = b[Ù(Ü1) . . . Ù(Ün)].
11.2. El teorema fundamental 157
11.2 El teorema fundamental
La unicidad del polinomio sim´etrico y su relaci´on con la representaci´on de
B´ezier est´an dadas por el siguiente teorema:
Para cada superficie polin´omica b(x) de grado ≤ n existe un ´unico
polinomio n-variado, sim´etrico, multiaf´ın b[x1 . . . xn] con diago-
nal b[x . . . x] = b(x). Es m´as, los puntos
b0
= b[p i. . . p q j
. . . q r k. . . r]
son los puntos de B´ezier de b(x) sobre pqr.
Prueba: Considere los puntos
bl
= b[p i. . . p q j
. . . q r k. . . r x1
l. . . xl] , i + j + k + l = n .
Como bn
o = b[x1 . . . xn] es sim´etrico y multiaf´ın, este punto se puede calcular
a partir de los puntos b0
a trav´es de la siguiente relaci´on de recurrencia
(1) bl
= ulbl−1
+ 1
+ vlbl−1
+ 2
+ wlbl−1
+ 3
,
donde ul, vl, wl son las coordenadas baric´entricas de xl con respecto a pqr,
v´ease la Figura 11.1, donde las aplicaciones multiafines sim´etricas distintas
deben diferir en alguno de sus argumentos [p i. . . pq j
. . . qr k. . . r].
Es m´as, si todos los xl son iguales a x, entonces la relaci´on de recurrencia
anteriror se reduce a la aplicaci´on del algoritmo de Casteljau para el c´alculo
de b(x). En consecuencia, como la representaci´on de B´ezier es ´unica, los
puntos b0
son los puntos de B´ezier de b(x) sobre pqr y, adicionalmente,
puede haber solamente un polinomio sim´etrico y multiaf´ın que coincide con
b(x) sobre su diagonal. 3
11.3 Subdivisi´on y reparametrizaci´on
La f´ormula recursiva (1) ilustrada en la Figura 11.1 revela una propiedad
muy importante del algoritmo de de Casteljau: El c´alculo de b(x) genera
tambi´en los puntos de B´ezier
b[p i. . . p q j
. . . q x k. . . x], b[p i. . . p x j
. . . x r k. . . r] ,
y
b[x i. . . x q j
. . . q r k. . . r]
158 11. T´ecnicas de B´ezier para parches triangulares
Figura 11.1: El algoritmo de de Casteljau generalizado.
de b sobre pqx, pxr, y xqr, respectivamente. La Figura 11.2 ilustra un
ejemplo para n = 3. N´otese que los puntos b[x1x2x3] est´an etiquetados por
sus argumentos x1x2x3.
Note que las mallas de B´ezier de b(x) sobre pqx, pxr, y xqr forman parte de
una malla compuesta la cual se dobla sobre si misma si x yace fuera de pqr.
El c´alculo de esta malla compuesta se denomina subdivisi´on de la malla de
B´ezier sobre pqr en x.
Dada la malla de B´ezier de una superficie polin´omica b sobre el tri´angulo
pqr se puede calcular su malla de B´ezier sobre un tri´angulo cualquiera xyz a
trav´es de un proceso de subdivisi´on, vea [Prautzsch ’84a, Boehm et al. ’84].
Primero se subdivide la malla sobre pqr en x, luego se subdivide la malla
sobre xqr en y; y finalmente se subdivide, la malla sobre xyr en z, vea la
Figura 11.3.
La permutaci´on de pqr o de xyz resulta en una subdivisi´on diferente. Es
recomendable subdividir siempre en puntos interiores para evitar combina-
ciones afines no convexas.
La Figura 11.4 ilustra un caso en el cual es imposible evitar combinaciones no
convexas con la construcci´on anterior, independientemente como se permuten
pqr y xyz.
Observaci´on 3: Para la construcci´on anterior se necesitan 3 · n+2
3 = O(n3
)
combinaciones afines
Observaci´on 4: Cada punto de B´ezier b[x i. . . x y j
. . . y z k. . . z] de b sobre
xyz se puede calcular usando el algoritmo de de Casteljau generalizado, vea
la Figura 11.2. Las combinaciones afines calculadas por este algoritmo son
11.4. Convergencia bajo subdivisi´on 159
Figura 11.2: Subdivisi´on de una malla de B´ezier.
Figura 11.3: Reparametrizaci´on por subdivisi´on repetida.
convexas si x, y y z yacen en el tri´angulo pqr.
Observaci´on 5: Para calcular la malla de B´ezier sobre xyz por medio de las
n+2
2 aplicaciones del algoritmo de de Casteljau se necesitan n+2
2 · n+3
3 =
O(n5
) combinaciones afines.
11.4 Convergencia bajo subdivisi´on
La malla de B´ezier de b(x) sobre un tri´angulo pqr es una buena aproximaci´on
del parche b si el tri´angulo es suficientemente peque˜no. M´as concretamente,
sea pqr un tri´angulo y sea h su di´ametro. Denotemos por
i = p
i
n
+ q
j
n
+ r
k
n
un punto de coordenadas baric´entricas /n. Entonces existe una constante
M independiente de pqr tal que
max b(i) − b ≤ Mh2
.
160 11. T´ecnicas de B´ezier para parches triangulares
Figura 11.4: Tri´angulos de referencia especiales.
Para la prueba sea D el diferencial de b[x, i . . . i] = · · · = b[i . . . i, x] en
x = i. Expandiendo el polinomio sim´etrico b[x1 . . . xn] alrededor de [i . . . i]
se obtiene
b = b[i . . . i] + iD[p − i] + jD[q − i] + kD[r − i] + O(h2
)
= b(i) + O(h2
) ,
lo cual concluye la prueba. 3
Una aplicaci´on de esta propiedad se presenta en la pr´oxima secci´on
11.5 Generaci´on de superficies
Como consecuencia de la Seccion 11.4, la subdivisi´on repetida de una malla de
B´ezier produce aproximaciones tan buenas como se requiera de la superficie
exacta. Discutimos tres estrategias de subdivisi´on:
1. Repitiendo la subdivisi´on siempre en el centro del tri´angulo de referen-
cia, tal como se ilustra en la Figura 11.5 deja invariantes los di´ametros
m´aximos de los tri´angulos de referencia. Por lo tanto la secuencia de
mallas de B´ezier obtenidas a trav´es de esta estrategia de subdivisi´on
no converge a la superficie.
Figura 11.5: Subdivisi´on en los centros.
2. La subdivisi´on uniforme de cada tri´angulo de referencia tal como se
muestra en las Figuras 11.6 y 11.7 genera una secuencia de B´ezier mallas
de B´ezier, que converge a la superficie.
11.6. El polinomio sim´etrico de la derivada 161
Figura 11.6: Subdivisi´on uniforme.
Figura 11.7: Subdivisi´on por bisecci´on repetida.
3. La subdivisi´on uniforme de la Figura 11.6 es computacionalmente cos-
tosa y usa combinaciones afines, posiblemente no-convexas, v´ease 11.3.
Entonces para generar un parche, la mejor estrategia es la ilustrada
en la Figura 11.7. Es de bajo coste computacional y para su imple-
mentaci´on s´olo se requiere de la evaluaci´on de combinaciones convexas.
Comparando con otros m´etodos de generaci´on de superficies se observa que
el m´etodo ilustrado en la Figura 11.7 es el m´as r´apido conocido hasta ahora
[Peters ’94].
11.6 El polinomio sim´etrico de la derivada
La derivada direccional DÚb(Ù) de una superficie polin´omica en la direcci´on
Ú = [v0, v1, v2]t
, |Ú| = v0 + v1 + v2 = 0, tambi´en puede escribirse en t´erminos
del polinomio sim´etrico b[Ù1 . . . Ùn].
Se desprende de 10.5 o directamente por derivaci´on del polinomio sim´etrico
que
DÚb(Ù) = n(v0b[ 0Ù . . . Ù] + v1b[ 1Ù . . . Ù] + v2b[ 2Ù . . . Ù])
= nb[ÚÙ . . . Ù] .
Claramente, nb[ÚÙ2 . . . Ùn] representa el polinomio sim´etrico (n−1)-af´ın de
DÚb(Ù).
Note que b[ÚÙ2 . . . Ùn] es af´ın en Ù2, . . . , Ùn y es lineal en Ú.
162 11. T´ecnicas de B´ezier para parches triangulares
Repitiendo el proceso de diferenciaci´on, se puede obtener los polinomios
sim´etricos de derivadas direccionales de orden superior c(Ù) =
DÚr
. . . DÚ1
b(Ù) con respecto a r vectores Ú1, . . . , Úr, concretamente,
c[Ùr+1 . . . Ùn] =
n!
(n − r)!
b[Ú1 . . . ÚrÙr+1 . . . Ùn] .
11.7 Conexiones Cr
simples
La subdivisi´on tambi´en es una herramienta ´util para describir ciertas condi-
ciones de diferenciabilidad sobre dos superficies polin´omicas b(x) y c(x) a lo
largo de su curva com´un en t´erminos de sus puntos de B´ezier b y c sobre
pqr y sqr, respectivamente. V´ease la Figura 11.8.
Figura 11.8: La conexi´on C1
simple de Sabin.
De 10.5 se desprende que las derivadas hasta orden r sobre el segmento qr
determinan y son determinadas por los puntos de B´ezier b y c para i =
0, . . . , r. Esto nos lleva a la versi´on de Farin del teorema de St¨ark [Farin ’86,
p.98]; v´ease tambi´en [Sabin ’77], p.85.
Las derivadas de b y c coinciden hasta orden r sobre qr si y s´olo
si las primeras r + 1 filas de los puntos de B´ezier de b y c sobre
sqr tambi´en coinciden, lo cual significa que b[s i. . . s q j
. . . q r k. . .
r] = c , i = 0, . . . , r.
Sobre pqr y sqr, el polinomio b[x r. . . x q l. . . q r n−r−l. . . r] tiene puntos de
B´ezier b y c , respectivamente, donde i ≤ r, j ≤ l y k ≥ n−r−l. Los puntos

 pueden calcularse a partir de los usando el algoritmo de de Casteljau ,
v´ease 11.3 y las Figuras 11.8 y 11.9.
Usando el teorema fundamental 11.2, lo anterior se puede rescribir de la
siguiente manera
11.8. Elevaci´on de grado 163
Figura 11.9: La conexi´on C2
simple de Farin.
Las derivadas de b y c coinciden hasta orden r sobre qr si y
s´olo si para todo l = 0, . . . , n − r los polinomios b[x r. . . x q l. . .
q r n−r−l. . . r] y c[x r. . . x q l. . . q r n−r−l. . . r] son iguales.
Observaci´on 6: Los cuadril´ateros sombreados de las Figuras 11.8 y 11.9 son
im´agenes diferentes del cuadril´atero pqrs. En consecuencia, cualesquiera
m parches triangulares i
(Ü), i = 1 . . . , m, alrededor de un v´ertice com´un
tienen una conexi´on C1
simple en ese v´ertice si y s´olo si sus tri´angulos-
par´ametros forman un pol´ıgono que es im´agen af´ın del pol´ıgono formado por
los respectivos tri´angulos esquinas de las mallas de B´ezier asociadas.
Observaci´on 7: Como dos polinomios son iguales si y s´olo si, sus formas
polares coinciden, entonces (Ü) y 
(Ü) tienen las mismas derivadas hasta
orden r sobre el segmento qr si y s´olo si sus formas polares satisfacen
b[x1 . . . xr q j
. . . q r k. . . r] = c[x1 . . . xr q j
. . . q r k. . . r]
para cualquiera x1, . . . , xr y todo j y k tales que r + j + k = n. Esta
condici´on se emplea en [Lai ’91] para caracterizar splines Cr
multivariados
sobre triangulaciones arbitrarias
11.8 Elevaci´on de grado
Una superficie de B´ezier polin´omica de grado n siempre tiene tambi´en una
representaci´on de B´ezier de grado m, para cualquier m  n. Tal como para
el caso de curvas, la conversi´on a una representaci´on de un grado mayor se
denomina elevaci´on de grado.
Dada una representaci´on de B´ezier de grado n
b(x) = b Bn
(u) , x = [pqr]Ù ,
164 11. T´ecnicas de B´ezier para parches triangulares
de una superficie polin´omica b(Ù) sobre un tri´angulo pqr veremos como se
construye la representaci´on de B´ezier de grado n + 1. An´alogamente al caso
de curvas presentado en 3.11 utilizamos el polinomio sim´etrico b[x1 . . . xn]
de b(x). Es f´acil verificar que
c[x0 . . . xn] =
1
n + 1
n
l=0
b[x0 . . . x∗
l . . . xn]
es multiaf´ın, sim´etrica y coincide con b(x) sobre la diagonal. Entonces por
el teorema fundamental de 11.2 se tiene que los puntos
b = c[p j0
. . . p q j1
. . . q r j2
. . . r]
son los puntos de B´ezier de b(x) sobre pqr en su representaci´on de grado
n + 1.
b =
j0
n + 1
b[p j0−1
. . . p q j1
. . . q r j2
. . . r]
+
j1
n + 1
b[p j0
. . . p q j1−1
. . . q r j2
. . . r]
+
j2
n + 1
b[p j0
. . . p q j1
. . . q r j2−1
. . . r]
La Figura 11.10 ilustra la construcci´on asociada para n = 2.
Figura 11.10: Elevaci´on de grado en uno.
11.9 Convergencia por elevaci´on de grado
Repitiendo el proceso de elevaci´on de grado se obtienen representaciones de
B´ezier de grado mayor
b(x) = d Bm
(Ù) , m  n .
11.9. Convergencia por elevaci´on de grado 165
Los nuevos puntos de B´ezier d se pueden expresar f´acilmente en t´erminos
de los b . Tomando r = m − n, podemos rescribir
b(x) =
| |=n
b Bn
· 1
como
b(x) =
| |=n
b Bn
·
| |=r
Br
=
| |=m


| |=n
b β

 Bm
k ,
donde
β =
Bn
B −
Bm =
n r
−
m .
Entonces obtenemos la f´ormula de Zhou
d =
| |=n
b β ,
Vea[Farin ’86, de Boor ’87]. Sean = (i1, i2, i3) y = (k1, k2, k3). Entonces
β se puede escribir
n k1
m
· · ·
k1−i1+1
m−i1+1
k2
m−i1
· · ·
k2−i2+1
m−i1−i2+1
k3
m−i1−i2
· · ·
k3−i3+1
m−n+1
,
de donde concluimos que
β ≤
n k1
m
+
n
m − n
i1
k2
m
+
n
m − n
i2
k3
m
+
n
m − n
i3
y
β ≥
n k1
m
−
n
m
i1
k2
m
−
n
m
i2
k3
m
−
n
m
i3
.
En consecuencia
β = Bn
( /m) + O(1/m)
y por lo tanto
d = b Bn
( /m) + O(1/m) .
Por lo tanto podemos concluir que la malla de B´ezier de grado m de b(x)
converge a b(x) linealmente cuando m tiende a infinito. Vea [Farin ’79,
Trump  Prautzsch ’96].
166 11. T´ecnicas de B´ezier para parches triangulares
11.10 Conversi´on a la representaci´on tensorial
de B´ezier
Sea b(x) un polinomio n-variado y sea b[x1, . . . xn] su forma polar, denota-
mos por xst = x(s, t) una aplicaci´on biaf´ın que env´ıa el cuadrado unitario
[0, 1]2
sobre un cuadril´atero convexo, vea Figura 11.11. Entonces el polinomio
reparametrizado
c(s, t) = b(x(s, t))
es un producto tensorial (n, n) en (s, t). La forma polar de este producto
tensorial est´a dada por
c[s1 . . . sn, t1 . . . tn] =
1
n! τ
b[x(s1, τ1) . . . x(sn, τn)] ,
donde la suma se extiende sobre todas las permutaciones (τ1, . . . , τn) de
(t1, . . . , tn). La prueba de ´esto se reduce a verificar que c satisface las tres pro-
piedades que caracterizan la forma polar de un polinomio: simetr´ıa, afinidad
en cada variable y restricci´on a la diagonal.
Figura 11.11: Una reparametrizaci´on biaf´ın.
Conociendo la forma polar del producto tensorial se puede aplicar el teorma
fundamental 9.3 para obtener los puntos de B´ezier de c(s, t) sobre [0, 1] x
[0, 1]. Estos puntos son
cij = c[0 n−i. . . 01 i. . . 1, 0 n−j
. . . 01 j
. . . 1]
la cual puede rescribirse como
cij =
j
k=0
βijkb[x00
n+k−i−j
. . . x00x01
j−k
. . . x01x10
i−k. . . x10x11
k. . . x11] ,
siendo n!βijk el n´umero de parametrizaciones de (0 n−j
. . . 01 j
. . . 1) tales que
exactamente k 1′
s est´an ubicados en las ´ultimas i posiciones. Luego
βijk =
1
n!
·
j
k
i . . . (i + 1 − k) · (n − i) . . . (n − i + 1 − j + k) · (n − j)!
=
k!
n!
i
k
j
k
(n − i)!(n − j)!
(n + k − i − j)!
.
11.11. Conversi´on a la representaci´on triangular de B´ezier 167
De 11.3 recordamos que los puntos
b[x00 . . . x00x01 . . . x01x10 . . . x10x11 . . . x11]
resultan de la subdivisi´on de la malla de B´ezier de b(x) sobre x00x01x10 en
x11, v´ease tambi´en [DeRose et al. ’93].
11.11 Conversi´on a la representaci´on triangular
de B´ezier
Un producto tensorial b(x, y) de grado (m, n) tiene grado total ≤ m + n.
Por lo tanto tiene una representaci´on de B´ezier de grado l = m + n sobre
cualquier tri´angulo pqr. Para calcular esta representaci´on triangular, sea
b[x1 . . . xm, y1 . . . yn] la forma polar del producto tensorial de b(x, y). En-
tonces la forma polar (no necesariamente producto tensorial) de b(x) est´a
dada por
c[x1 . . . xl] =
1
l!
b[xi1
. . . xim
, yim+1
. . . yil
]
donde la suma se extiende por todas las permutaciones (i1 . . . il) de (1 . . . l)
y xi = (xi, yi). Claramente, c satisface las tres propiedades que caracterizan
la forma polar.
Los puntos de B´ezier de b(x) sobre un tri´angulo con v´ertices p = [p1, p2]t
,
q = [q1, q2]t
y r = [r1, r2]t
puede obtenerse a trav´es del teorma fundamental
11.2.
Estos son los puntos
bijk = c[p i. . . pq j
. . . qr k. . . r]
=
α+β+γ=m
(α,β,γ)≤(i,j,k)
δijk
αβγb[p1
α. . . p1q1
β
. . . q1r1
γ
. . . r1,
p2
i−α. . . p2q2
j−β
. . . q2r2
k−γ
. . . r2] ,
donde
δijk
αβγ =
i
α
j
β
k
γ
m!n! .
De 9.5 obtenemos que los puntos
b[p1 . . . p1q1 . . . q1r1 . . . r1, p2 . . . p2q2 . . . q2r2 . . . r2]
aparecen en el algoritmo de de Casteljau para el producto tensorial usado
para calcular b(r) a partir de los puntos de B´ezier sobre [pqr].
168 11. T´ecnicas de B´ezier para parches triangulares
11.12 Ejercicios
1 Considere un parche funcional con un poliedro de B´ezier convexo. De-
muestre que la elevaci´on de grado y la subdivisi´on uniforme de la Figura
11.6 preservan la convexidad del poliedro de B´ezier.
2 Existen parches param´etricos para los cuales la observaci´on del Ejercicio 1
no es v´alida. Produzca un ejemplo.
3 Generalice el algoritmo de intersecci´on de 3.7 para parches triangulares.
4 Sean v1 = q − p y v2 = r − q. Muestre que la malla de B´ezier b sobre
pqr es plana si ∆v1
∆v1
b , ∆v1
∆v2
b y ∆v2
∆v1
b son cero. Por lo tanto
el m´aximo de estas diferencias es una medida de la planaridad del parche
de B´ezier.
5 El almacenamiento digital de mallas de B´ezier requiere cierto cuidado
en aras de la eficiencia, tanto desde el punto de vista de utilizaci´on de
memoria como de su acceso. Una manera eficiente de almacenar muchas
mallas de B´ezier consiste en guardar los puntos bijk , i + j + k = n de
cada malla en un arreglo lineal, digamos
a[L] = bijk
donde L = L(i, j) var´ıa desde 1 hasta n+2
2 . El acceso r´apido se garantiza
si la funci´on L se almacena en una matriz L = [Lij]. D´e una f´ormula
expl´ıcita para la funci´on L del Ejercicio 5.
12 Interpolaci´on
12.1 Interpolaci´on de Hermite — 12.2 El interpolador de Clough-Tocher —
12.3 El interpolador de Powell-Sabin — 12.4 Superficies de topolog´ıa arbitraria
— 12.5 Parametrizaci´on singular — 12.6 Splines C1
de grado cinco de topolog´ıa
arbitraria — 12.7 Ejercicios
Dados valores y derivadas de una funci´on bivariada es f´acil construir un
interpolador polin´omico por trozos usando la representaci´on de B´ezier. Sin
embargo no existe una extensi´on a superficies param´etricas arbitrarias, por
ejemplo, esferas. Para esto se requieren conexiones Cr
m´as generales y/o
parametrizaciones singulares.
12.1 Interpolaci´on de Hermite
Dada una triangulaci´on T de un dominio poligonal de IR2
se puede construir
una funci´on polin´omica por trozos de grado 4r+1 que es r-veces diferenciable
e interpola cualesquiera derivadas dadas en los v´ertices de T , hasta orden 2r.
La representaci´on de B´ezier es una herramienta muy ´util para describir esta
construcci´on. La Figura 12.1 muestra un tri´angulo de la trangulaci´on T y
las abscisas de B´ezier del interpolador para este tri´angulo en el caso r = 2,
vea 10.3. Hay tres tipos de abscisas de B´ezier: las denotadas por c en las
cuales las derivadas est´an prefijadas, aquellas en las cuales las ordenadas son
arbitrarias, etiquetadas con c y las abscisas c, c, c cuyas ordenadas dependen
de los tri´angulos adyacentes y est´an determinadas por las condiciones de
conexi´on Cr
.
170 12. Interpolaci´on
Figura 12.1: Abscisas de B´ezier para r = 2.
12.2 El interpolador de Clough-Tocher
Interpoladores de grado m´as bajo que los presentados en 12.1 se pueden
construir para datos correspondientes a topolog´ıas arbitrarias. Sin embargo,
´esto se puede hacer s´olo a expensas de aumentar el n´umero de parches. El
interpolador c´ubico C1
polin´omico por trozos que se describe a continuaci´on
fue propuesto por Clough y Tocher [Clough  Tocher ’65].
Dada una triangulaci´on T de un dominio poligonal en IR2
, subdividimos
cada tri´angulo de T en un punto interior en tres microtri´angulos, tal como
se ilustra en la Figura 12.2. Para cualesquiera valores y primeras derivadas
en los v´ertices de T se puede construir una funci´on C1
que ser´a c´ubica sobre
cada microtri´angulo.
Figura 12.2: Subdivisi´on de un macrotri´angulo en tres microtri´angulos.
La Figura 12.2 ilustra las abscisas de B´ezier de un tal interpolador sobre un
tri´angulo de T . Las ordenadas de B´ezier sobre las abscisas c est´an dadas por
12.3. El interpolador de Powell-Sabin 171
los datos de interpolaci´on en los v´ertices. Las ordenadas en las abscisas c, c, c
se determinan por las condiciones de conexi´on C1
a lo largo de las aristas
de T tal como se describe en 12.1. Las ordenadas en las abscisas c est´an
determinadas por las condiciones de conexi´on C1
a trav´es de las aristas de la
triangulaci´on refinada. Esto significa que los cuatro puntos correspondientes
a cada cuadri´atero sombreado en la Figura 12.2 son coplanares.
Observaci´on 1: El interpolador anterior es dos veces diferenciable en los
puntos de subdivisi´on. Para una prueba considere el parche cuadr´atico
definido por las ordenadas de B´ezier sobre las seis abscisas interiores c, c, c, c
de la Figura 12.2. Como las diez ordenadas de B´ezier sobre las diez abscisas
interiores c, c, c, c, c de la Figura 12.2 tambi´en constituyen la malla de B´ezier
subdividida del parche cuadr´atico, la condici´on de diferenciablidad se deduce
del teorema de St¨ark de 11.7.
12.3 El interpolador de Powell-Sabin
El problema de interpolaci´on 12.2 tambi´en se puede abordar con un inter-
polador C1
cuadr´atico por trozos. Esto, sin embargo, requiere un n´umero a´un
mayor de parches [Powell  Sabin ’77]. En esta construcci´on cada
macrotri´angulo se subdivide en seis microtri´angulos introduciendo puntos
interiores c y puntos 3 sobre las aristas, vea la Figura 12.3. Los segmentos
que conectan los puntos interiores, de tri´angulos adyacentes deben intersecar
las aristas comunes en los puntos 3. Si los puntos c son los incentros de los
tri´angulos, entonces los segmentos que conectan los incentros de tri´angulos
adyacentes, en efecto, cortan sus aristas comunes en los puntos 3. V´ease
tambi´en el Ejercicio 5.
Figura 12.3: Abscisas de B´ezier de la subdivisi´on de Powell-Sabin
Las ordenadas de B´ezier en las abscisas c est´an determinadas por las condi-
ciones de interpolaci´on, las ordenadas denotadas por 3 y c est´an dadas
por las condiciones de conexi´on C1
a lo largo de las aristas de subdivisi´on.
Las nueve ordenadas de B´ezier que pertenecen al paralelogramo (de l´ıneas
172 12. Interpolaci´on
interrumpidas) en la Figura 12.3 yacen sobre una superficie bilineal. Esto
implica C1
-continuidad entre macrotri´angulos adyacentes.
12.4 Superficies de topolog´ıa arbitraria
Las conexiones Ck
simples descritas en 11.7, aunque suficientes para la mod-
elaci´on de superficies no param´etricas, no son suficientes para la modelaci´on
de superficies suaves arbitrarias.
En particular se tiene lo siguiente: usando solamente parches triangulares
regulares y conexiones C1
simples, es imposible construir una superficie cer-
rada a menos que sea de g´enero uno.
La Figura 12.4 muestra ejemplos de superficies cerradas de g´eneros 0, 1, 2 y
3.
Figura 12.4: Superficies cerradas de varios g´eneros: 0, 1, 2 y 3.
Para la prueba consideramos primero el caso cuando el g´enero es cero y
procedemos por reducci´on al absurdo. Considere una superficie cerrada de
g´enero 0 compuesta de parches triangulares regulares unidos con conexiones
C1
simples. Tal como se ilustra en la Figura 12.5, subdividimos la superficie
en dos pedazos, entonces por la Observaci´on 6 de 11.7, cada uno de ´estos
se puede escribir en t´erminos de una parametrizaci´on regular C1
sobre un
dominio triangulado simplemente conexo. Es m´as, existe una aplicaci´on af´ın
que env´ıa todos los tri´angulos frontera del primer dominio sobre tri´angulos
que bordean el segundo dominio. Sin embargo, claramente, esto es imposible,
lo cual termina la prueba en este caso.
Note que al contrario de la situaci´on anterior, un toro o cualquier otra su-
perficie de g´enero 1, se puede parametrizar por medio de una aplicaci´on C1
regular sobre un rect´angulo, vea el Ejercicio 1.
Finalmente, si una superficie de g´enero n ≥ 2 estuviera compuesta por
parches triangulares con conexi´ones C1
simples (vea 11.7), ´esta se podr´ıa
12.5. Parametrizaci´on singular 173
Figura 12.5: Separaci´on de una superficie de g´enero en dos componentes.
cortar tal como se ilustra en la Figura 12.4 y podr´ıa parametrizarse sobre
un dominio triangulado con 2(n − 1) huecos cuyas fronteras corresponden a
los cortes. Tal como en la situaci´on anterior, en estas condiciones tambi´en
existe una aplicaci´on af´ın que env´ıa los tri´angulos frontera de un hueco en sus
tri´angulos frontera adyacentes del hueco correspondiente. Esto, sin embargo
es imposible, por lo cual una superficie de g´enero ≥ 2 tampoco puede estar
compuesta de parches triangulares regulares con conexiones simples C1
.
12.5 Parametrizaci´on singular
Para modelar superficies suaves de topolog´ıa arbitraria hay que introducir
conexiones C1
de tipo general, (las cuales se describen en el Cap´ıtulo 14) o
permitir parametrizaciones singulares. Para el caso de parches triangulares
se pueden utilizar las singularidades estudiadas en 9.10 para productos ten-
soriales. Sin embargo, es suficiente considerar las singularidades m´as d´ebiles
ilustradas en la Figura 12.6.
La Figura 12.6 muestra parte de la malla de B´ezier de un parche triangular
polin´omico
b(u, v) = b Bn
(u, v, 1 − u − v) ,
donde
b00n = b1,0,n−1 = b0,1,n−1
y
b1,1,n−2 = αb2,0,n−2 + βb0,2,n−2 + γb00n
174 12. Interpolaci´on
Figura 12.6: Puntos de B´ezier de una parametrizaci´on singular en un v´ertice.
con α, β  0 , α+β +γ = 1 y puntos independientes b00n, b2,0,n−2, b0,2,n−2.
Las derivadas de b(u, v) en u = (u, v) = (0, 0) se anulan. Sin embargo, existe
una reparametrizaci´on u(x) tal que c(x) = b(u(x)), regular en x = u−1
(o).
Despu´es de una transformaci´on af´ın se obtiene
b00n = 0 , b2,0,n−2 =
2
n(n − 1)


1
0
0

 , b0,2,n−2 =
2
n(n − 1)


0
1
0

 .
Por lo tanto, la expresi´on de Taylor de b(u) en u = (0, 0) es de la forma
b(u) =
x(u)
0
+ d(u) ,
donde
x(u) =
u2
+ 2αuv
v2 + 2βuv
= O( u 2
)
y
d(u) = O( u 3
) .
Claramente, x e y son estrictamente mon´otonas en u y v para u, v ≥ 0. Por
lo tanto x(u) es inyectiva en el dominio u, v ≥ 0. Es m´as, x(u) es regular
para u = 0. En consecuencia, c(x) = b(u(x)) es continuamente diferenciable
si c(x) tiene parciales continuas. Estas parciales est´an dadas por
[cxcy] = [dudv]
xu xv
yu yv
−1
=
1
xuyv − xvyu
[dudv]
yv −xv
−yu xu
,
lo cual conduce a
cx = O( u ) = O( x ) .
De manera similar se puede argumentar para dy. Por lo tanto, c(x) y conse-
cuentemente tambi´en b(u(x)), son continuamente diferenciables.
Observaci´on 2: Si α, β  0 y 4αβ  1, tambi´en se puede demostrar que
b(u) tiene un plano tangente continuo [Reif ’95a].
12.6. Splines C1
de grado cinco de topolog´ıa arbitraria 175
12.6 Splines C1
de grado cinco de topolog´ıa
arbitraria
Para construir superficies C1
de topolog´ıa arbitraria que interpolan planos
tangentes prescritos en puntos dados, se pueden utilizar parametrizaciones
singulares de parches triangulares. A continuaci´on describimos los ingre-
dientes b´asicos para construir estas superficies. Note sin embargo, que esta
descripci´on no debe ser considerada como un m´etodo elaborado para la cons-
trucci´on.
Considere una malla triangular con normales especificadas en cada uno de
sus v´ertices, tal como se ilustra en la Figura 12.7.
Figura 12.7: Malla triangular con normales en los v´ertices.
Para cada cara de la malla se construye un interpolador de grado cinco tal
como se ilustra esquem´aticamente en la Figura 12.8. Dado un tri´angulo de la
malla cuyos lados est´an dados por l´ıneas gruesas, los puntos de B´ezier esquina
c y los puntos de B´ezier adyacentes c (que coinciden con los anteriores) est´an
dados por los v´ertices del tri´angulo.
El pr´oximo anillo de puntos ∗ y 3 alrededor de cada conjunto de puntos de
B´ezier coincidentes se escoge de manera tal que yazcan sobre el plano tangente
prescrito en el v´ertice de su esquina y tal que los cuadril´ateros sombreados
sean paralelogramos. Los puntos de B´ezier restantes c, c, c se escogen de
manera tal que el resto de los cuadril´ateros sombreados sean tambi´en para-
lelogramos.
12.7 Ejercicios
1 Construya una superficie cerrada de g´enero 1, es decir, una superficie
topol´ogicamente equivalente a un toro, utilizando parches regulares con
conexiones C1
simples.
176 12. Interpolaci´on
Figura 12.8: La malla de B´ezier de un interpolador de grado cinco con singulari-
dades.
2 Muestre que no se puede modelar superficies abiertas C1
cuya frontera
tiene menos de tres esquinas, utilizando solamente parches regulares con
conexiones simples C1
. La Figura 12.9 muestra dos tales superficies.
Figura 12.9: Superficies abiertas sin esquinas y con dos esquinas.
3 Demuestre que se pueden modelar superficies C1
de topolog´ıa arbitraria
con parches triangulares cuadr´aticos singulares con conexiones C1
sim-
ples.
4 Demuestre que la superficie del Ejercicio 3, en general, podr´ıa contener
parches planos.
5 Dada una triangulaci´on de IR2
, conecte los centroides de cada par de
tri´angulos adyacentes. Verifique a trav´es de un ejemplo que estos seg-
mentos de conexi´on podr´ıan intersecar otros tri´angulos.
6 Refute por medio de un ejemplo, que un elemento de Powell-Sabin tenga
un poliedro de B´ezier c´oncavo o convexo si los tres planos tangentes
en las esquinas se intersecan encima de un punto interior del tri´angulo
12.7. Ejercicios 177
dominio. V´ease tambi´en [Floater ’97, Carnicer  Dahmen ’92, Bangert
 Prautzsch ’99].
7 Generalice el esquema de interpolaci´on Powell-Sabin para funciones mul-
tivariadas, v´ease tambi´en [Bangert  Prautzsch ’99].
Volltext algebra superior
13 Construcci´on de superficies suaves
13.1 La conexi´on general C1
— 13.2 Conexi´on de dos parches triangulares c´ubicos
— 13.3 Un interpolador triangular G1
— 13.4 El problema del v´ertice compartido
— 13.5 El problema de la paridad — 13.6 Ejercicios
La conexi´on C1
simple discutida en 11.7 es demasiado restrictiva para la mo-
delaci´on de superficies regulares arbitrarias. Por esta raz´on, en esta secci´on,
introducimos condiciones m´as generales para la conexi´on C1
de superficies
interpolantes construidas con parches triangulares. Estas superficies nos per-
mitir´an dise˜nar modelos en 3D de topolog´ıa abitraria.
13.1 La conexi´on general C1
Sean p(x, y) y q(x, y) dos parches regulares C1
que poseen una frontera
com´un a lo largo de x = 0, es decir,
p(0, y) = q(0, y)
para todo y ∈ [0, 1]. La Figura 13.1 provee una ilustraci´on. Note que no se
requiere que los parches p y q sean polin´omicos o que sean de tres o cuatro
lados.
Se dice que p y q tienen una conexi´on general C1
o conexi´on geom´etrica
C1
o simplemente una conexi´on G1
a lo largo de x = 0, si sus normales
unitarias coinciden sobre la frontera com´un, es decir, si
px × py
px × py
=
qx × qy
qx × qy
para x = 0 .
Equivalentemente, la continuidad G1
tambi´en se puede caracterizar requirien-
do que existan funciones de conexi´on λ(y), µ(y) y ν(y) tales que para todo
x = 0 y todo y
(1) λpx = µqx + νqy y λµ  0 ,
con la posible excepci´on de puntos aislados.
180 13. Construcci´on de superficies suaves
Figura 13.1: Dos parches con un borde com´un.
En particular, si p y q son polin´omicos y tienen una conexi´on
G1
entonces las funciones de conexi´on son polinomios y salvo un
factor com´un, se tiene
grado λ ≤ grado qx(0, y) + grado qy(0, y) ,
grado µ ≤ grado px(0, y) + grado qy(0, y) ,
grado ν ≤ grado px(0, y) + grado qx(0, y) .
Para la prueba se calcula el producto vectorial de ambos lados de la ecuaci´on
(1) con qx y qy. Se obtiene
λpx × qx = νqy × qx y
λpx × qy = µqx × qy .
Como q es regular, por lo menos una de las coordenadas de [qx x qy], es
diferente de cero. Como la ecuaci´on (1) se puede multiplicar por un factor,
podemos suponer que
λ = [qx × qy]1 .
Esto implica
µ = [px × qy]1 y ν = −[px × qx]1 ,
lo cual prueba la aseveraci´on. 3
Observaci´on 1: Frecuentemente, se fija λ = 1, entonces µ y ν son, en
general, funciones racionales.
Observaci´on 2: La prueba anterior tambi´en es v´alida cuando p y q son
funciones racionales. En este caso, las funciones λ, µ y ν son racionales y
salvo un factor com´un, satisfacen los estimados de arriba.
Observaci´on 3: Cualquier conexi´on G1
se puede convertir en una conexi´on
simple C1
, por medio de un cambio de variable. Concretamente, si p y q
13.2. Conexi´on de dos parches triangulares c´ubicos 181
satisfacen la condici´on G1
dada por (1), entonces a(x, y) = p(x, y) y b(x, y) =
q(µx, νx + y) tienen una conexi´on C1
simple. V´ease 9.7 y 11.7.
Observaci´on 4: El hecho de que dos parches se conecten G1
a lo largo de
su frontera com´un no depende de sus parametrizaciones. Sin embargo, las
funciones de conexi´on dependen de las parametrizaciones. El grado m´aximo
de las funciones de conexi´on es invariante bajo reparametrizaci´on af´ın.
13.2 Conexi´on de dos parches
triangulares c´ubicos
Considere dos parches triangulares
p(Ù) = p B3
(Ù) y q(Ù) = q B3
(Ù) ,
donde 0 ≤ = (i, j, k), | | = i + j + k = 3 y p = q para i = 0. Esto significa
que los parches p y q est´an conectados continuamente a lo largo de u = 0
y que sus planos tangentes coinciden en 1 = (0, 1, 0) y 2 = (0, 0, 1). Esta
situaci´on se ilustra en la Figura 13.2.
Note que los cuadril´ateros sombreados son planos pero no est´an necesaria-
mente en correspondencia af´ın.
Figura 13.2: Conexi´on G1
y movimiento de los puntos interiores.
En general, los puntos interiores de B´ezier p111 y q111, se pueden
mover para lograr una conexi´on G1
a lo largo de u = 0.
En particular, en esta secci´on veremos como obtener una conexi´on suave
usando funciones de conexi´on λ(v), µ(v) y ν(v), que son lineales. Entonces la
condici´on para la conexi´on G1
a lo largo de u = 0 se reduce a una ecuaci´on
c´ubica en w = 1 − v. Denotando las derivadas parciales en las direcciones
0 − 2 y 2 − 1, con los sub´ındices 0 y 1, respectivamente, la ecuaci´on c´ubica
resulta
λp0 = µq0 − νq1 , λµ  0 .
182 13. Construcci´on de superficies suaves
En v = 0, las derivadas p0, q0 y q1 son conocidas. Por lo tanto esta ecuaci´on
establece un sistema lineal en λ0 = λ(0), µ0 = µ(0) y ν0 = ν(0), el cual tiene
una familia a un par´ametro de soluciones. Similarmente tambi´en se tiene
una familia monoparam´etrica de soluciones para λ1, µ1 y ν1 en v = 1. Si
escogemos soluciones arbitrarias en v = 0 y en v = 1 ´estas determinan las
funciones lineales λ, µ y ν. Como una c´ubica est´a determinada por sus valores
y los valores de sus derivadas en dos puntos, en nuestro caso, v = 0 y v = 1
y estamos interesados en la expresi´on de su derivada, entonces diferenciamos
la condici´on para la conexi´on G1
, a lo largo de u = 0. En consecuencia se
obtiene
λp01 − µq01 = νq11 + ν′
q1 − λ′
p0 + µ′
q0 .
Expresando p01, q01, etc. en t´erminos de los puntos de B´ezier, en 1 obtene-
mos las ecuaciones
p01 = 6(p003 + p111 − p012 − p102) ,
q01 = 6(q021 + q111 − q012 − q120)
etc.
y expresiones similares para p01, q01, etc. en 2. Los puntos q11, q1, q0 y p0
no dependen de p111, q111 en v = 0 y v = 1. Sustituyendo estas expresiones
en la derivada de la condici´on G1
, se obtiene una ecuaci´on lineal para p111 y
q111:
[p111q111]
λ0 λ1
−µ0 −µ1
= [w0w1] ,
donde w0 y w son combinaciones de puntos de B´ezier p y q , con la
excepci´on de p111 y q111. Este sistema tiene una soluci´on si la matriz
λ0 λ1
−µ0 −µ1
es invertible. Por lo tanto, existe una soluci´on, a menos que λ(y) : µ(y) =
constante. Esta ´ultima situaci´on se ilustra en la Figura 13.3 3.
Figura 13.3: Configuraci´on cr´ıtica.
En efecto, no hay soluci´on si λ(y) : µ(y) = constante, si los dos cuadril´ateros
no est´an en correspondencia af´ın y si la frontera com´un p(0, y) = q(0, y) es
13.3. Un interpolador triangular G1
183
una c´ubica regular, es decir, si qy(0, y) es una c´onica que no pasa por el
origen.
Concretamente, rescribiendo la condici´on G1
como
px −
µ
λ
qx =
ν
λ
qy
notamos que su lado izquierdo es cuadr´atico y como qy tambi´en es una
cuadr´atica sin ra´ıces reales, se tiene que ν/λ tiene que ser constante. Esto,
finalmente, contradice la suposici´on de que los cuadril´ateros de la Figura 13.3
est´an en correspondencia af´ın.
Si q0,y es cuadr´atica o no regular, se puede verificar que existe una soluci´on
con funciones lineales λ, µ y ν. Vea el Ejercicio 3.
13.3 Un interpolador triangular G1
En 1985, Bruce Piper [Piper ’87] introdujo una t´ecnica para construir super-
ficies cuadr´aticas G1
que interpolan un conjunto de curvas c´ubicas dispuestas
en forma triangular, tal como se ilustra en la Figura 13.4. A continuaci´on
presentamos esta construcci´on, pero evitando situaciones cr´ıticas, lo cual per-
mite su realizaci´on con parches c´ubicos.
Figura 13.4: Una red triangular G1
de curvas c´ubicas.
Los “tri´angulos” adyacentes de la red de c´ubicas se comportan tal como
se ilustra en la Figura 13.2. Por simplicidad, suponemos que no hay solu-
ciones cr´ıticas, tales como las ilustradas en la Figura 13.3. Entonces, cada
“tri´angulo” se puede interpolar con un macroparche que consiste de tres
parches c´ubicos como se describe a continuaci´on. La Figura 13.5 ilustra es-
quem´aticamente la posici´on de los puntos de B´ezier del macroparche.
184 13. Construcci´on de superficies suaves
Los puntos de B´ezier c, en la frontera est´an dados por la red de c´ubicas.
Los puntos de B´ezier c son los centroides de ternas de puntos vecinos c,
tal como se indica en la Figura 13.5.
Los puntos de B´ezier c se determinan como en 13.2, de manera que
macroparches adyacentes se conecten G1
.
Los puntos denotados con son los centroides de las ternas vecinas de puntos
c c c. El punto de B´ezier es el centroide del tri´angulo .
Entonces los parches adyacentes del macroparche tienen conexiones C1
sim-
ples. ´Esto es similar al elemento de Clough-Tocher, v´ease 12.2.
Figura 13.5: El macroparche.
13.4 El problema del v´ertice compartido
Por medio de su construcci´on, Piper resuelve de manera impl´ıcita una di-
ficultad que se presenta cuando se trata de construir una conexi´on G1
con
varios parches que comparten un v´ertice. ´Este se denomina problema del
v´ertice compartido y consiste en garantizar que todos los parches tengan
el mismo plano tangente en el v´ertice com´un. Estas condiciones forman un
sistema c´ıclico.
Considere n parches (triangulares o cuadrangulares) pi
(x, y), i = 1, . . . , n
tales que
pi
(0, z) = pi+1
(z, 0) ,
donde pn+1
= p1
, tal como se ilustra en la Figura 13.6, y
(2) λipi
x(0, z) = µipi+1
y (z, 0) + νipi+1
x (z, 0) ,
con 3n funciones de conexi´on λi(z), µi(z) y νi(z).
Para z = 0, estas ecuaciones imponen restricciones sobre la derivada pi
x y las
funciones de conexi´on.
13.5. El problema de la paridad 185
Figura 13.6: Un v´ertice compartido por n = 6 parches.
Tambi´en se tienen condiciones sobre las segundas derivadas, las cuales se
obtiene diferenciando las condiciones para la continuidad G1
, dadas por (2),
λ′
ipi
x + λipi
xy = µ′
ipi+1
y + µipi+1
xy + ν′
ipi+1
x + νipi+1
xx ,
las cuales se denominan restricciones de torsi´on. Para z = 0, estas ecua-
ciones forman un sistema lineal c´ıclico.
[p1
xy . . . pn
xy]





λ1 −µ1
−µ2 λ2
...
−µn λn





= [r1 . . . rn] ,
donde
ri = −λ′
ipi
x + µ′
ipi+1
y + ν′
ipi+1
x + νipi+1
xx .
Escribimos este ´ultimo sistema de manera abreviada como TA = R.
13.5 El problema de la paridad
La matriz c´ıclica A, correspondiente a las restricciones de torsi´on tiene rango
n si n es impar, y rango n − 1 si n es par. Por lo tanto A es no singular s´olo
para n impar.
Se tiene entonces, que las restricciones de torsi´on se pueden satisfacer si
el n´umero de parches es impar. Cuando n es par, en general no se puede
garantizar que las restricciones puedan ser satisfechas. Para verificar este
sorprendente hecho, n´otese que
det A = λ1 . . . λn − µ1 . . . µn
= Πλi − Πµi .
Calculando el producto vectorial de
λipi
x = µipi+1
y + νipi+1
x ,
186 13. Construcci´on de superficies suaves
con pi+1
x = pi
x se obtiene
λi : µi = [pi+2
x × pi+1
x ] : [pi
x × pi+1
x ] ,
lo cual implica que
Πλi : Πµi = (−1)n
y, como λi = 0 para todo i,
det A =
= 0 si n es par
= 0 si n s impar
.
Como la submatriz de A obtenida eliminando la primera fila y la primera
columna, tiene rango m´aximo entonces el rango de A es por lo menos n − 1,
lo cual termina la verificaci´on.
Observaci´on 5: Las restricciones de torsi´on, AT = R, se satisfacen si los
datos provienen de parches p1
, . . . , pn
que forman una superficie G1
. En
particular este es el caso si los pi
resultan de reparametrizaciones locales de
un parche polin´omico p.
Observaci´on 6: Si n = 4 y λ′
i(0) = µ′
i(0) = ν′
i(0) = 0, para i = 1, 2, 3, 4
como se ilustra en la Figura 13.7, entonces las restricciones de torsi´on pueden
ser satisfechas, v´ease 9.7.
Figura 13.7: Tangentes opuestas iguales.
Observaci´on 7: Cuando se subdivide cada parche pi
, tal como en la cons-
trucci´on de Peters, las restricciones de torsi´on siempre pueden ser satisfechas.
V´ease [Peters ’91].
13.6. Ejercicios 187
13.6 Ejercicios
1 Demuestre que el problema de la Secci´on 13.2 siempre se puede resolver
si p y q son parches cuadr´aticos.
2 Resuelva el problema de la Secci´on 13.2 para la siguiente configuraci´on
de pijk
′
s
p201 p111 p012
p300 p210 p120 p030
q300 q210 q120 q030
q201 q111 q012
=


1
1
0



p111




6
1
1




0
0
0




2
0
0




4
0
1




6
0
1




1
−1
0



q111




5
−1/2
1

 .
3 Verifique que el problema de la Secci´on 13.2, vea la Figura 13.3, tiene una
soluci´on con funciones lineales λ = µ y ν, si q(0, v, 1, −v) es cuadr´atica
o no regular. Sugerencia: Si q(0, v, 1, −v) es cuadr´atico escogemos λ =
µ = 1. Si q(0, v, 1, −v) = 0 para v = v0, escogemos λ = µ = (v − v0)c1 y
ν = vc2, donde las constantes c1 y c2 se eligen de manera que se satisfaga
la condici´on G1
para v = 1.
4 Demuestre que las restricciones de torsi´on de 13.4 se satisfacen si y s´olo
si
s = t1 1 −
µ1 · · · µn
λ1 · · · λn
se puede resolver para t1, donde
s =
µ1 · · · µn−1
λ1 · · · λn
rn + · · · +
µ1
λ1λ2
r2 +
1
λ1
r1 .
5 La ecuaci´on s = 0 se puede interpretar como un sistema lineal en ν′
1(0),
ν′
2(0) y ν1(0). Este sistema tiene una soluci´on ´unica a menos que p2
xx = o.
6 Considere los parches cuadr´aticos
p(x, y) = pijB44
ij (x, y) y
q(x, y) = qijB44
ij (x, y)
188 13. Construcci´on de superficies suaves
tales que las curvas frontera p(x, 0) y q(x, 0) coinciden y son c´ubicas.
Vea la Figura 13.8. Y sean λ, µ y ν, funciones de conexi´on de grado 1, 1
y 3, respectivamente, tales que la condici´on de continuidad G1
λpy(x, 0) = µpy(x, 0) + νqx(x, 0)
y su derivada con respecto a x, en x = 0 y x = 1, se satisfacen.
Figura 13.8: Desplazamiento de los puntos de B´ezier para garantizar la conexi´on
G1
para todo x.
Demuestre que, en general se pueden ajustar los puntos p21 y q21 de
manera que la condici´on G1
se satisfaga para todo x.
14 Construcciones - Gk
14.1 La conexi´on general Ck
— 14.2 Conexiones Gk
usando curvas tranversales
— 14.3 Conexiones Gk
usando la regla de la cadena — 14.4 Superficies Gk
de topolog´ıa arbitraria — 14.5 Parches suaves de n lados — 14.6 Parches
multilaterales en el plano — 14.7 Ejercicios
Dos parches se pueden conectar suavemente si cada uno se puede parametrizar
de manera tal que todas sus derivadas hasta cierto orden son iguales en
cada uno de los puntos de su frontera com´un. Para una reparametrizaci´on
arbitraria esta condici´on para una conexi´on suave significa que, en cada punto
de la frontera com´un las derivadas de ambos parches est´an relacionadas por
una matriz de conexi´on. Esto es an´alogo al caso de las curvas.
En este cap´ıtulo consideraremos las condiciones de suavidad y las utilizaremos
para construir superficies de topolog´ıa arbitraria con un grado de suavidad
prescrito.
14.1 La conexi´on general Ck
Sean p y q dos parches regulares con una curva frontera com´un b.
Figura 14.1: Una conexi´on general Ck
.
190 14. Construcciones - Gk
Decimos que p y q tienen una conexi´on general Ck
a lo largo de b si para
cada b0 de b estos dos parches tienen una conexi´on local Ck
simple, repara-
metrizando si es necesario. Esto significa que localmente existen reparame-
trizaciones regulares u y v tales que p ◦ u y q ◦ v tienen derivadas parciales
iguales a lo largo de la curva b hasta orden k. N´otese que es suficiente repara-
metrizar uno solo de los parches, digamos q por v ◦ u−1
, vea la Figura 14.2.
Una conexi´on general Ck
se denomina tambi´en conexi´on Gk
.
Figura 14.2: La conexi´on general Ck
simplificada.
Si p y q tienen una conexi´on Gk
en un punto b0, de su frontera com´un,
entonces se puede construir una parametrizaci´on local Ck
proyectando sobre
un plano conveniente. Esto se deduce del teorema de la funci´on impl´ıcita.
r(x, y) =
p ◦ u ◦ φ−1
(x, y) si (x, y) yace en π(p)
q ◦ v ◦ ψ−1
(x, y) si (x, y) yace en π(q)
.
Figura 14.3: Parametrizaci´on por proyecci´on.
14.2. Conexiones Gk
usando curvas transversales 191
14.2 Conexiones Gk
usando curvas transversales
Un m´etodo para verificar si dos parches p y q tienen una conexion Gk
a lo
largo de su frontera com´un b(t) est´a dado por:
Si b(t) es diferenciable, y si para cada b0 en b(t) existe una curva
regular c(s) k veces diferenciable que yace en la uni´on de p y q, e
intersecta transversalmente la curva b entonces p y q tienen una
conexi´on Gk
.
Probaremos este hecho por inducci´on sobre k. De acuerdo a nuestras hip´otesis,
p y q est´an conectados continuamente. Por lo tanto es suficiente verificar la
condici´on de conexi´on Gk
suponiendo que p y q tienen conexi´on Gk−1
a lo
largo de b para k  0.
Supongamos que p y q est´an parametrizados localmente alrededor de b0 =
b(t0) = c(s0) por una proyecci´on π sobre un plano P, tal como se ilustra
en la Figura 14.2. Sin p´erdida de generalidad podemos usar las coordenadas
afines x e y con respecto al sistema dado por πb y las derivadas de πb y πc
en el punto πb0.
Es m´as, sean
¯p = px i...x y j
...y y ¯q = qx i...x y j
...y
derivadas parciales de p y q de orden i + j = k − 1. Entonces la hip´otesis de
inducci´on implica
¯p(πb(t)) = ¯q(πb(t)) .
Derivando esta expresi´on con repsecto a t en t = t0
¯px(o) = ¯qx(o) .
Entonces s´olo queda por verificar
∂k
∂yk
[p(o) − q(o)] = o .
Como la curva c(s) es k veces continuamente diferenciable obtenemos
o =
∂k
∂sk
[c(s) − c(s)]s=s0
=
∂k
∂sk
[p(πc(s)) − q(πc(s))]s=s0
.
Usando la regla de la cadena podemos expresar esta derivada en t´erminos de
la derivada de πc y las parciales de p y q. Entonces como πc′
(s0) = (0, 1) y
se tiene
o =
∂k
∂yk
[p(x) − q(x)]x=0 ,
192 14. Construcciones - Gk
lo cual concluye la prueba.3
Observaci´on 1: Si la curva b(t) no es diferenciable en t = t0, pero el
cociente [b(tn) − b(t0)]/(tn − t0) converge a dos direcciones diferentes, por lo
menos para dos secuencias tn → t0, entonces p y q tienen una conexi´on Gk
en b(t0) si tienen una conexi´on Gk−1
a lo largo de b(t).
14.3 Conexiones Gk
usando la regla de la cadena
Sean p(u, v) y q(u, v) dos superficies regulares tales que p(0, y) = q(0, y).
En 14.1 vimos que se tiene una conexi´on Gk
a lo largo de x = u = 0 si para
cada u existe una reparamtrizaci´on local u(x, y) para q tal que las derivadas
de p(x, y) y q(u(x, y)) son iguales hasta orden k.
De 14.2 se desprende que si todas las parciales de p y q ◦ u con respecto a x
son iguales, entonces todas las derivadas cruzadas tambi´en son iguales. Por
lo tanto p y q tienen una conexi´on Gk
a lo largo de x = u = 0 si y s´olo
si existe una apliciaci´on regular Ck
u(x, y) = (u(x, y), v(x, y)) tal que para
todo (0, y) se tiene
p = q
px = qu ux + qv vx
pxx = quuu2
x + 2quvuxvx + qvvv2
x + quuxx + qvvxx
etc. ,
donde ux  0. N´otese que u(0, y) = (0, y).
En paraticular, si p y q son racionales, estas condiciones Gk
implican que
ux(0, y), vx(0, y), uxx(0, y), . . . son tambi´en funciones racionales.
Las condiciones de conexi´on Gk
se simplifican si u es lineal en x. En este
caso ux s...x es cero para s = 2, . . . , k y se tiene
p = q ,
px = qu α + qv β ,
pxx = quuα2
+ 2quvαβ + qvvβ2
,
...
px k...x =
i+j=k
k
i
qu i...uv j
...vαi
βj
,(1)
donde α = α(y) = ux(0, y) y β = β(y) = vx(0, y).
Note que el lado derecho de la igualdad representa tambi´en las derivadas de
q en la direcci´on [α β]t
= ux.
Observaci´on 2: Una derivada parcial cruzada px i...xy j
...y se puede expresar
en t´erminos de las parciales cruzadas de q hasta orden total i + j y de las
14.4. Superficies Gk
de topolog´ıa arbitraria 193
parciales cruzadas de u(x, y) hasta orden (i, j). Por ejemplo
pxy = quuuxuy + quv(uxvy + uyvx) + qvvvxvy + quuxy + qvvxy .
Observaci´on 3: En particular, si u(x, y) es una dilataci´on en x e y, es decir,
u(x, y) = [c1x c2y]t
, entonces todas las parciales cruzadas px i...xy j
...y se pueden
expresar en t´erminos de las parciales cruzadas de q y u hasta de orden (i, j).
14.4 Superficies Gk
de topolog´ıa arbitraria
En esta secci´on consideramos la t´ecnica de dise˜no a “mano alzada”. Nues-
tra meta es construir superficies que interpolen un conjunto v´ertices ci con
contactos prescritos en esos puntos ci por superfices polin´omicas si. Consid-
eramos que los ci est´an organizados en una malla de cuadidrl´ateros.
La superficie resultante es Gk
continua y consiste de parches producto ten-
sorial, cada uno definido sobre [0, 1] × [0, 1]. Cada parche correponder´a
un´ıvocamente a un cuadril´atero.
Por simplicidad suponemos que la malla es orientable y no tiene frontera.
Un v´ertice se denomina regular si tiene exactamente cuatro vecinos e irregu-
lar si esta condici´on no se cumple. Supondremos adem´as que los v´ertices
irregulares est´an aislados, esto significa que los vecinos de cada v´ertice aislado
son regulares, vea la Figura 14.4.
Figura 14.4: Malla con v´ertices irregulares aislados.
Los pasos de la construcci´on son los siguientes:
1. Se reparametrizan las superficies si por rotaciones del dominio.
194 14. Construcciones - Gk
2. Para cualesquiera dos superficies vecinas, si y sj, calculamos un inter-
polador de Hermite bij.
3. Para cada cuadril´atero cicjckcl de la malla construimos un parche p
que tiene contacto Gk
con bij, bjk, bkl y bli a lo largo de sus cuatro
curvas frontera. Si todos las v´ertices son regulares p tiene bi-grado
2k + 1 y si no, entonces el bigrado es 2k2
+ 2k + 1.
A continuaci´on daremos la descripci´on detallada de cada uno de estos pasos.
1. Para cada i, suponemos que si(0, 0) = ci y denotamos por, ν el n´umero
de segmentos que confluyen en ci. Rotamos la superficie si por ϕi = 360◦
/ν.
Estos producen los polinomios
sk
i (x) = si(Rk
x) ,
donde
R =
cos ϕi − sin ϕi
sin ϕi cos ϕi
.
Enumeramos los vecinos de ci en el sentido contrario de las agujas del reloj.
Si cj es el k-´esimo vecino, entonces asociamos el polinomio escalado
sij(x) = sk
i x,
y
tan(ϕj/2)
con la arista dirigida cicj. Esto se ilustra en la Figura 14.5.
Figura 14.5: Reparametrizaci´on del dominio por rotaci´on.
14.4. Superficies Gk
de topolog´ıa arbitraria 195
2. Para cada arista dirigida cicj se determina un polinomio bij(x) por in-
terpolaci´on de Hermite de sij(x) y sji(x). Si ci es regular entonces bij se
construye de manera que hasta orden (k, k) sus derivadas en x = (0, 0) coin-
cidan con las de sij. Esto se abrevia por
bij(x)
k,k
=x = 0
sij(x) .
Si ci es irregular, entonces se requiere C2k
-contacto,
bij(x)
2k
=x = 0
sij(x)
y an´alogamente en x = (1, 0), se requiere contacto Ck,k
o contacto, C2k
de
bij(x, y) y sji(1 − x, −y), respectivamente. Esto se ilustra en la Figura 14.6.
Figura 14.6: Un polinomio frontera.
Los bij se determinan de manera tal que sus derivadas transversales
∂r
∂yr
bij(x, 0) , r = 0, . . . , k ,
tengan grado minimal. Por lo tanto si ci y cj son regulares, entonces bij tiene
grado 2k+1 y si ci o cj es irregular, entonces ∂r
∂yr bij tiene grado 3k+1−r. Los
puntos de B´ezier de bij se presentan esquem´aticamente en la Figura 14.7 para
k = 2, cuando ci es irregular. Los puntos determinados por los C2k
-contactos
en ci se se˜nalan con tri´angulos △, los puntos determinados por los contactos
Ck,k
en cj se denotan con cuadrados y los puntos determinados por la
condici´on de minimalidad se se˜nalan con c´ırculos ◦. Los puntos etiquetados
por “ · ” no son de inter´es.
An´alogamente se obtiene un segundo polinomio bji para la arista (orientada
al rev´es) cjci. Por construcci´on ambos polinomios tienen contacto simple Ck
a lo largo de y = 0,
bij(x, y)
k
=y = 0
bji(1 − x, −y) .
Adem´as, tambi´en por construcci´on, los polinomios bij y bik asociados al
v´ertice ci tienen contacto Gk,k
o G2k
en ci.
196 14. Construcciones - Gk
Figura 14.7: Esquema de los puntos de B´ezier de un polinomio frontera.
3. Para cualquier cuadril´atero de la malla se construye un parche p(u, v) de
la superficie final Gk
a partir de los cuatro polinomios asociados a sus aristas.
Para cada cicj usamos la reparametrizaci´on
xij(u, v) = brsB2k,2k
rs (u, v)
de bigrado 2k. La malla de B´ezier de la reparametrizaci´on xij se muestra en
la Figura 14.8 para k = 2 y ϕ = ϕi = 360◦
/5.
Figura 14.8: Reparametrizaci´on xij.
En general, si cj es regular, los puntos de B´ezier relevantes de xij est´an dados
por
brs =
cos ϕi
sin ϕi
B11
01(u, v) +
1
tan ϕi
2
B11
11(u, v)
+
0
0
B11
00(u, v) +
1
0
B11
10(u, v)
donde (u, v) = 1
2k (r, s) si r, s ≤ k y por
brs =
1
2k
r
s sin ϕi
2
si s ≤ k ≤ r .
14.5. Parches suaves de n lados 197
Los puntos de B´ezier restantes brs, para r  k pueden escogerse en forma
arbitraria, lo cual se indica por l´ıneas punteadas en la Figura 14.8. Si cj es
irregular, xij se obtiene a partir de xji por medio de la transformaci´on
xij(u, v) =
1
0
+
−1 0
0 1
xji(1 − u, v) .
Note que la aplicaci´on xij es la identidad si ci y cj son regulares.
Sean c1, c2, c3, c4 los v´ertices de un cuadril´atero (ordenados en el sentido
contrario a las agujas de un reloj). Entonces el parche p(u, v) correspondiente
de la superficie final Gk
se construye de manera que
(2) p(u, v)



k
=v = 0
b12 ◦ x12(u, v)
k
=u = 1
b23 ◦ x23(v, 1 − u)
k
=v = 1
b34 ◦ x34(1 − u, 1 − v)
k
=u = 0
b41 ◦ x41(1 − v, u)
Note que, por construcci´on, las derivadas parciales de p hasta orden (k, k)
en los v´ertices est´an bien definidas por estas condiciones. Adem´as recuerde
que la r-´esima derivada transversal a la frontera de un polinomio bij es de
grado menor o igual que ≤ 3k + 1 − r. Por lo tanto se desprende de (1) en
14.3 que la r-´esima derivada transversal a la curva frontera de p(u, v) es de
grado menor o igual que 2kr + 3k + 1 − r ≤ 2k2
+ 2k + 1. A lo largo de una
arista entre dos v´ertices regulares el grado es m´as bajo, de hecho menor o
igual que ≤ 2k + 1.
Si todos los v´ertices son regulares, las condiciones (2) definen un ´unico parche
p de bigrado 2k + 1. Si uno o dos de los v´ertices son irregulares entonces
p ha de tener bigrado 2k2
+ 2k + 1 para satisfacer todas las condiciones de
frontera (2). Sin embargo en este caso, las condiciones (2) no determinan p
completamente: sus 2k2
×2k2
puntos de B´ezier interiores pueden ser escogidos
arbitrariamente.
14.5 Parches suaves de n lados
La construcci´on en 14.4 produce una superficie de bigrado 2k2
+ 2k + 1.
A´un para k = 2, el bigrado resultante: 13, podr´ıa ser demasiado alto en
aplicaciones pr´acticas. Concretamente, los costos de almacenamiento son
altos y los procesos de evaluaci´on, largos y susceptibles a errores de redondeo.
198 14. Construcciones - Gk
Para evitar lo anterior [Prautzsch ’97] introdujo un m´etodo general para cons-
truir superficies Gk
regulares de bigrado 2(k+1). A continuaci´on presentamos
las ideas fundamentales de este m´etodo.
Recordemos de 14.4 y 13.4 que la dificultad fundamental para construir
una superficie suave con parches rectangulares (o triangulares) consiste en
la uni´on de tres o m´as de cuatro parches con un v´ertice com´un. Por lo tanto
es de inter´es estudiar parches suaves con n curvas frontera, que puedan ser
ajustados con conexiones simples Ck
en huecos con n lados. Para construir
tales superficies se puede proceder de la manera siguiente.
Primero, construimos una reparametrizaci´on del plano x, y con parches
planos xi(u), u ∈ [0, 1]2
, i = 1, . . . , 4n, de bigrado k+1 de manera que formen
un pol´ıgono curvil´ıneo, tal como se ilustra en la Figura 14.9 para n = 5. Los
parches interiores x1, . . . , xn = x1 tienen conexi´on C0
,
xi(0, u) = xi+1(u, 0) ,
mientras que todas las otras conexiones son conexiones simples Ck
, es decir,
para todo u, v e i = 1, . . . , n se satisfacen las siguientes ecuaciones:
xi(u, 1)
k
= xi+3n(u, 0) ,
xi(1, v)
k
= xi+2n(0, v) ,
xi+3n(1, v)
k
= xi+n(0, v) ,
xi+n(u, 0)
k
= xi+2n(u, 1) ,
x1+2n(u, 0)
k
= x4n(0, u)
y para i = 2, . . . , n
xi+2n(u, 0)
k
= xi+3n(0, u) .
Note que todas la conexiones son G∞
(es decir, Gk
, para cualquier k )
pues la superficie yace en el plano. En 14.6 describiremos los parches xi,
expl´ıcitamente.
Segundo, consideramos cualquier polinomio p(x, y) en IR3
y lo reparametri-
zamos a trav´es de las aplicaciones xi. Entonces obtenemos 4n parches
pi(u) = p(xi(u)) , i = 1, . . . , 4n ,
conectados G∞
. Es m´as, dos parches adyacentes pi y pj con i ≥ n o j ≥ n
tienen una conexi´on Ck
simple.
La superficie con n lados que consiste de los parches pi se denomina macro-
parche o suscintamente p-parche. El p-parche tiene muchos par´ametros
14.5. Parches suaves de n lados 199
Figura 14.9: Un macroparche plano de n lados, n = 5.
libres, o sea que los parches pi pueden ser modificados preservando las cone-
xiones Ck
simples y las Gk
-conexiones.
En particular, sea p un polinomio cuadr´atico, entonces el p-parche es de
bigrado 2k + 2. Sus puntos de B´ezier se despliegan esquem´aticamente en
la Figura 14.10 para k = 1 y n = 5. Los puntos de B´ezier indicados con
puntos s´olidos determinan las conexiones Gk
entre los n parches interiores y
se denominan fijos.
Los puntos de B´ezier etiquetados con cuadrados y aquellos sin marcas se
denominan libres. Estos pueden ser modificados arbitrariamente. Los dem´as
puntos de B´ezier est´an etiquetados con c´ırculos y son dependientes. ´Estos
se determinan a partir de la condici´on de que cualesquiera dos parches adya-
centes pi y pj para j  n, tengan una conexi´on Ck
simple .
Similarmente, tenemos puntos de B´ezier fijos, libres y dependientes para
cualesquiera k y n. En particular, se pueden escoger todos los puntos de
B´ezier libres de manera que todas las n fronteras del p-parche y tambi´en sus
derivadas transversales hasta orden k (o k + 1) sean polin´omicas y no sola-
mente polin´omicas por trozos. En consecuencia dados cualesquiera parches
polin´omicos r1, . . . , r2n de bigrado menor o igual 2k + 2 con Ck
conexiones,
as´ı como se ilustra en la Figura 14.11, existen p-parches de n lados de bigrado
2k + 2 que se ajustan con conexiones Ck
al hueco formado por r1, . . . , r2n.
Tambi´en es posible escoger los puntos de B´ezier de dos p-parches de manera
que tengan cuatro parches polin´omicos en com´un. Por ejemplo, los puntos de
B´ezier indicados por cuadrados en la Figura 14.10 pueden escogerse como
los puntos de B´ezier fijos del segundo p-parche.
200 14. Construcciones - Gk
Figura 14.10: Puntos de B´ezier de un macroparche de 5 lados.
Por lo tanto, si cada v´ertice irregular tiene s´olo vecinos regulares, es posible
interpolar cualquier malla de cuadril´ateros por medio de parches polin´omicos
con conexiones Gk
simples y generales.
Una cara de la malla de este interpolador corresponde a un parche de bigrado
2k + 1 si todos sus v´ertices son regulares, y corresponde a cuatro parches de
bigrado 2k + 2, en caso contrario. En v´ertices regulares, la superficie puede
interpolar cualesquiera parciales cruzadas hasta orden (k, k) y en v´ertices
extraordinarios hasta orden 2.
14.6 Parches multilaterales en el plano
En 14.5 consideramos p-parches planos que consisten de 4n parches x1, . . . , x4n
de bigrado k+1 con conexiones simples C0
y Ck
, lo cual se ilustra en la Figura
14.9 . En esta secci´on estudiamos los p-parches planos expl´ıcitamente. Estos
parches son regulares e inyectivos y no tienen superposici´on. Omitiremos los
detalles t´ecnicos de la prueba.
La Figura 14.12 muestra los puntos de control de la representaci´on B-spline,
de los parches exteriores xn+1, . . . , x4n para k = 4 y n = 5. ´Estos se indican
por c´ırculos. El centro de la figura es un punto de control m´ultiple. Los
c´ırculos peque˜nos indican algunos de los puntos de control para el caso k = 3
14.6. Parches multilaterales en el plano 201
Figura 14.11: Construyendo un p-parche para un hueco.
y n = 5.
A continuaci´on especificamos estos parches con mayor precisi´on. Cualesquiera
cuatro parches de la frontera xi+n, xi+3n, xi+1+2n, xi+1+n forman una super-
ficie B-spline producto tensorial
si(u, v) =
k+1
r=3
k+1
s=0
ci
rsNi(u)Nj(v) , (u, v) ∈ [k − 2, k + 2] × [k + 1, k + 2]
donde los Ni denotan los B-splines uniformes de grado k + 1 y nodos i, i +
1, . . . , i + k + 2. Note que las superficies si se superponen en los parches de
las esquinas xi+n.
Los puntos de control ci
00, . . . , ci
k−2,k−2 son todos cero y para k par, los puntos
crs, tales que r y s  k
2 − 1, est´an dados por
ci
rs = (r −
k
2
+ 1)
cos ϕi−1
sin ϕi−1
+ (s −
k
2
+ 1)
cos ϕi
sin ϕi
,
con ϕi = i · 360◦
/n. Los dem´as puntos de control se definen por la relaci´on
ci
rs = ci+1
s,k−2−r , −3 ≤ r ≤
k
2
− 1 y
k
2
− 1 ≤ s ≤ k + 1 .
Los centros de los cuadril´ateros de la malla de control son los puntos de
control ci
rs para los xi de bigrado impar k.
Los n parches interiores x1, . . . , xn tienen contacto Ck
con los parches exterio-
res xn+1, . . . , x4n. Por lo tanto conocemos todos los puntos de B´ezier con
202 14. Construcciones - Gk
Figura 14.12: La malla de control para xn+1, . . . , x4n.
la excepci´on de x00, el cual est´a asociado con el polinomio de Bernstein,
producto tensorial Bk+1
0 (u) · Bk+1
0 (v). Por razones de simetr´ıa definimos
x00 = 0.
Observaci´on 4: La escogencia de arriba de los xi no es la ´unica posible.
Por ejemplo, la aplicaci´on caracter´ıstica del esquema del punto medio, vea
16.1 y 16.6, provee tambi´en buenos candidatos pra los parches xn+1, . . . , x4n
para k = 1 y k = 2.
Observaci´on 5: Los parches x1, . . . , xn tienen una singularidad en el origen
si cij = o para todo i, j = 0, . . . , k − 1. Con esta reparametrizaci´on la
construcci´on de 14.6 resulta en splines Ck
parametrizados singularmente,
v´ease [Reif ’98].
14.7 Ejercicios
1 Calcule la derivada
∂i+j
∂xi∂yj
q(u(x, y))
en t´erminos de las derivadas parciales de q(u, v) y u(x, y).
2 En 14.4 se supone que cada parche de la superficie Gk
que se construye
tiene por lo menos dos v´ertices regulares en esquinas opuestas.
14.7. Ejercicios 203
Modifique la construcci´on de manera que esta condici´on no sea necesaria.
¿Cual es el grado de la superficie resultante?
3 Haga una construcci´on similar a la de 14.4 pero consistente de parches
triangulares conectados Gk
. ¿Cu´al es el m´aximo grado de los parches?
4 Haga una construcci´on similar a la de 14.6, de un p-parche regular que
consiste de parches polin´omicos triangulares con conexiones Gk
. ¿En este
caso cu´al ser´ıa el grado m´aximo de los parches?
5 Desarrolle una construcci´on de un macroparche multilateral plano consis-
tente de parches triangulares con conexiones C0
o Ck
. Trabaje
an´alogamente a 14.6. Demuestre que el grado minimal de un tal macro-
parche es 3k/2 + 1. V´ease [Prautzsch  Reif ’99].
Volltext algebra superior
15 Subdivisi´on estacionaria para mallas
regulares
15.1 Esquemas de producto tensorial — 15.2 Subdivisi´on estacionaria en general
y m´ascaras — 15.3 Teoremas de convergencia — 15.4 Promedios crecientes
— 15.5 C´alculos con esquemas de diferencias — 15.6 C´alculos con esquemas de
promedios — 15.7 Subdivisi´on de mallas triangulares — 15.8 Box splines sobre
mallas triangulares — 15.9 Subdivisi´on de mallas hexagonales — 15.10 Half-box
splines sobre mallas triangulares — 15.11 Ejercicios
En el esquema de subdivisi´on una malla de control regular se transforma
en otra malla de control regular cuyos v´ertices son combinaciones afines de
los puntos de control originales. Los pesos de esta combinaciones afines se
pueden dar gr´aficamente por medio de m´ascaras o pueden ser representadas
algebraicamente a trav´es de un polinomio caracter´ıstico como en el caso de
curvas.
En este cap´ıtulo discutimos esquemas de subdivisi´on especiales y generales
sobre mallas triangulares y hexagonales e introducimos box splines y half-box
splines sobre mallas triangulares regulares.
15.1 Esquemas de producto tensorial
Cualesquiera dos esquemas de subdivisi´on para curvas definen un esquema de
subdivisi´on para productos tensoriales, definido sobre una malla rectangular.
Tal como fue presentado en 8.6 y 8.8, sean A = [αj−2i] y B = [βj−2i]
dos esquemas estacionarios para curvas, y sean α(x) = αixi
y β(y) =
βjyj
, sus polinomios caracter´ısticos, respectivamente. Sean cij, i, j ∈ Z
los v´ertices de una malla rectagular y supongamos, por simplicidad que la
matriz C = [cij] es bi-infinita en filas y columnas. Esto tambi´en cubre el caso
de mallas finitas pues siempre se pueden agregar puntos de control iguales a
cero.
Diremos que la secuencia de mallas de control
Cm = (At
)m
CBm
206 15. Subdivisi´on estacionaria para mallas regulares
obtenida a partir de C subdividiendo m veces, todas las columnas usando A y
todas las filas usando B, resulta de la aplicaci´on del esquema de producto
tensorial dado por A y B.
M´as precisamente, cualquier v´ertice cm+1
ij de la malla Cm+1 se calcula a partir
de los v´ertices cm
kl de Cm a trav´es de la ecuaci´on de refinamiento
cm+1
ij =
k l
cm
kl αi−2k βj−2l .
Usando los multi-´ındices i, j ∈ Z2
y la abreviaci´on γkl = αkβl la ecuaci´on
de refinamiento toma una forma similar a la de 8.8 para los esquemas de
curvas, concretamente
cm+1
i =
j
cm
j γi − 2j .
Si A y B coinciden en la matriz de subdivisi´on del algoritmo de Lane-
Riesenfeld Sn = DMn
, para splines uniformes de grado n, (vea 8.4), entonces
el esquema de producto tensorial que se le asocia tambi´en se puede describir
por medio de los siguientes dos operadores.
El operador de duplicaci´on D cuadruplica todos los puntos de control de
una malla de control C,
D(C) = Dt
CD = [c⌊i/2⌋] .
Sean e1 = [1 0], e2 = [0 1] y e = [1 1]. Entonces el operador de prome-
diaci´on A aplica una malla C en la malla
A(C) = Mt
CM =
1
4
[ci + ci−e1
+ ci−e2
+ ci−e]
la cual conecta los centroides de cualesquiera dos cuadril´ateros de C que
tengan una arista com´un.
Entonces el algoritmo de Lane-Riesenfeld para splines producto tensorial de
bigrado n est´a dado por el operador Mn = An
D. En particular, M1 = AD
representa el operador de refinamiento que aplica una malla C en una malla
M1(C) m´as fina, que conecta los puntos medios de la aristas de C con sus
extremos y los centroides de dos cuadril´ateros adyacentes de C. En la Figura
15.1 la malla C se indica con trazos suaves, la malla M1(C) con trazos suaves
y trazos punteados y la malla M2(C) con trazos s´olidos.
Observaci´on 1: De 8.2 se desprende que para cualquier m la secuencia de
mallas de control
Cm
= [cm
ij ] = Mm
n (C)
representa la misma superficie spline
s(u, v) =
i,j
cijNn
i (u)Nn
j (v) ,
15.2. Subdivisi´on estacionaria en general y m´ascaras 207
Figura 15.1: Refinaci´on y promediaci´on de una malla.
donde Nn
i denota el B-spline uniforme de grado n sobre los nodos i, i +
1, . . . , i + n + 1. Aplicando dos veces el resultado sobre convergencia de 6.3
se obtiene la siguiente estimaci´on
sup
i,j
s((i, j)/2m
) − cm
ij = O(1/4m
)
bajo la condici´on que las segundas derivadas de s est´an acotadas en IR2
.
15.2 Subdivisi´on estacionaria en general y
m´ascaras
Cualquier ecuaci´on de refinamiento
cm+1
i =
k
cm
k γi−2k
con un n´umero finito de coeficientes γi representa un esquema general de
subdivisi´on. Si los γij son productos de la forma αiβj, entonces se tiene el
esquema de producto tensorial, presentado en 15.1.
En la ecuaci´on de refinamiento se presentan cuatro tipos de combinaciones
diferentes. Los ´ındices k de los pesos γk usados en el c´alculo del punto ci
m+1
forman el conjunto i + 2Z2
el cual es uno de los siguientes
Z2
, e1 + Z2
, e2 + Z2
, e + Z2
.
Las cuatro matrices (finitas) [γ−2k], [γe1−2k], [γe2−2k] y [γe−2k] se denominan
m´ascaras. Las m´ascaras tambi´en caracterizan el esquema de subdivisi´on.
Observaci´on 2: Una condici´on necesaria para la convergencia de un es-
quema de subdivisi´on es que cada m´ascara defina una combinaci´on af´ın, (vea
208 15. Subdivisi´on estacionaria para mallas regulares
15.3). Esto significa que los pesos de cada m´ascara deben sumar uno. Sin
embargo, para evitar fracciones es com´un trabajar con alg´un m´ultiplo. La
m´ascara siempre se puede recuperar dividiendo por la suma de los pesos. En
lo que sigue usaremos esta convenci´on.
Observaci´on 3: Las cuatro m´ascaras del operador M1 definido en 15.1, son
1 0
1 0
,
1 1
1 1
,
0 0
1 0
,
0 0
1 1
.
Ellas se representan gr´aficamente del lado izquierdo de la Figura 15.2. El
lado derecho de esta figura muestra las cuatro m´ascaras
9 3
3 1
,
3 9
1 3
,
3 1
9 3
,
1 3
3 9
.
del operador M2 = AM∞ para splines bi-cuadr´aticos.
Figura 15.2: Las cuatro m´ascaras del algoritmo de Lane-Riesenfeld M1 (izquierda)
y M2 (derecha).
Observaci´on 4: Note que el operador de refinamiento M1 se describe con
cuatro m´ascaaras, mientras que el operador de promediaci´on A es caracteri-
zado por una sola m´ascara. Las Figuras 15.3 y 15.4 ilustran las m´ascaras de
A y A2
.
Figura 15.3: La m´ascara del operador de promediaci´on A (izquierda) y su acci´on
(derecha).
15.3. Teoremas de convergencia 209
Figura 15.4: La m´ascara del operador A2
(izquierda) y su acci´on (derecha).
15.3 Teoremas de convergencia
Una secuencia de mallas de control Cm = [cm
i ] se obtiene en el esquema de
subdivisi´on estacionaria a partir de una secuencia finita γi:
cm+1
i =
j
cm
j γi−2j .
Decimos que la secuencia Cm converge uniformemente a una funci´on c(x, y)
si el m´aximo de las distancias
sup
i
cm
i − c(i/2m
)
converge a cero, cuando m tiende a infinito.
Si la funci´on l´ımite c(x) es continua y diferente de cero, entonces
los pesos γi−2j, j ∈ Z2
, de cada m´ascara, suman uno.
Para la prueba, sin p´erdida de generalidad podemos suponer que c(o) = o.
Entonces, para todo i, los puntos
cm
i = c(i/2m
) + (cm
i − c(i/2m
))
convergen a c(o) cuando m tiende a infinito. En consecuencia, la suma finita
cm
i =
j
cm−1
j γi−2j
converge a
c(o) =
j
c(o)γi−2j ,
lo cual concluye la prueba. 3
La convergencia de una secuencia de mallas de control Cm, depende de dos
secuencias de pol´ıgonos de diferencias
∇kCm = [cm
i − cm
i−ek
] , k = 1, 2 .
Concretamente, se tiene el siguiente hecho:
210 15. Subdivisi´on estacionaria para mallas regulares
Una secuencia Cm obtenida por subdivisi´on estacionaria converge
uniformemente a una funci´on uniformemente continua c(x, y) si
y s´olo si los pol´ıgonos de diferencias ∇1Cm y ∇2Cm convergen
uniformemente a cero.
Obviamente, si Cm converge a una funci´on continua entonces las diferencias
tienden a cero. Para simplificar la prueba del rec´ıproco supongamos que el
m´aximo de las diferencias
δm = max
k=1,2
sup
i
∇kcm
i ,
converge a cero. Sea adem´as
cm
(x, y) =
i,j
cm
ij Ni(2m
x)Nj(2m
y)
un interpolador lineal por trozos de la malla de control Cm, donde Ni(x) es el
B-spline lineal por trozos sobre los nodos i − 1, i, i + 1. Entonces cm
(i/2m
) =
cm
i .
Como
cm+1
2j − cm
j ≤
k
cm
k − cm
j · |γ2j−2k|
≤ δmγ ,
donde γ es un m´ultiplo de i |γi|, que depende del tama˜no de la m´ascara
[γ2k]. Por lo tanto para i ∈ 2j + {0, 1}2
obtenemos
cm+1
i −cm+1
2j +cm+1
2j −cm
(j/2m
)+cm
(j/2m
)−cm
(i/2m+1
) ≤ 2δm+1+δmγ+δm .
Esto implica
sup cm+1
(x) − cm
(x) ≤ 2δm+1 + (γ + 1)δm .
Por lo tanto los splines lineales cm
(x) y sus mallas Cm convergen uniforme-
mente a funciones uniformemente continuas c(x) . 3
Es m´as, si los pol´ıgonos Cm y los pol´ıgonos de diferencias divididas 2m
∇vCm =
2m
[cm
i − cm
i−v] convergen uniformemente a funciones uniformememnte con-
tinuas c(x) y d(x), respectivamente, donde v ∈ Z2
, entonces
d(x) es la derivada direccional de c(x) respecto a v.
Para la prueba, sea u ∈ Z2
tal que u y v sean linealmente independientes.
Claramente, las mallas de control
[cm
ij ] = [cm
iu+jv]
15.4. Promedios crecientes 211
convergen a c(xu + yv) y los pol´ıgonos de diferencias 2m
∇v[cm
ij ] convergen
a d(xu + yv). Entonces sin p´erdida de generalidad, podemos suponer que
v = e2. Claramente los splines localmente constantes
dm(x, y) =
i,j
2m
∇vcm
ij N0
i (2m
x)N0
j (2m
y)
y los splines
cm(x, y) = dm(x, y)dy =
i,j
cm
ij N0
i (2m
x)N1
j (2m
y)
convergen uniformemente a d(x) y c(x), respectivamente. Entonces c(x, y) =
d(x, y)dy, lo cual concluye la prueba . 3
15.4 Promedios crecientes
En 15.3 consideramos diferencias divididas de mallas de control. En esta
secci´on estudiaremos promedios de mallas
Si la secuencia de pol´ıgonos Cm = [ci]i ∈ Z2
converge uniforme-
mente a una funci´on c(x), con soporte compacto e integrable Rie-
mann, entonces la sucesi´on de promedios
am
ij =
1
4m
2m
−1
k,l=0
cm
i−k,j−l
converge uniformemente a la funci´on uniformemente continua
a(x) =
[0,1]2
c(x − t)dt .
Para la prueba, sea Ω el intervalo (i − [0, 1]2
)/2m
el cual depende de i y m.
Como c(x) tiene soporte compacto y es integrable Riemann, las sumas
i∈Z2
4−m
(sup
x∈Ω
c(x) − inf
x∈Ω
c(x))
convergen a cero. Por lo tanto las sumas de Riemann
rm
i = 4−m
2m
−1
k,l=0
c((i−k, j−l)/2m
)
convergen uniformemente a a(i), para todo i, cuando m tiende a infinito.
Como cm
i converge uniformemente a c(x), los promedios am
i converge uni-
formemente a las sumas de Riemann rm
i lo concluye la prueba. 3
Similarmente se puede demostrar tambi´en el siguiente resultado:
212 15. Subdivisi´on estacionaria para mallas regulares
Si la sucesi´on de pol´ıgonos Cm = [ci]i ∈ Z2
converge uniforme-
mente sobre cualquier compacto a una funci´on continua c(x), en-
tonces los promedios crecientes sobre rectas
bm
i =
1
2m
2m
−1
k=0
cm
i−kv , v ∈ Z2
,
convergen uniformemente sobre cualquier compacto a la funci´on
uniformemente continua
b(x) =
1
0
c(x − tv)dt .
Observaci´on 5: Los promedios am
i son promedios sobre rectas de promedios
sobre rectas. Concretamente,
am
i =
1
2m
2m
−1
k=0
bm
i−ke1
, e1 = [1 0] ,
donde
bm
i =
1
2m
2m
−1
l=0
cm
i−le2
, e2 = [0 1] .
15.5 C´alculos con esquemas de diferencias
Un esquema de subdivisi´on estacionaria tambi´en puede representarse con fun-
ciones generatrices. An´alogamente al m´etodo de la secci´on 8.8, multiplicamos
la ecuaci´on de refinamiento por el monomio xi
= xi
yj
y sumamos sobre i.
Esto resulta en
i
cm+1
i xi
=
i j
cm
j γi−2jx2j
xi−2j
=
j
cm
j x2j
k
γkxk
,
lo cual se puede abreviar como
cm+1
(x) = cm
(x2
)γ(x) .
El factor
γ(x) =
k
γkxk
15.5. C´alculos con esquemas de diferencias 213
representa el esquema de subdivisi´on y se denomina su s´ımbolo o poli-
nomio caracter´ıstico. En el caso de un producto tensorial el polinomio
caracter´ıstico es el producto de dos polinomios univariados, α(x) y β(y), que
representan a los dos esquemas de subdivisi´on de las curvas.
Cualquier esquema de subdivisi´on para curvas tiene un esquema de dife-
rencias subyacente, pero esto en general no es cierto para los esquemas de
subdivisi´on de superficies. Para estudiar cuando un esquema de subdivisi´on
para superficies tiene un esquema de diferencias, identificamos las mallas de
control y los esquemas de subdivisi´on con sus polinomios generatrices.
Dada una malla de control
c(x) = cixi
,
su refinamiento bajo un esquema estacionario γ(x) est´a dado por
b(x) = c(x2
)γ(x) ,
y las diferencias ∇vci = ci − ci−v, v ∈ Z2
, forman el pol´ıgono
∇vc(x) = c(x)(1 − xv
) .
Entonces las diferencias del polinomio refinado b(x) = c(x2
)γ(x) est´an dadas
por
∇vb(x) = ∇vc(x2
)γ(x)
1 − xv
1 − x2v
.
En consecuencia, existe un esquema estacionario, que denominaremos, el
esquema de las ∇v-diferencias, el cual aplica ∇vc en ∇vb si y s´olo si
δ(x) = γ(x)/(1 + xv
) es un polinomio. Cuando δ(x) resulta un polinomio,
entonces es el polinomio caracter´ıstico del esquema de diferencias.
Observaci´on 6: Dada una malla de control C = [ci] denotamos por ∇C la
malla de control cuyos “v´ertices” son las matrices
∇ci = [∇e1
ci ∇e2
ci]
Si la malla de control B se obtiene por subdivisi´on estacionaria de C, entonces
∇B se obtiene a partir de ∇C bajo un esquema estacionario cuyos pesos son
matrices 2 × 2. V´ease [Kobbelt ’00, Cavaretta et al. ’91, Teorema 2.3].
Observaci´on 7: El esquema de Lane-Riesenfeld Mn (vea 15.1), tiene poli-
nomio caracter´ıstico
γ(x, y) = 4−n
(1 + x)n+1
(1 + y)n+1
.
Esto se desprende directamente de la Observaci´on 5 de la secci´on 8.8.
214 15. Subdivisi´on estacionaria para mallas regulares
15.6 C´alculos con esquemas de promedios
Usando polinomios caracter´ısticos es f´acil ver que para cualquier esquema de
subdivisi´on estacionaria hay un esquema estacionario para los promedios.
Sea
cm
(x) = γ(x)cm−1
(x2
)
la representaci´on de la secuencia de mallas de control [cm
i ] obtenida con el
esquema de subdivisi´on estacionaria γ. Usando las variables xk = x2k
esta
secuencia se puede escribir como
cm
(x) = γ(x0) . . . γ(xm−1)c0
(xm) .
Es m´as, para cualquier v ∈ Z2
los polinomios bm
(x) = bm
i xi
que repre-
sentan los promedios por rectas
bm
i =
1
2m
2m
−1
k=0
cm
i−kv .
Tomando yk
= xkv
, lo anterior se puede escribir como
bm
(x) = 2−m
(1 + y + y2
+ y3
+ · · · + y2m
−1
)cm
(x)
= 2−m
(1 + y)(1 + y2
)(1 + y4
) . . . (1 + y2m−1
)cm
(x)
= β(x0) . . . β(xm−1)c0
(x) ,
donde
β(x) = γ(x)(1 + xv
)/2
es el polinomio caracter´ıstico del esquema de promedios obtenido a partir
del esquema γ.
Esto siginifica que el esquema β se puede describir a trav´es del siguiente
algoritmo:
Dados puntos de control bi, i ∈ Z2
y un vector v ∈ Z2
repetimos
1 Para cada i subdividimos con el esquema γ, es decir,
di = j bjγi−2j
2 Para cada i calculamos los promedios por rectas
bi = 1
2 (di + di−v)
Similarmente, se tiene que los promedios
am
i =
1
4m
2m
−1
k,l=0
cm
i−k,j−l
15.7. Subdivisi´on de mallas triangulares 215
se obtienen a partir de los puntos a0
i = c0
i con el esquema estacionario repre-
sentado por
α(x) = γ(x)(1 + x)(1 + y)/4.
Este esquema se describe tambi´en con un algoritmo:
Dados lo puntos de control ai, i ∈ Z2
repetimos
1 Para cada i subdividimos con el esquema γ, es decir,
di = j ajγi−2j
2 Para cada i calculamos los promedios por rectas
fi = 1
2 (di + di−e1
)
3 Para cada i calculamos los promedios por rectas
ai = 1
2 (fi + fi−e2
)
15.7 Subdivisi´on de mallas triangulares
Cada malla regular de cuadril´ateros puede ser transformada en una malla
regular de tri´angulos y viceversa agregando o eliminando aristas “diagonales”
tal como se ilustra en la Figura 15.5. Por lo tanto cada malla regular de
tri´angulos se puede representar por una matriz bi-infinita
C =




... . . .
· · · cij · · ·
. . . ...




cuyos elementos son los v´ertices de la malla.
Figura 15.5: Transformaci´on de una malla regular de cuadril´ateros en una malla
de tri´angulos.
216 15. Subdivisi´on estacionaria para mallas regulares
En particular, los tres vectores
e1 =
1
0
, e2 =
0
1
, e3 =
−1
−1
de IR2
generan una red triangular regular uniforme tal como se ilustra en la
Figura 15.6.
Figura 15.6: Una malla regular uniforme generada por tres vectores.
Usando las tres direcciones de la malla triangular podemos generalizar el
algoritmo de Lane-Riesenfeld a un algoritmo de promediaci´on en tres
direcciones. V´ease [Prautzsch ’84b], y tambi´en [Boehm et al. ’87].
Dada una matriz C = [ci]i ∈ Z2
que representa una malla triangular regular,
la promediaci´on en tres direcciones se describe con cuatro operadores: el
operador de duplicaci´on D, el cual cuadruplica todos los v´ertices
D(C) = [di]i∈Z2 , donde di = c⌊i/2⌋ ,
y los tres operadores de promediaci´onAk, k = 1, 2, 3, los cuales prome-
dian v´ertices con respecto a cada una de las direcciones ek,
Ak(C) = [ai]i∈Z2 , donde ai =
1
2
(ci + ci−ek
) .
Para cualquier n = (n1, n2, n3) ∈ IN3
0, el operador compuesto
Bn = An1
1 An2
2 An3
3 D
representa el algoritmo de promediaci´on en las tres direcciones y Cm =
Bm
n (C) representa la secuencia de mallas triangulares obtenidas a partir de
C con el algoritmo de promediaci´on Bn.
Observaci´on 8: El operador D coincide con el operador M0 de Lane-
Riesenfeld, dado en la Observaci´on 7. Su polinomio caracter´ıstico es
δ(x, y) = (1 + x)(1 + y) .
15.8. Box splines sobre mallas triangulares 217
Observaci´on 9: En particular, B001 representa al operador de refina-
miento R el cual subdivide cada tri´angulo de una malla regular, uniforme-
mente en cuatro subtri´angulos congruentes, tal como se ilustra en la Figura
15.7. Esta figura tambi´en ilustra las cuatro m´ascaras que representan B001.
Los pesos de estas cuatro m´ascaras forman los coeficientes del polinomio
caracter´ıstico de B001, (vea 15.2). Este polinomio es:
γ(x, y) = (1 + x)(1 + y)(1 + xe3
)/2 =
1
2
x−1
1 x


1 1 0
1 2 1
0 1 1




y−1
1
y

 .
Figura 15.7: El operador de refinamiento R aplicado a una malla triangular y sus
cuatro m´ascaras.
Observaci´on 10: Cualquier malla obtenida por aplicaciones sucesivas del
operador de refinamiento R a una malla triangular regualr C representa la
misma superficie lineal por trozos. Por lo tanto una secuencia de mallas
obtenida por refinamiento con R converge.
Observaci´on 11: El operador de promediaci´on sim´etrica A111 = A1A2A3
est´a dado por una sola m´ascara y se ilustra en la Figura 15.8. Esta m´ascara
fue introducida en [Boehm ’83]. El polinomio que representa a A111 es
γ(x, y) =
1
8
1 x x2


0 1 1
1 2 1
1 1 0




1
y
y2

 .
15.8 Box splines sobre mallas triangulares
Sea Cm una secuencia de mallas triangulares obtenidas por la aplicaci´on
del operador de promediaci´on Bn. Claramente, si Bn es el operador de du-
plicaci´on, dado por n = (0, 0, 0), o el operador de refinamiento, dado por
218 15. Subdivisi´on estacionaria para mallas regulares
Figura 15.8: La m´ascara de Boehm del operador de promediaci´on sim´etrica A111.
n = (0, 0, 1), entoces Cm converge a un spline localmente constante o a un
spline continuo y lineal por trozos, respectivamente.
En general, si
k = min{n1+n2, n1+n3−1, n2+n3−1} ≥ 0 ,
entonces, sobre cada dominio compacto, Cm converge a un spline
Ck
, polin´omico de grado total |n| = n1 + n2 + n3 sobre cada
tri´angulo de la malla generada por e1, e2 y e3.
Estos splines son box splines a tres direcciones, los cuales ser´an estudiados
con detalle en el Cap´ıtulo 17.
Para la prueba, aplicamos repetidamente los resultados de 15.4 y 15.6 y
tomamos en cuenta que si f(x) es continua entonces la integral
1
0
1
0
1
0
f(x − ue1 − ve2 − we3)dudvdw
tiene derivadas cruzadas continuas respecto a cualesquiera dos direcciones ei
y ej. Como ei = ej + ek para todas las permutaciones i, j, k de (1, 2, 3),
todas las parciales de orden dos existen. Por lo tanto la integraci´on iterada
con respecto a dos direcciones eleva el grado de suavidad en uno pero la
integraci´on iterada con respecto a tres direcciones lo eleva en dos. 3
Observaci´on 12: El segundo resultado de 15.4 tambi´en es cierto si suponemos
convergencia sobre un compacto a un spline polin´omico por trozos, sobre una
malla triangular. En consecuencia, el teorema anterior tambi´en se cumple
para k = −1.
Observaci´on 13: Si n3 = 0 entonces Bn representa el algoritmo de sub-
divisi´on de Lane-Riesenfeld para productos tensoriales uniformes de bigrado
(n1, n2).
15.9. Subdivisi´on de mallas hexagonales 219
15.9 Subdivisi´on de mallas hexagonales
Cualquier malla regular triangular determina una malla hexagonal cuyas a-
ristas conectan los centros de tri´angulos adyacentes. La Figura 15.9 ilustra
´esto en el caso especial de una malla triangular uniforme
Figura 15.9: Mallas regulares, triangular y hexagonal.
Figura 15.10: Descomposici´on de una malla hexagonal en dos mallas triangulares.
Es m´as, una malla hexagonal regular puede originar dos mallas triangulares
(con v´ertices distintos) tal como se ilustra en la Figura 15.10. Entonces, una
malla regular hexagonal se puede representar por dos matrices bi-infinitas
C∆
=




... . . .
· · · c∆
ij · · ·
. . . ...



 , y C∇
=




... . . .
· · · c∇
ij · · ·
. . . ...



 ,
cuyos elementos son los v´ertices de las mallas o se representan por los poli-
nomios
c∆
(x) = c∆
i xi
y c∇
(x) = c∇
i xi
.
El algoritmo de promediaci´on en tres direcciones de la secci´on 15.7 se puede
adaptar a mallas hexagonales. El operador de duplicaci´on Dhex, para mallas
hexagonales est´a dado por
Dhex[C∆
, C∇
] = [[d∆
i ], [d∇
i ]] ,
220 15. Subdivisi´on estacionaria para mallas regulares
donde
d∆
2i,2j = d∆
2i+1,2j = d∇
2i+1,2j = d∆
2i+1,2j+1 = c∆
ij
y
d∇
2i,2j = d∇
2i,2j+1 = d∆
2i,2j+1 = d∇
2i+1,2j+1 = c∇
ij .
Los ´ındices se indican en la Figura 15.9. Los tres operadores de promediaci´on
Ak, k = 1, 2, 3, definidos en 15.7 se generalizan a
Ak[C∆
, C∇
] = [AkC∆
, AkC∇
] .
Y para cada n = (n1, n2, n3) ∈ IN3
0, el operador compuesto
Hn = An1
1 An2
2 An3
3 Dhex
representa el algoritmo de promediaci´on en tres direcciones para mallas hexa-
gonales introducido en [Prautzsch ’84b].
Los operadores de subdivisi´on Hn tambi´en pueden representarse con matri-
ces caracter´ısticas 2 × 2 cuyos elementos son polinomios. En particular, la
operaci´on de duplicaci´on
[C∆
, C∇
] = Dhex[C∆
, C∇
]
se describe a trav´es de la asignaci´on polin´omica:
c∆
(x)
c∇
(x)
=
1+x+xy y
x 1+y+xy
c∆
(x2
)
c∇
(x2
)
,
lo cual puede abrevirase a
c(x) = D(x)c(x2
) .
La Figura 15.11 ilustra las cuatro m´ascaras asociadas, arriba para la malla
C∆
y abajo para C∇
Figura 15.11: Las ocho m´ascaras del operador de duplicaci´on.
15.10. Half-box splines sobre mallas triangulares 221
Es m´as, la operaci´on de promediaci´on [C∆
, C∇
] = Ak
[C∆
, C∇
] se describe
por la asignaci´on polin´omica
c∆
(x2
)
c∇
(x2
)
=
1
2
(1 + xek
)
c∆
(x2
)
c∇
(x2
)
,
la cual abreviamos por
c(x) = αk(x)c(x) .
Por lo tanto Hn se representa por una matriz polin´omica 2 × 2
αn1
1 αn2
2 αn3
3 D .
La Figura 15.12 muestra la m´ascara asociada con el operador de promediaci´on
sim´etrica A111 = A1A2A3 para C∆
del lado izquierdo, y para C∇
, del lado
derecho.
Figura 15.12: Las m´ascaras del operador de promediaci´on sim´etrica A111.
15.10 Half-box splines sobre mallas triangulares
An´alogamente, al caso de las mallas triangulares y a las de cuadril´ateros,
decimos que una malla hexagonal Cm = [C∆
m, C∇
m] converge uniformemente
a una funci´on c(x) si los supremos
sup
i∈Z2
max{ c∆
im
− c((i+(e1−e3)/3)/2m
) , c∇
im
− c((i+(e2−e3)/3)/2m
) }
convergen a cero cuando m tiende a infinito.
Entonces Cm converge a una funci´on continua c(x) si las dos secuencias de
tri´angulos, C∆
m y C∇
m, convergen a c(x).
Sea Cm = [C∆
m, C∇
m] una secuencia de mallas hexagonales obtenida por la
aplicaci´on repetida del operador de promediaci´on Hn definido en 15.9. Clara-
mente, si Hn es el operador de duplicaci´on, es decir, n = (0, 0, 0), entonces
Cm converge a un spline localmente constante sobre la malla triangular.
222 15. Subdivisi´on estacionaria para mallas regulares
Es m´as, usando los argumentos de 15.6 se puede ver que cualquier secuencia
(AkHn)m
C se obtiene de Hm
n C por promediaci´on creciente, tal como se des-
cribi´o en 15.4. Adem´as, como promediamos la malla hexagonal C a trav´es
de la promediaci´on de las mallas triangulares C∆
y C∇
separadamente, sim-
ilarmente a 15.8, se obtiene lo siguiente:
para k = min{ni + nj|i = j} − 1, la secuencia Cm converge sobre
cualquier compacto a un spline Ck
. Este spline es polin´omico de
grado total |n| = n1 + n2 + n3 sobre cada tri´angulo de la malla
generada por e1, e2 y e3.
Estos splines se denominan half-box splines y ser´an estudiados con deteni-
miento en el Cap´ıtulo 17. En particular, los operadores sim´etricos Hnnn
generan splines C2n−1
localmente polin´omicos, de grado 3n.
15.11 Ejercicios
1 El algoritmo de la mariposa intoroducido por [Dyn et al. ’90] es un
esquema interpolatorio de subdivisi´on de mallas triangulares. Est´a dado
por las dos m´ascaras ilustradas en la Figura 15.13, donde la segunda
m´ascara corresponde a las tres m´ascaras sim´etricas. Demuestre que
cualquier secuencia de mallas triangulares regulares obtenida por aplica-
ciones repetidas del algoritmo de la mariposa, converge a una superficie
C1
para 0  ω  1/2, v´ease [Gregory ’91, Shenkman et al. ’99].
Figura 15.13: La m´ascara del algoritmo de la mariposa.
2 Sea Cm = [cm
i ] una secuencia de mallas obtenida por el refinamiento
cm+1
i = cm
j γ2i−j
a partir de una malla inicial C0. Suponga que para cualquier malla inicial
C0 la secuencia Cm converge a una funci´on c(x). Demuestre que existe
una funci´on refinable N(x), es decir,
N(x) = γiN(2x − i) ,
15.11. Ejercicios 223
la cual define una base, esto es, que la funci´on l´ımite para cualquier malla
C0, se puede expresar como
c(x) = cm
i N(2−m
x − i) .
3 Sea N(x) una base continua para el esquema de subdivisi´on del Ejercicio
2 y sea v ∈ Z2
. Demuestre que
N(x) =
1
0
N(x − tv)dt
es la funci´on base para el esquema de subdivisi´on cuya m´ascara tiene los
coeficientes
γi =
1
2
(γi + γi−v) .
4 En 15.5 se definieron los esquemas de diferencias ∇1, ∇2 y ∇3. Demuestre
que existe un esquema de diferencias ∇v para todo v ∈ Z2
, si existen
esquemas de diferencias ∇1 y ∇2.
5 Encuentre un esquema de subdivisi´on estacionaria tal que los esquemas
de diferencias ∇1 y ∇2 no son estacionarios.
6 Pruebe el segundo teorema de 15.4 en el cual se sustituye la convergencia
a una funci´on uniformemente continua por convergencia sobre compactos
a un spline polin´omico por trozos sobre una malla triangular generada
por e1, e2 y e3.
Volltext algebra superior
16 Subdivisi´on estacionaria para mallas
arbitrarias
16.1 El esquema del punto medio — 16.2 La superficie l´ımite — 16.3 La
parametrizaci´on standard — 16.4 La matriz de subdivisi´on — 16.5 Continuidad
de superficies obtenidas por subdivisi´on — 16.6 La aplicaci´on caracter´ıstica —
16.7 Suavidad de orden superior — 16.8 Mallas triangulares y hexagonales —
16.9 Ejercicios
En 1978 Doo y Sabin presentaron una generalizaci´on del algoritmo de subdi-
visi´on de splines producto tensorial bicuadr´aticos. Simult´aneamentente, Cat-
mull y Clark tambi´en presentaron una generalizaci´on an´aloga para splines
bic´ubicos. Estos algoritmos pueden aplicarse a mallas de cuadril´ateros de
topolog´ıas arbitrarias y producen secuencias de mallas de control que conver-
gen a superficies bicuadr´aticas o bic´ubicas por trozos que tienen un n´umero
finito de “puntos extraordinarios”.
En contraste con la atractiva simplicidad de estos algoritmos ha sido dif´ıcil el
an´alisis de la suavidad de estas superficies l´ımite en sus puntos extraordina-
rios. Tom´o 15 a˜nos y s´olo despu´es de varios intentos por otros investigadores,
Ulrich Reif logr´o establecer un conjunto de condiciones suficientes bajo las
cuales los algoritmos de Catmull-Clark, de Sabin y otros similares generan
superficies cuyo plano tangente var´ıa continuamente.
16.1 El esquema del punto medio
En 15.1 describimos el algoritmo de Lane-Riesenfeld para splines producto
tensorial en t´erminos de dos operadores.
El primero es el operador de refinamiento R, el cual aplica una malla
de control C en una malla RC que conecta los puntos medios de todas las
aristas de C con sus extremos y los centroides de pol´ıgonos adyacentes de la
malla. El segundo es el operador de promediaci´on A el cual aplica una
malla de control C en una malla AC que conecta los centroides de pol´ıgonos
adyacentes de la malla.
Para la aplicaci´on de estos dos operadores no hace falta suponer que los
226 16. Subdivisi´on estacionaria para mallas arbitrarias
pol´ıgonos de la malla C son cuadril´ateros o que la malla es regular. La malla
puede ser arbitraria, tal como se ilustra en Figura 16.1, en la cual las l´ıneas
suaves indican la malla C, las l´ıneas suaves y las punteadas indican la malla
RC y las l´ıneas s´olidas, la malla ARC.
Figura 16.1: Refinamiento y promediaci´on de una malla.
El operador Mn = An−1
R, el cual refina una malla y la promedia (n − 1)
veces sucesivas, se denomina el operador del punto medio. Dada una
malla C decimos que la secuencia de mallas Mi
nC se obtiene a partir de C a
trav´es del esquema del punto medio Mn.
En particular, si C es una malla de cuadril´ateros, entonces Mn representa
el algoritmo de Lane-Riesenfeld para splines producto tensorial de bigrado
n. Es m´as, para mallas arbitrarias, M2 y M3 representan instancias es-
pec´ıficas de los algoritmos de Doo-Sabin [Doo  Sabin ’78] y Catmull-
Clark [Catmull  Clark ’78], respectivamente. La Figura 16.2 ilustra una
secuencia de mallas obtenidas bajo el esquema de subdivisi´on M3.
Para n par e impar el esquema Mn del punto medio tiene propiedades duales.
Si n es impar, todas las mallas Mi
nC, i ≥ 1, son mallas de cuadril´ateros y
si n es par, los v´ertices interiores de cada malla Mi
nC, i ≥ 1, pueden tener
solamente valencia 4. Las mallas cuyos pol´ıgonos no son cuadril´ateros y los
v´ertices internos de valencia = 4 se denominan mallas extraordinarias y
v´ertices extraordinarios, respectivamente.
Cada v´ertice extraordinario de una malla Mi
nC es el resultado de una com-
binaci´on af´ın de v´ertices que yacen alrededor del v´ertice extraordinario co-
rrespondiente de la malla Mi−1
n C. Como un elemento extraordinario de
Mi−1
n C corresponde a lo sumo a un elemento extraordinario en Mi
nC, en-
tonces el n´umero de ´estos ´ultimos est´a acotado por el n´umero de elementos ex-
traordinarios en C. Si C es una malla sin frontera, entonces el n´umero de ele-
mentos extraordinarios es el mismo para cada una de las mallas Mi
nC, i ≥ 0.
Observaci´on 1: La distancia entre dos v´ertices extraordinarios en una
16.2. La superficie l´ımite 227
Figura 16.2: Una secuencia de mallas obtenida por medio del algoritmo de
Catmull-Clark.
malla Mi
nC se define como el n´umero de aristas del camino m´as corto que
los conecta. La distancia entre los dos v´ertices extraordinarios en Mi+1
n C
que les corresponden es aproximadamente el doble.
16.2 La superficie l´ımite
El esquema del punto medio Mn restringido a una submalla regular de una
malla de cuadril´ateros cualquiera coincide con el algoritmo de Lane-Riesenfeld
para splines de bigrado n. Si C es la malla de cuadril´ateros, entonces la
secuencia de mallas Mi
nC, i ∈ IN, converge a una superficie s poligonal por
trozos y las secuencias de v´ertices extraordinarios convergen. Vea 16.5. Estos
puntos l´ımite se denominan puntos extraordinarios de s. Note que s
consiste de un n´umero infinito de parches polin´omicos en cada vecindad de
un punto extraordinario.
En este cap´ıtulo estudiaremos el comportamiento de la superficie l´ımite s en
un punto extraordinario.
De la Observaci´on 1 de 16.1 se desprende que es suficiente considerar una
malla C con un solo punto extraordinario, rodeado de varios anillos de
cuadril´ateros tal como se ilustra en la Figura 16.3.
228 16. Subdivisi´on estacionaria para mallas arbitrarias
Figura 16.3: Mallas de control con un solo punto extraordinario.
Cada submalla regular de la malla Mi
nC que consiste de cuadril´ateros n × n
es la B-malla de control de un parche de la superficie polin´omica s. Los
parches definidos por todas estas submallas regulares de Mi
nC forman una
superficie si, (n − 1) veces diferenciable que es parte de la superficie l´ımite s.
Es m´as, la diferencia de la superficie si y la superficie si−1 forma un anillo ri
de m lados que consiste de 3mρ2
n parches, donde
ρn = ⌊n/2⌋ = max{i ∈ IN|i ≤ n/2} .
Conjuntamente, los anillos ri constituyen la superficie s. Cada superficie
anular ri se puede partir en 3m macroparches r1
i , . . . , r3m
i , cada uno de ellos
parametrizado sobre [0, 1] × [0, 1]. Cada macroparche consiste de ρn × ρn
parches. Esto se ilustra esquem´aticamente en la Figura 16.4, en la cual las
lineas punteadas indican parches de r5
1 para ρn = 3.
Figura 16.4: Los parches rj
i adyacentes, para m = 5.
16.3. La parametrizaci´on standard 229
16.3 La parametrizaci´on standard
La superficie anular completa ri est´a parametrizada sobre 3m copias de
[0, 1] × [0, 1] o equivalentemente, Ω = {1, . . . , 3m} × [0, 1]2
.
Conjutamente todos los anillos conforman una superficie con conexiones sim-
ples Cn−1
. De acuerdo con 9.7 esto significa que
(1)
∂κ
∂uκ rj
i (1, v) = ∂κ
∂uκ rj+1
i (0, v) ,
∂κ
∂vκ rj+1
i (u, 0) = ∂κ
∂vκ rj+2
i (u, 1) ,
∂κ
∂vκ rj+2
i (u, 0) = − ∂κ
∂uκ rj+3
i (0, u)
y
(2)
∂κ
∂vκ rj
i+1(u, 1) = ∂κ
∂vκ rj
i (u
2 , 0) ,
∂κ
∂vκ rj+1
i+1 (u, 1) = ∂κ
∂vκ rj
i (1
2 +u
2 , 0) ,
∂κ
∂uκ rj+1
i+1 (1, v) = ∂κ
∂uκ rj+2
i (0, 1
2 +v
2 ) ,
∂κ
∂uκ rj+2
i+1 (1, v) = ∂κ
∂uκ rj+2
i (1, v
2 ) ,
para todo u, v ∈ [0, 1], i ∈ IN, κ = 0, 1, . . . , n − 1, y j = 1, 4, 7, . . . , 3n − 2,
donde r3n+1
i = r1
i .
Es m´as, si c1, . . . , cp denotan los puntos de control de ri, entonces ´este
tambi´en se puede expresar como
ri(j, u, v) = rj
i (u, v) =
p
l=1
clBj
l (u, v) ,
donde Bj
l (u, v) son ciertos B-splines, producto tensorial de bigrado n.
Observaci´on 2: Usando la numeraci´on de las Figuras 16.3 y 16.4 se obtiene
para n = 2 y j = 2, 3


B2
6 B2
8 B2
9
B2
3 B2
5 B2
7
B2
1 B2
2 B2
4

 =


B3
3 B3
5 B3
7
B3
1 B3
2 B3
4
B3
10 B3
12 B3
15

 =



N0,−2 · · · N0,0
...
...
N−2,−2 · · · N−2,0


 ,
donde Nkm denota el producto tensorial N2
k (u)N2
m(v) de B-splines cuadr´aticos
sobre los nodos k, . . . , k + 3 y m, . . . , m + 3, respectivamente.
230 16. Subdivisi´on estacionaria para mallas arbitrarias
16.4 La matriz de subdivisi´on
Cada superficie anular ri tiene tres funciones coordenada. Denotamos por R
el espacio lineal de todas las posibles funciones coordenada
R = { clBj
l (u, v) | cl ∈ IR} .
Sea
ri(j, u, v) = ci
lBj
l (u, v) ∈ IR3
la superficie anular obtenida por aplicaciones sucesivas del esquema Mn del
punto medio a partir de los puntos del control iniciales c0
1, . . . , c0
p. Como los
puntos ci
l son combinaciones afines ci−1
l , se tiene una matriz de subdivisi´on
S, de dimension p × p tal que para todo i ≥ 1,
[ci
1 . . . ci
p]t
= S[ci−1
1 . . . ci−1
p ]t
.
La matriz de subdivisi´on S es estoc´astica, esto es: sus elementos son no
negativos y cada fila suma uno. Por lo tanto el autovalor dominante de S
corresponde al autovector e = [1 . . . 1]t
. Todos los puntos c2
l dependen de los
v´ertices extraordinarios de la malla inicial c0
1 . . . c0
p. Por lo tanto, S2
tiene
una fila estrictamente positiva, lo cual implica que uno es un autovalor simple
de S2
, v´ease [Micchelli  Prautzsch ’89].
En consecuencia las mallas de control [ci
1 . . . ci
p] convergen a un punto [c . . . c]
de multiplicidad p, el cual representa un punto extraordinario c, de la super-
ficie s resultante del proceso de subdivisi´on.
Observaci´on 3: Usando la numeraci´on de la izquierda de la Figura 16.3 la
matriz de subdivisi´on S para el esquema del punto medio M2 alrededor de
un pol´ıgono de m lados es la matriz c´ıclica 9m × 9m
S =
1
16





S1 S2 · · · Sm
Sm S1 · · · Sm−1
...
...
...
S2 · · · Sm S1





.
Los Si son bloques 9 × 9 de la forma
Si =
Ai O
O O
,
donde O denota matrices cero de varios tama˜nos,
A3 = . . . = Am−1 = [4/m] ,
16.5. Continuidad de superficies obtenidas por subdivisi´on 231
A1 =














a . . . .
9 3 . . .
9 . 3 . .
3 9 . . .
3 9 1 3 .
3 . 9 . .
3 9 1 . 3
3 1 9 . 3
1 3 3 . 9














, A2 =




b . .
3 . 1
. . .
1 . 3



 , Am =








b .
. .
3 1
. .
. .
1 3








con a = 8 + 4/m, b = 4 + 4/m y los elementos que son cero se indican con
puntos.
16.5 Continuidad de superficies obtenidas por
subdivisi´on
A partir de ahora consideramos que R es un espacio lineal arbitrario de
funciones r(j, u, v) definido para j ∈ {1, . . . , 3n} y u, v ∈ [0, 1] las cuales son
k veces diferenciables en u y v. Y sea S una aplicaci´on lineal de R tal que para
cualquier funci´on ri ∈ R y su imagen ri+1 = Sri satisface las condiciones de
suavidad (1) y (2) de 16.3 para todo κ = 1, . . . , k.
Sean x1, . . . , xp los autovectores y los autovectores generalizados de S que
forman una base de R y sean λ1, . . . , λp los autovalores asociados, los cuales
supondremos ordenados en forma decreciente, es decir, |λ1| ≥ |λ2| ≥ . . . ≥
|λp|.
Cualquier superficie anular ri cuyas coordenadas est´an en R, es imagen del
anillo
r0 =



x1
...
xp



y cualquier superficie de subdivisi´on obtenida por aplicaciones sucesivas de
S es una imagen de la superficie r conformada por los anillos
rm = Sm
r0 =



Sm
x1
...
Sm
xp


 , m ∈ IN0 ,
bajo alguna aplicaci´on lineal. Por lo tanto para estudiar la suavidad de estas
superficies de subdivisi´on es suficiente analizar r.
Claramente, los iterados rm convergen al origen cuando |λ1|  1 y convergen
a un punto diferente, es decir, una funci´on constante diferente de cero, si
λ1 = 1 y |λ2|  1 y x1 es una funci´on constante. Recuerde que las funciones
232 16. Subdivisi´on estacionaria para mallas arbitrarias
xi son linealmente independientes. Por lo tanto s´olo una funci´on coordenada
xi puede ser constante.
Si x1 es constante y λ1 = 1, entonces la superficie de subdivisi´on r es un
trasladado de la superficie de subdivisi´on formada por los iterados “m´as cor-
tos” Sm
[x2 . . . xp]t
. En consecuencia para analizar la suavidad es suficiente
suponer |λ1|  1.
Note sin embargo que cualquier esquema de subdivisi´on afinmente indepen-
diente tiene una matriz de subdivisi´on con el autovalor uno asociado a au-
tovectores que son funciones constantes. V´ease por ejemplo el esquema del
punto medio de 16.4.
16.6 La aplicaci´on caracter´ıstica
En esta secci´on continuaremos el an´alisis de la suavidad de la superficie r en el
origen. Cuando |λ1|  1. Supondremos adem´as que λ1 = λ2 (lo cual implica
que λ1 es real) y |λ2|  |λ3| y que los xi son autovectores (no generalizados).
Bajo estas condiciones rm/λm
1 converge a [x1 x2 0 . . . 0]t
. Por lo tanto si r
tiene un plano tangente en el origen , ´este coincide con el plano x1x2. Este
argumento tambi´en demuestra que r no tiene plano tangente en el origen si
hay m´as de dos autovectores dominantes xi.
Si r es una superficie regular en el origen, entonces es la gr´afica de una funci´on
en x1, x2. En particular, esto significa que para cada j = 1, . . . , 3n el parche
cj(u, v) = [x1(j, u, v) x2(j, u, v)], j = 1, . . . , 3n,
tiene inversa. Adem´as las condiciones (1) y (2) de 16.3 implican que la
intersecci´on de dos de estos parches es su frontera com´un. M´as brevemente,
la aplicaci´on c : {1, . . . , 3n} × Ω → IR2
es invertible. Esta aplicaci´on fue
introducida en [Reif ’93] y se denomina la aplicaci´on caracter´ıstica del
esquema de subdivisi´on S. Su imagen es un anillo planar R sin pliegues y los
iterados λm
IR llenan el hueco encerrado por R sin intersecciones dos a dos.
La Figura 16.5 ilustra la situaci´on.
Entonces cualquier coordenada ri de r puede considerarse como una funci´on
sobre U =
∞
m=0 λm
R, es decir, la i-´esima coordenada es la funci´on
(3) ri(x) = λm
i xi(c−1
(x/λm
)) , donde x ∈ λm
R .
16.7 Suavidad de orden superior
Si una superficie de subdivisi´on r es regular y k veces continuamente dife-
renciable, entonces como funci´on de x1, x2 tiene un desarrollo de Taylor hasta
16.7. Suavidad de orden superior 233
Figura 16.5: Una aplicaci´on caracter´ıstica x y su versi´on escalada λx.
orden k en el origen. Comparando esta expansi´on con (3) se deduce que λi
debe ser una potencia de λ o satisfacer |λi|  |λ|k
. Es m´as, si λi = λκ
, se
tiene que el autovector xi es un polinomio homog´eneo de orden κ en x1 y x2.
Rec´ıprocamente, supongamos que los autovalores y autovectores de S tienen
estas propiedades. Si λi = λκ
, κ  k, entonces ri es un polinomio en x1 y
x2. Si |λi|  |λk
|, entonces para cualquier derivada mixta ∂ de orden κ ≤ k
se tiene que
∂ri(x) =
λi
λκ
m
∂(xi ◦ c−1
)(x/λm
)
converge a cero cuando x tiende a cero o equivalentemente cuando m tiende
a infinito.
En consecuencia se tiene el siguiente teorema [Prautzsch ’98]
Suponemos que 1  |λ|  |λ3| y que λ est´a asociado a dos auto-
vectores x1 y x2 que definen una aplicaci´on caracter´ıstica. En-
tonces la superficie de subdivisi´on r es regular y Ck
si y s´olo si
• la aplicaci´on caracter´ıstica es invertible
y
• para todo i = 1, . . . , p se tiene que λi = λκ
y xi pertenece al
espacio generado {xα
1 xβ
2 | α + β = κ} o |λi|  |λ|k
.
Observaci´on 4: El teorema anterior tambi´en es v´alido si uno es un autovalor
de S cuyo autovector asociado es una funci´on constante. V´ease tambi´en
16.5.
Observaci´on 5: Un teorema similar tamb´en es v´alido si los autovalores
234 16. Subdivisi´on estacionaria para mallas arbitrarias
λ1 y λ2 son complejos conjugados o reales distintos, v´ease [Prautzsch ’98,
Reif ’95b].
16.8 Mallas triangulares y hexagonales
El an´alisis presentado hasta ahora en el presente cap´ıtulo tambi´en es v´alido
para la subdivisi´on estacionaria de mallas triangulares y hexagonales.
Una malla triangular arbitraria consiste de tri´angulos, pero podr´ıa tener
v´ertices extraordinarios, es decir, aquellos v´ertices con valencia distinta de 6,
vea la Figura 16.6.
Dualmente a lo anterior, una malla hexagonal arbitraria tiene solamente
v´ertices regulares, es decir, de valencia 3, pero puede contener pol´ıgonos
extraordinarios, es decir, que no tienen 6 lados. Ver la Figura 16.6.
Tal como ya se present´o en 15.9 a partir de una malla triangular se puede
obtener una hexagonal conectando los centros de tri´angulos adyacentes. Simi-
larmente, la obtenci´on de mallas triangulares a partir de mallas hexagonales
se ilustra en la Figura 16.6.
Figura 16.6: Conversi´on de una malla triangular en hexagonal y viceversa.
Tal como se discuti´o en 15.8 y 15.10 una malla triangular o hexagonal con-
trola una superficie que consiste de parches triangulares. En general, estos
parches no tienen porque ser polin´omicos. Alrededor de un punto extraordi-
nario el arreglo de los parches se ilustra en la Figura 16.7. Es m´as, alrededor
de un punto extraordinario es posible aparear parches triangulares para cons-
tituir una malla de cuadril´ateros, lo cual se ilustra en la Figura 16.4.
Por lo tanto el an´alisis de suavidad y el teorema 16.7 tambi´en se pueden
aplicar en el caso de mallas triangulares y hexagonales.
16.9. Ejercicios 235
Figura 16.7: Parches triangulares (cuadrilaterales) alrededor de un punto extra-
ordinario.
16.9 Ejercicios
1 Sea S una matriz estoc´astica n × n con una columna estrictamente posi-
tiva. Demuestre que existe una constante γ ∈ (0, 1) tal que para todos
los vectores v = [v1 . . . vn]t
diam(Sv) ≤ γdiam(v) ,
donde diam(v) denota el di´ametro max vi − min vi. V´ease tambi´en
[Micchelli  Prautzsch ’89].
2 Implemente el algoritmo de la mariposa dado por la m´ascara en la Figura
15.13 para mallas triangulares arbitrarias.
Figura 16.8: Las m´ascaras del algoritmo de Loop.
3 En 1987, Loop [Loop ’87] generaliz´o las m´ascaras de Boehm para el al-
goritmo de subdivisi´on de box splines de grado cuatro considerado en
15.7. Las m´ascaras generalizadas de Loop se pueden aplicar a mallas
236 16. Subdivisi´on estacionaria para mallas arbitrarias
triangulares arbitrarias. Estas se ilustran en la Figura 16.8, en la cual n
denota la valencia del v´ertice y α es un par´ametro libre que depende de n.
Verifique el resultado de Loop, el cual establece que los planos tangentes
de la superfice l´ımite var´ıan continuamente en puntos extraordinarios si
α(6) = 5/8 y −
1
4
cos
2π
n
 α(n) 
3
4
+
1
4
cos
2π
n
.
4 Refine una malla triangular arbitraria subdividiendo cada tri´angulo uni-
formemente en cuatro subtri´angulos. Calcule los centros de los sub-
tri´angulos. Estos puntos son los v´ertices de una malla hexagonal.
Finalmente calcule los centroides de todos los pol´ıgonos ordinarios y ex-
traordinarios de la malla hexagonal. Estas operaciones conforman un
paso del esquema del punto medio para mallas triangulares. Calcule
las m´ascaras de este esquema y comp´arelas con las m´ascaras del algoritmo
de Loop.
5 Refine una malla hexagonal arbitraria cuadruplicando cada uno de los
v´ertices, vea la Figura 15.11. Los nuevos v´ertices definen una malla
hexagonal que contiene pol´ıgonos degenerados. Estos forman una malla
tri´angulos, calcule sus centros. Este proceso es un paso del esquema
del punto medio para mallas hexagonales. Calcule las m´ascaras de
este esquema y comp´arelas con las m´ascaras del algoritmo de subdivisi´on
para los half-box splines c´ubicos de 15.9.
6 Una aplicaci´on caracter´ıstica x polin´omica por trozos regular e invertible
que corresponde a una matriz de subdivisi´on S alrededor de un punto
extraordinario, que es k veces diferenciable, tiene grado ≥ k + 1. V´ease
[Prautzsch  Reif ’99]. Use este hecho para demostrar que una super-
ficie polin´omica por trozos C2
, obtenida por subdivisi´on con curvatura
Gaussiana positiva en su punto extraordinario tiene necesariamente grado
≥ 6.
Parte III
Splines Multivariados
Volltext algebra superior
17 Box splines
17.1 Definici´on de box splines — 17.2 Box splines como sombras — 17.3 Propieda-
des de los box splines — 17.4 Derivadas de un box spline — 17.5 Propiedades
de las superficies box spline — 17.6 Subdivisi´on de superficies box spline —
17.7 Convergencia bajo subdivisi´on — 17.8 Half-box splines — 17.9 Superficies
half-box — 17.10 Ejercicios
Los box splines son funciones de densidad de las “sombras” de poliedros de
dimensi´on mayor. Ellos incluyen a los B-splines univariados y tambi´en las su-
perficies obtenidas por el algoritmo de promediaci´on sobre una malla regular
triangular son box splines. En este cap´ıtulo se presenta una introducci´on a la
teor´ıa general de los box splines y de los half-box splines. De hecho los half-
box splines sim´etricos de grado 3n son m´as convenientes para la construcci´on
de superficies G2n−1
consistentes de parches triangulares que los box splines.
17.1 Definici´on de box splines
Un box spline s-variado B(x|v1 . . . vk) est´a determinado por k direcciones
vi en IRs
. Por simplicidad supondremos que k ≥ s y que v1, . . . , vs son
linealmente independientes. Bajo esta hip´otesis los box splines Bk(x) =
B(x|v1 . . . vk), k = s, s + 1, . . . , se definen por convoluciones sucesivas,
an´alogamente a 8.1,
Bs(x) =
1/| det[v1 . . . vs]| si x ∈ [v1 . . . vs][0, 1)s
0 en caso contrario
.
Bk(x) =
1
0
Bk−1(x − tvk)dt, k  s .
Esto se ilustra en la Figura 17.1 para s = 2 y
[v1 . . . v4] =
1 0 1 1
0 1 1 0
.
240 17. Box splines
Vea tambi´en la Figura 8.1.
Figura 17.1: Box splines bivariados sobre una malla triangular.
Los box splines Bi(x) satisfacen la condici´on de normalizaci´on
IRs
Bk(x)dx = 1 ,
la cual puede ser verificada directamente para k = s y por inducci´on para
k  s. Concretamente,
IRs
1
0
Bk−1(x − tvk)dtdx =
1
0 IRs
Bk−1(x − tvk)dxdt =
1
0
dt = 1 .
17.2 Box splines como sombras
Un box spline Bk(x) = B(x|v1 . . . vk) tambi´en se puede construir
geom´etricamente. Sea π la proyecci´on ortogonal
π : [t1 . . . tk]t
→ [t1 . . . ts]t
,
y sea
βk = [u1 . . . uk][0, 1)k
el paralelep´ıpedo tal que vi = πui
Entonces Bk(x) representa la densidad de la “sombra” de βk, es
decir,
(1) Bk(x) =
1
volkβk
volk−sβk(x) ,
17.2. Box splines como sombras 241
donde
βk(x) = π−1
x ∩ βk .
Para k = 3 y s = 2, la construcci´on geom´etrica correspondiente se ilustra en
la Figura 17.2.
Figura 17.2: La construcci´on geom´etrica de un box spline lineal por trozos sobre
una malla triangular.
Esta caracterizaci´on de los box splines se prueba por inducci´on: para k = s
la ecuaci´on (1) es obvia y para valores mayores de k se observa que
βk(x) =
s∈[0,1)
(βk−1 + suk) ∩ π−1
x .
Por lo tanto si h mide la distancia entre βk−1 y uk + βk−1 a lo largo de
k-´esimo vector unitario de IRk
(vea la Figura 17.3), se tiene que
volk−sβk(x) =
1
0
h volk−s−1 βk−1(x − svk) ds ,
lo cual corresponde a la definici´on inductiva de box splines, salvo un factor
multiplicativo constante. Consecuentemente volk−sβk(x) es un m´ultiplo del
242 17. Box splines
box spline Bk(x) y como
IRs
volk−sβk(x) dx = volkβk y
IRs
Bk(x)dx = 1 ,
queda demostrada la ecuaci´on (1). 3
Figura 17.3: Medidas de la caja βk.
Observaci´on 1: De la definici´on geom´etrica (1) se deduce que el box spline
B(x|v1 . . . vk) satisface la ecuaci´on funcional
IRs
B(x|v1 . . . vk)f(x)dx =
[0,1)k
f([v1 . . . vk]t)dt
para cualquier funci´on continua f(x).
17.3 Propiedades de los box splines
A partir de la definici´on geom´etrica de B(x) = B(x|v1 . . . vk) se desprende
que
• el box spline no depende del orden de las direcciones vi,
• es positivo sobre el conjunto convexo (v1 . . . vk][0, 1)k
,
• tiene soporte suppB(x) = [v1 . . . vk][0, 1]k
,
• es sim´etrico con respecto al centro de su soporte.
Es m´as, sea B(x) la sombra de la caja β como en 17.2. Entonces las caras
(s−1)-dimensionales de β proyectadas en IRs
forman un teselado del soporte.
Esto se ilustra en la Figura 17.4 para
[v1 . . . vk] =
1 1 1 0
−1 0 1 1
y [v1 . . . vk] =
1 1 1 1 0
0 0 1 1 1
.
17.4. Derivadas de un box spline 243
Figura 17.4: Soporte de box splines cuadr´aticos y c´ubicos.
• El box spline B(x) es polin´omico de grado ≤ k − s sobre cada tesela
de esta partici´on.
Para la prueba observe que los puntos extremos de los conjuntos convexos
π−1
x∩β yacen en las caras s-dimensionales de β. Entonces un punto extremo
es de la forma [xt
et
]t
, donde e ∈ IRk−s
, depende linealmente de x, sobre la
proyecci´on de la correspondiente cara s-dimensional. El volumen π−1
x ∩ β
puede expresarse como una combinaci´on lineal de determinantes de matrices
(k−s)×(k−s) cuyas columnas representan diferencias de los puntos extremos
e. Luego, el volumen es un polinomio de grado ≤ k−s en x sobre cada tesela
de la partici´on dada. 3
17.4 Derivadas de un box spline
De la definici´on inductiva de los box splines se desprende que la restricci´on del
box spline B(y) = B(x+yvr) es constante por trozos en y si vr no pertenece
al espacio generado por {v1, . . . , v∗
r , . . . , vk}. Si vr pertenece a este espacio,
entonces B(y) es continuo pues se puede obtener por convoluci´on a partir de
B∗
(y) = B(x + yvr|v1 . . . v∗
r . . . vk) ,
esto es,
B(y) =
1
0
B∗
(y − t)dt =
y
y−1
B∗
(t)dt
=
y
−∞
B∗
(t) − B∗
(t − 1)dt .(2)
Es m´as la derivada direccional respecto a vr est´a dada por
(3) B′
(y)|y=0 = B∗
(0) − B∗
(−1) .
244 17. Box splines
Si v1, . . . , v∗
r , . . . , vk generan IRs
para r = 1, . . . , s, entonces B(x|v1 . . . vk)
es continuo y su derivadas direccionales se pueden escribir como una com-
binaci´on de trasladados de los box splines B(x|v1 . . . v∗
r . . . vk). Aplicando
este argumento repetidamente se obtiene
B(x) es r veces continuamente diferenciable si todos los subcon-
juntos de {v1, . . . , vk} obtenidos por eliminaci´on de r+1 vectores
vi generan IRs
.
Observaci´on 2: Las expresiones anteriores se pueden utilizar para dar una
prueba inductiva de las propiedades polin´omicas de B(x). Concretamente, si
B∗
(x) es polin´omica de grado ≤ k − s − 1 sobre cada tesela de la partici´on,
entonces B∗
(x − vr) tambi´en lo es. Por (3), B(y) es polin´omica de grado
≤ k − s en cada direcci´on vr y por lo tanto en x.
Observaci´on 3: El box spline cuadr´atico C1
cuyo soporte se ilustra en el
lado izquierdo de la Figura 17.4 se llama el elemento de Zwart-Powell.
17.5 Propiedades de las superficies box spline
De aqu´ı en adelante supondremos que las direcciones v1, . . . , vk pertenecen
a Zs
, y que como antes, v1, . . . , vs generan IRs
.
Claramente, la suma de los trasladados B(x−j|v1 . . . vs), j ∈ [v1 . . . vs]Zs
,
es
(4) γ = 1/| det[v1 . . . vs]| .
Como Zs
se puede descomponer en un n´umero finito, digamos m, de subcon-
juntos de la forma i + [v1 . . . vs]Zs
, vea la Figura 17.5, se tiene que
i∈Zs
B(x−i|v1 . . . vs) = mγ .
Como
1
0
mγdt = mγ, se obtiene que
mγ =
i∈Zs
B(x−i|v1 . . . vk)
=
i∈Zs
B(x−i|e1 . . . es v1 . . . vk) ,
donde ei es el i-´esimo vector unitario. Finalmente, por (4) la ´ultima suma es
uno y entonces se tiene
17.5. Propiedades de las superficies box spline 245
Figura 17.5: Descomposici´on de Zs
en trasladados de mallas m´as gruesas.
los desplazamientos (enteros) de cualquier box spline B(x) =
B(x|v1 . . . vk) forman una partici´on de la unidad.
Por lo tanto cualquier superficie box spline
s(x) =
i∈Zs
ciB(x − i)
es una combinaci´on af´ın de sus puntos de control ci. Esta superficie es
afinmente invariante esto significa que las im´agenes de los puntos de con-
trol bajo una aplicaci´on af´ın son los puntos de control de la superficie imagen.
Como los box splines son no negativos, cada punto s(x) de la superficie es
una combinaci´on convexa de sus puntos de control y por lo tanto yace en
la c´apsula convexa de estos puntos.
Es m´as, los B(x − i|v1 . . . vk), i ∈ Zs
, son linealmente dependientes si
|det[v1 . . . vs]| = 1. Como el box spline no depende del orden de los vi,
esta secuencia es linealmente dependiente si existe una subsecuencia inde-
pendiente vi1
. . . vis
tal que |det[vi1
. . . vis
]| = 1. El rec´ıproco tambi´en es
cierto [Dahmen  Micchelli ’83, ’85] y puede verificarse por inducci´on. V´ease
[Jia ’83, ’85]. En resumen, se tiene el siguiente teorema
B(x−i|v1 . . . vk), i ∈ Zs
, es linealmente independiente sobre cada
subconjunto abierto de IRs
si y s´olo si [v1 . . . vk] es unimodular,
Una matriz [v1 . . . vk] se dice unimodular si el determinante de cada subma-
triz [vi1
. . . vis
] es 1, 0 o −1.
246 17. Box splines
Si las direcciones v1, . . . , vk−1 generan IRs
, entonces podemos calcular la
derivada direccional Dvk
s de s con respecto a vk. Usando la f´ormula de
la derivada (3) de 17.3 se obtiene
(5) Dvk
s(x) =
i∈Zs
∇vk
ciB(x−i|v1 . . . vk−1) ,
donde ∇vci = ci −ci−v. Es m´as, si para todo j = 1, . . . , k las k−1 direcciones
v1, . . . , v∗
j , . . . , vk generan IRs
, entonces B(x) es continua, como se demuestra
en 17.3 y sus trasladados generan los polinomios lineales. En particular, si
mi = i +
1
2
(v1 + · · · + vk)
denota el centro del soporte suppB(x − i), entonces
(6)
i∈Zs
miB(x − i) = x .
De hecho, por simetr´ıa, esta ecuaci´on se verifica para x = mo para todo
j = 1, . . . , s y se tiene
Dvj
miB(x − i) = vj .
Como la representaci´on box spline es afinmente invariante, para todo poli-
nomio lineal l(x) se tiene
l(x) = l(mi)B(x − i .
Nos referimos tambi´en a esta propiedad como la precisi´on lineal de la re-
presentaci´on box spline. Vea los Ejercicios 1 y 2.
17.6 Subdivisi´on de superficies box spline
Cualquier caja β = [u1 . . . uk][0, 1)k
de IRk
se puede particionar en 2k
trasladados de la caja escalada ˆβ = β/2 generada por las direcciones ˆui =
ui/2. En [Prautzsch ’84a] se usa esta observaci´on para probar que la “som-
bra” no normalizada
Mβ(x) = volk−s(π−1
x ∩ β)
de β bajo la proyecci´on de
π : [t1 . . . tk]t
→ [t1 . . . ts]t
17.6. Subdivisi´on de superficies box spline 247
se puede expresar como una combinaci´on lineal de los trasladados de los box
splines escalados
Mˆβ(x) = 2s−k
Mβ(2x) .
Por lo tanto, si las proyecciones vi = πui yacen en Zs
, entonces cualquier
superficie box spline
s(x) =
i∈Zs
c1
i B(x − i)
con B(x) = B(x|v1 . . . vk) tambi´en tiene una representaci´on m´as “fina”
s(x) =
i∈Zs
c2
i B(2x − i) .
Los nuevos puntos de control c2
i pueden ser calculados iterativamente a partir
de los puntos de control iniciales c1
i por medio de la relaci´on de recurrencia
d0
(i) =
o
c1
i/2
si i/2
∈ Zs
∈ Zs ,
dr
(i) =
1
2
dr−1
(i) + dr−1
(i − vr) , r = 1, . . . , k ,
c2
i = 2s
dk
(i) .
Para la prueba se puede utilizar una t´ecnica similar a la presentada en
[Prautzsch ’84a]: se subdivide cada caja βr−1 = [ˆu1 . . . ˆur−1 ur . . . uk][0, 1)k
en βr y ˆur + βr. Las sombras asociadas satisfacen
Mβr−1
(x) = Mβr
(x) + Mβr
(x − ˆvr) ,
donde ˆvr = vr/2. Dividiendo esta ecuaci´on por volβr−1 = 2 volβr, se obtiene
Br−1(x) =
1
2
Br(x) + Br(x − ˆvr) ,
donde Br(x) = B(x|ˆv1 . . . ˆvrvr+1 . . . vk). Usando esta identidad repetida-
mente y la relaci´on
B(x|ˆv1 . . . ˆvk) = 2s
B(2x|v1 . . . vk)
resulta
s(x) =
i∈Zs
c1
i B0(x − i)
=
i∈Zs
dr
(i)Br(x − i/2) , r = 0, 1, . . . , k ,
248 17. Box splines
o sea
s(x) =
i∈Zs
c2
i B0(2x − i) ,
lo cual concluye la prueba. 3
Observaci´on 4: La suma de los trasladados Br(x − j) sobre j ∈ Zs
/2 y
r ≥ s es 2s
debido a que
Br(x − j) = 2s
B(2x − 2j|v1 . . . vr 2vr+1 . . . 2vk) .
Observaci´on 5: Si [v1 . . . vs]Zs
= Zs
, entonces 2s
ds
i = c1
⌊i/2⌋ y cada punto
c2
i es una combinaci´on convexa de los puntos iniciales c1
i . V´ease tambi´en el
Ejercicio 7.
Observaci´on 6: Es f´acil la extensi´on de algoritmo de subdivisi´on, para
obtener una representaci´on m´as fina, es decir, para cualquier m ∈ IN se tiene
s(x) =
i∈Zs
cm
i B(mx − i) ,
donde los “puntos” cm
i = ms
dk
(i) se pueden calcular sucesivamente a trav´es
de las f´ormulas
d0
(i) =
o
c1
i/m
si i/m
∈ Zs
∈ Zs , y
dr
(i) =
1
m
m−1
l=0
dr−1
(i − lvr) , r = 1, . . . , k .
Esta forma y versiones m´as generales del algoritmo de subdivisi´on se pueden
encontrar en [Cohen et al. ’84] y [Dahmen  Micchelli ’84]. Estos trabajos
ofrecen derivaciones algebraicas del algoritmo.
Observaci´on 7: La derivaci´on geom´etrica del algoritmo de subdivisi´on pre-
sentada arriba, muestra que cada punto de control cm
j depende de los puntos
de control c1
i , para los cuales suppB(mx−j) ⊂ suppB(x−i). Entonces su
cantidad est´a acotada por un n´umero h que no depende de m y j. Por lo
tanto
(7) cm
j ≤ h sup
i∈Zs
c1
i .
Observaci´on 8: El algoritmo de subdivisi´on se puede utilizar una segunda
vez para calcular los puntos de control de c(x) sobre cualquier malla m´as fina
Zs
/(mn). Como la partici´on de una caja β en trasladados de cajas escaladas
17.7. Convergencia bajo subdivisi´on 249
β/(mn) es ´unica, los puntos de control cmn
i resultantes se pueden calcular a
partir de los c1
i por una sola aplicaci´on del algoritmo de subdivisi´on.
Observaci´on 9: Similarmente se observa que los puntos cm
i no dependen
del orden de las direcciones v1, . . . , vk, es decir, del orden de los pasos de
promediaci´on.
17.7 Convergencia bajo subdivisi´on
Por medio de la aplicaci´on repetida del algoritmo de subdivisi´on de 17.6 se
obtienen los puntos de control de la representaci´on refinada
s(x) =
i∈Zs
cm
i B(mx − i) , donde B(x) = B(x|v1 . . . vk) ,
de una superficie s(x) sobre cualquier malla escalada Zs
/m, m ∈ IN. Una
propiedad importante de este proceso es que, bajo condiciones adecuadas
sobre V = [v1 . . . vk] los puntos cm
i convergen a la superficie s(x).
Sea h como en (7) y
M = sup{ ∇vr
c1
i , i ∈ Zs
y v1, . . . , v∗
r , . . . , vk generan IRs
} .
Entonces se tiene el siguiente teorema
Si [v1 . . . vk]Zk
= Zs
, entonces cm
i − s(x) ≤ hM/m para todo
i, tal que B(mx − i)  0.
Este resultado fue obtenido por de Boor et al. [de Boor et al. ’93] quienes
tambi´en demuestran que una condici´on suficiente para que la convergencia
sea cuadr´atica es que [v1 . . . v∗
i . . . vk]Zk−1
= Zs
y que B(x|v1 . . . vk) sea
diferenciable.
Para la prueba ordenamos v1, . . . , vk de manera que v1, . . . , v∗
r , . . . , vk ge-
neran IRs
si y s´olo si r ≥ q para alg´un q ∈ {1, . . . , k + 1}. Entonces IRs
es la
suma directa
IRs
= v1IR ⊕ · · · ⊕ vq−1IR ⊕ [vq . . . vk]IRk−q
.
Es m´as, cualquier punto s(x) de la superficie yace en la c´apsula convexa de
los puntos de control cm
i , con m fijo y B(mx − i)  0. Veremos que los
di´ametros de estas c´apsulas convexas tienden a cero.
Como [v1 . . . vk]Zk
= Zs
y el generado de [v1 . . . v∗
r . . . vk] no coincide con
IRs
para r = 1, . . . , q−1, entonces resulta de B(mx−i)  0 que B(mx−k) = 0
para todo k ∈ Zs
tal que i − k no pertenece al generado de vq . . . vk.
250 17. Box splines
Por lo tanto, si cm
i y cm
k son dos puntos de control de s(x) entonces i−k = v
pertenece al generado [vq . . . vk] y +v o −v pertenecen a suppB(x).
Como [v1 . . . vk]Zk
= Zs
y como Zs
es la suma directa
v1Z ⊕ . . . vq−1Z ⊕ [vq−1 . . . vk]Zk−q
,
se tiene que cualquier v ∈ Zs
∩ span [vq . . . vk] se puede expresar como una
suma de vectores posiblemente repetidos del conjunto {vq, −vq, . . . , vk, −vk}.
Por lo tanto cualquier diferencia ∇vcm
i se puede expresar como una suma de
diferencias ∇vr
cm
i , r = q, . . . , k. Entonces para terminar la prueba es sufi-
ciente acotar las diferencias ∇vr
cm
i .
Para r ≥ q podemos omitir el r-´esimo paso de promediaci´on del algoritmo
de subdivisi´on de 17.6, obteni´endose (haci´endo caso omiso del factor m) el
esquema de diferencias ∇vr
, v´ease 15.5 y 15.6. Esto significa: si aplicamos
el algoritmo de subdivisi´on 17.6 omitiendo el r-´esimo paso de promediaci´on
a las diferencias ∇vr
ci
1
obtenemos las diferencias divididas m∇vr
cm
i .
Entonces de (7) resulta
sup
i∈Zs
∇vr
cm
i ≤ hM/m ,
lo cual termina la prueba. 3
En caso contrario, cuando [v1 . . . vk]Zk
= Zs
, entonces no hay convergencia,
como verificaremos para s(x) = B(x).
Concretamente, si existe un punto i de la malla Zs
, el cual no yace en
[v1 . . . vk]Zk
, entonces ning´un j ∈ J = i+[v1 . . . vs]Zs
yace en [v1 . . . vk]Zk
.
Como j∈J B(x − j)  0, (vea (4) de 17.6), para cada x ∈ IRs
existe j ∈ J
tal que B(x − j)  0.
Subdividiendo un box spline B(x) con el algoritmo de 17.5 obtenemos puntos
de control cm
i tales que
B(x) =
i∈Zs
cm
i B(mx − i) .
La derivaci´on geom´etrica del algoritmo de 17.6 demuestra que cm
i = 0 si y
s´olo si i ∈ [v1 . . . vk]Zk
m.
Entonces, si [v1 . . . vk]Zk
= Zs
o J = ∅, entonces para todo x ∈ IRs
existe
un punto de control cm
j = 0 tal que B(mx − j)  0. Para cada x, tal que
B(x)  0, estos puntos de control, que son cero, no convergen a B(x) cuando
m tiende a infinito.
17.8. Half-box splines 251
17.8 Half-box splines
Los half-box splines se definen sobre mallas triangulares generadas por los
vectores e1 = [1 0]t
, e2 = [0 1]t
y e3 = [1 1]t
. En 15.10, estos splines fueron
introducidos, en el contexto de la subdivisi´on de mallas hexagonales. En
esta secci´on presentamos la definici´on inductiva propuesta en [Sabin ’77] y
su interpretaci´on geom´etrica.
Subdividiendo el cuadrado unitario a lo largo de su diagonal en la direcci´on
e se obtienen dos tri´angulos
∆ = {x|0 ≤ x ≤ y  1} y ∇ = {x|0 ≤ y  x  1} .
Estos tri´angulos determinan los siguientes half-box splines, de soporte cons-
tante
H∆(x|) =
1 si x ∈ ∆
0 en caso contrario
y
H∇(x|) =
1 si x ∈ ∇
0 en caso contrario
.
An´alogamente al caso de los box spline, los half-box splines de orden superior
se pueden obtener por medio de convoluciones sucesivas,
H∆(x|v3 . . . vk) =
1
0
H∆(x − tvk|v3 . . . vk−1)dt
y
H∇(x|v3 . . . vk) =
1
0
H∇(x − tvk|v3 . . . vk−1)dt ,
donde k ≥ 3. Supondremos que los vi, son direcciones unitarias
v3, . . . , vk ∈ {e1, e2, e3} .
Note que la suma de los half-box splines H∆(x|v3, . . . , vk) y H∇(x|v3, . . . , vk)
es el box spline B(x|e1e2v3 . . . vk), inclusive para k = 2. La Figura 17.6 ilus-
tra dos half-box splines C1
.
Similarmente a lo estudiado para box splines en 17.1, se obtienen propiedades
para los half-box splines. Por razones de simetr´ıa listamos solamente las
propiedades correspondientes a H(x) = H∆(x|v3 . . . vk).
Los half-box splines est´an normalizados
IR2
H(x)dx = 1/2 .
252 17. Box splines
Figura 17.6: Dos half-box splines C1
c´ubicos por trozos.
Cualesquierea k direcciones independientes u1, . . . , uk ∈ IRk
definen un half-
box spline
ϑ = { uiαi|0 ≤ α1 ≤ α2 y α2, . . . , αk ∈ [0, 1]} .
La densidad de la sombra de esta “media caja” representa un half-box
spline. Esto es, si π denota la proyecci´on de IRk
sobre IR2
que aplica u1, . . . , uk
en e1, e2, v3, , . . . , vk, entonces
H(x|v3 . . . vk) =
1
2 volkϑ
volk−2(π−1
x ∩ ϑ) .
A partir de esta construcci´on geom´etrica se desprende que H(x) satisface las
siguientes propiedades
• no depende del orden de v3 . . . vk,
• es positivo sobre el conjunto convexo ∆ + [v3 . . . vk](0, 1)k−2
,
• tiene como soporte a clausura(∆) + [v3 . . . vk][0, 1]k−2
,
• tiene derivada direccional
Dvr
H(x) = H(x|v3 . . . v∗
r . . . vk) − H(x−vr|v3 . . . v∗
r . . . vk)
con respecto a vr, r ≥ 3 ,
• es r veces continuamente diferenciable si todos los subconjuntos de
{v3 . . . vk} obtenidos omitiendo r + 1 vectores vi generan IR2
.
• es polin´omica de grado total ≤ k − 2 sobre cada tri´angulo i + ∆, para
i ∈ Z2
.
Observaci´on 10: Los half-box splines H∆(x|e1
k. . . e1e2
k. . . e2e3
k. . . e3)
son continuamente diferenciables 2k − 1 veces y tienen grado ≤ 3k.
17.9. Superficies half-box 253
17.9 Superficies half-box
La suma de cualquier par de half-box splines
H∆(x) = H(x|e3v3 . . . vk) ,
H∇(x) = H(x|e3v3 . . . vk)
es el box spline B(x|e1e2e3v3 . . . vk). Por lo tanto los trasladados H∆(x−i)
y H∇(x − i), i ∈ Z2
, forman una partici´on de la unidad.
Por lo tanto cualquier superficie half-box spline
s(x) =
i∈Z2
(c∆
i H∆(x − i) + c∇
i H∇(x − i))
es una combinaci´on af´ın de sus puntos de control y por lo tanto afinmente
invariante. Esto significa que bajo cualquier aplicaci´on af´ın las im´agenes de
los puntos de control, determinan la superficie imagen de s(x).
Como los half-box splines son no negativos, s(x) es una combinaci´on convexa
de sus puntos de control y por lo tanto yace en la c´apsula convexa de ´estos.
Si conectamos los puntos de control c∆
i y c∇
j cuyos tri´angulos asociados i+∆
y j + ∇ tienen una arista en com´un, entonces obtenemos una malla hexag-
onal, la malla de control de s. La Figura 17.7 ilustra un ejemplo en forma
esquem´atica.
Figura 17.7: Una malla de control hexagonal.
La derivada direccional de s con respecto a vr se puede calcular a trav´es
254 17. Box splines
de la f´ormula de 17.8 para un half-box spline,
Dvr
s(x) =
i∈Zs
∇vr
c∆
i H∆(x − i|v3 . . . v∗
r . . . vk)
+∇vr
c∇
i H∇(x − i|v3 . . . v∗
r . . . vk) ) ,
donde ∇vci = ci − ci−v.
Si H∆(x) es continuo o equivalentemente, si dos de las direcciones v3, . . . , vk,
son independientes, entonces cualquier derivada direccional de la suma de los
trasladados H∆(x − i), es cero. Por lo tanto esta suma es una funci´on
constante. Por simetr´ıa y debido a que los half-box splines H∆ y H∇ forman
una partici´on de la unidad se tiene
(8)
i∈Z2
H∆(x − i) =
i∈Z2
H∇(x − i) = 1/2 .
En particular, esto implica que los trasladados de H∆ y H∇ son linealmente
dependientes.
Adem´as, si el box spline
B(x) = B(x|e1e2v3 . . . vk) = H∆(x) + H∇(x)
es continuo, entonces a partir de (6) en 17.5 se obtiene
i∈Z2
mi(H∆(x − i) + H∇(x − i)) = x ,
donde mi es el centro de suppB(x − i). Si H∆ es continuo, usando (8) para
cualquier v ∈ IR2
se tiene
i∈Z2
((mi + v)H∆(x − i) + (mi − v)H∇(x − i)) = x .
Por ejemplo, si v = (e1 − e2)/6, los puntos m∆
i = mi + v y m∇
i = mi − v
forman una malla hexagonal regular tal como se ilustra en la Figura 17.8.
Como la representaci´on de los half-box splines es afinmente invariante, para
cualquier polinomio lineal l(x), se tiene
l(x) =
i∈Z2
(l(m∆
i )H∆(x − i) + l(m∇
i )H∇(x − i)) .
Nos referimos a esta propiedad como precisi´on lineal de la representaci´on
half-box spline.
Observaci´on 11: Cualquier superficie half-box spline
s(x) =
i∈Z2
(c∆
i H∆(x − i) + c∇
i H∇(x − i))
17.10. Ejercicios 255
Figura 17.8: La malla hexagonal de “centros” m∆
i y m∇
i .
tambi´en tiene una representaci´on “m´as fina”
s(x) =
i∈Z2
(d∆
i H∆(mx − i) + d∇
i H∇(mx − i))
para cualquier m ∈ IN. En particular, para m = 2k
, k ∈ IN, los nuevos
puntos de control d∆
i y d∇
i (los cuales dependen de m) pueden calcularse
por k aplicaciones repetidas del algoritmo de subdivisi´on 15.9. Similarmente
al algoritmo de subdivisi´on para box splines de 17.6, este algoritmo tiene
una generalizaci´on inmediata que permite generar los puntos d∆
i y d∇
i para
cualquier m ∈ IN. Dejamos como un ejercicio la formulaci´on y prueba de esta
generalizaci´on.
17.10 Ejercicios
1 Suponga que las direcciones v1, . . . , vk ∈ Zs
generan IRs
y que el box
spline asociado B(x) = B(x|v1 . . . vk) es r veces continuamente dife-
renciable. Dado un polinomio c(x) de grado total d ≤ r + 1 demuestre
por inducci´on sobre k que
s(x) =
i∈Zs
c(i)B(x − i)
tambi´en es un polinomio de grado d. Use la f´ormula (5) de 17.5
256 17. Box splines
2 Bajo las mismas condiciones del Ejecicio 1 verifique que la aplicaci´on
c(x) → c(i)B(x − i) es lineal y regular en el espacio de los polinomios
de grado ≤ r + 1.
3 Pruebe por inducci´on que el conjunto de los polinomios B(x−i|v1 . . . vk),
i ∈ Zs
es linealmente independiente si y s´olo si [v1 . . . vk] es unimodular.
4 Verifique la siguiente relaci´on de recurrencia para box splines
B(x|v1 . . . vk) =
1
k − s
k
r=1
(αrB(x|v1 . . . v∗
r . . . vk)
+(1 − αr)B(x − vr|v1 . . . v∗
r . . . vk)),
donde x =
k
r=1 αrvr. Esta f´ormula fue descubierta por de Boor y H¨ollig
[de Boor  H¨ollig ’82]. En 1984 Boehm encontr´o una prueba geom´etrica
y descubri´o un mecanismo de evaluaci´on de los box splines similar al
algoritmo de de Boor [Boehm ’84a].
5 Dada la malla de control hexagonal de una superficie half-box C1
, sus
puntos de B´ezier se pueden calcular usando las tres m´ascaras de la Figura
17.9 y de las versiones sim´etricas de estas m´ascaras. La Figura 17.9
tambi´en indica esquem´aticamente la parte relevante de la malla hexag-
onal y un tri´angulo de B´ezier cuyo punto de control s´olido es calculado
por la m´ascara. Use estas m´ascaras para calcular la representaci´on de
B´ezier de un half-box spline c´ubico, verificando que obtiene el resultado
correcto.
Figura 17.9: M´ascaras para el c´alculo de puntos de B´ezier.
6 Dada una superficie cu´artica C2
con representaci´on box spline i∈Z2 ci
B(x − i|e1e1e2e2e3e3) sobre IR2
su malla de B´ezier se puede calcular
como sigue. En primer lugar se subdivide la malla de control por medio
del operador de refinamiento R. (Vea la Observaci´on 10 de 15.7). A
17.10. Ejercicios 257
continuaci´on se usa la m´ascara ilustrada en la Figura 17.10 para calcu-
lar los puntos de B´ezier a trav´es de la malla subdividida [Boehm ’83,
Prautzsch  Boehm ’02].
Figura 17.10: C´alculo de los puntos de B´ezier de una superficie box spline cu´artica
C2
.
7 Verifique que los puntos de control cm
i calculados con el algoritmo de
subdivisi´on de la Observaci´on 5 de 17.6, son combinaciones convexas de
los puntos de control iniciales c1
i si
[v1 . . . vk]Zk
= Zs
.
8 Sean v1, . . . , vk direcciones de IR2
tales que los ´angulos entre v1 y vr
para r = 1, . . . , k crecen y est´an acotados por 180◦
. Demuestre que la
frontera del soporte del box spline B(x|v1 . . . vk) est´a formada por los
puntos
x = v1 + · · · + vr−1 + vrα
y
x = vk + · · · + vr+1 + vrα ,
donde r = 1, . . . , k y α ∈ [0, 1] como se ilustra en la Figura 17.2.
9 Sea S el soporte de un box spline y suponga, por simplicidad, que el
spline es bivariado. Demuestre que la intersecci´on de S con cualquier
trasladado de S es el soporte de alg´un box spline.
10 Sea k = 4 y [v1 . . . vk] =
1 0 1 −1
0 1 1 1
. Verifique que los puntos c2
i
obtenidos a trav´es del algoritmo de subdivisi´on de 17.6 tambi´en pueden
ser calculados a trav´es del siguiente esquema de promediaci´on:
1. Calcule los puntos medios de todas las aristas c1
i c1
i−v1
y c1
i c1
i−v2
.
258 17. Box splines
2. Conecte los puntos medios de cualesquiera dos aristas que tienen un
punto extremo en com´un. Estas son las “nuevas aristas”.
3. Los puntos medios de las nuevas aristas son los puntos c2
i .
Este esquema fue introducido en [Sabin ’86] y se ilustra en la Figura
17.11. Su aplicaci´on a mallas de control arbitraria se estudia en [Peters
 Reif ’97] .
Figura 17.11: Un esquema elemental de subdivisi´on.
11 Deduzca el algoritmo de subdivisi´on para superficies half-box para un m
arbitrario. Vea la Observaci´on 11 de 17.9. Trabaje geom´etricamente o
anal´ıticamente.
18 Simplex splines
18.1 Sombras de simples — 18.2 Propiedades de los simplex splines — 18.3 Sim-
plex splines normalizados — 18.4 Inserci´on de nodos — 18.5 Una relaci´on de
recurrencia — 18.6 Derivadas — 18.7 Ejercicios
Los B-splines introducidos en el Cap´ıtulo 5 tambi´en pueden construirse proyec-
tando simples sobre el eje real. Concretamente, un B-spline es la funci´on
densidad de la sombra de un simplex.
Esta interpretaci´on geom´etrica fue descubierta por Schoenberg en 1965 y Carl
de Boor [de Boor ’76b] la utiliz´o para definir spline multivariados en 1976.
Esta interpretaci´on tambi´en permite una presentaci´on m´as natural de las
propiedades recursivas y de suavidad de la inserci´on de nodos y de la elevaci´on
de grado.
18.1 Sombras de simples
Para construir los splines multivariados empleamos la proyecci´on de IRk
en
IRs
dada por
π[x1 . . . xk]t
= [x1 . . . xs]t
.
Para cada x ∈ IRs
π−1
x = {z ∈ IRk
|πz = x} ,
se denomina fibra de π. Las fibras son subespacios k − s dimensionales
paralelos de IRk
.
Si p0, . . . , pk son k + 1 puntos independientes de IRk
, entonces su c´apsula
convexa σ se denomina simplex. La “sombra” de σ en IRs
con respecto a π
define un simplex spline s-variado, el cual est´a dado por
Mσ(x) = volk−s(σ ∩ π−1
x) .
La Figura 18.1 y 18.2 ilustran el caso k = 3, cuando s = 2 y s = 1, respecti-
vamente.
260 18. Simplex splines
Figura 18.1: La sombra de un tetraedro sobre un plano.
Note que Mσ(x) es el volumen k − s dimensional de una rodaja de σ.
En particular si k = s, entonces Mσ es la funci´on carcacter´ıstica de σ, la
cual est´a definida por
Mσ(x) = χσ(x) =
1 si x ∈ σ
0 en caso contrario ,
y si k = s + 1, entonces Mσ es lineal por trozos.
18.2 Propiedades de los simplex splines
Claramente cualquier simplex spline Mσ es no negativo y su soporte es la
proyecci´on πσ del simplex σ. Adem´as Mσ es continuo sobre su soporte y si
se hace cero sobre la frontera, entonces es continuo sobre IRs
.
Los v´ertices pi de σ se proyectan en los puntos ai = πpi, denominados nodos
de Mσ. La c´apsula convexa de cualesquiera m nodos se denomina m-nodo.
En particular, πσ es un (k + 1)-nodo, y cualquier k-nodo de dimensi´on s − 1
de πσ yace en su frontera. Es m´as,
Mσ es continuo en todo IRs
excepto posiblemente en un k-nodo de
dimensi´on s − 1.
18.2. Propiedades de los simplex splines 261
Figura 18.2: La sombra de un tetraedro sobre una recta.
Para la prueba, supongamos que a1, . . . , am determinan un m-nodo de di-
mensi´on s−1 que yace en la frontera de πσ = suppMσ. Supongamos adem´as
que la c´apsula af´ın de este m-nodo no contiene a ning´un otro nodo. Sea ρ el
simplex correspondiente dado por p1 . . . pm. Entonces, como πρ yace en la
frontera de πσ, se tiene que para cada x ∈ πρ
π−1
x ∩ ρ = π−1
x ∩ σ .
Como π−1
x ∩ ρ es (m − 1) − (s − 1) = m − s dimensional, entonces Mσ(x)
no se anula sobre πρ si y s´olo si m = k. 3
Los s-nodos (no degenerados) particionan el soprte de Mσ. Esto se ilustra
en la Figura 18.3 para k = 4 y s = 2.
Figura 18.3: Nodos de soporte y 2-nodos de un simplex spline cuadr´atico bivariado.
Veremos que Mσ restringido a cada tesela de esta partici´on es un polinomio
de grado total ≤ k − s y que Mσ es continuamente diferenciable k − m − 1
veces sobre cada s-nodo cuya c´apsula af´ın contiene m nodos. Entonces si los
nodos est´an en posici´on general, se tiene que Mσ es diferenciable k − s − 1
veces.
Observaci´on 1: Para cada funci´on continua f definida sobre IRs
se tiene
IRs
Mσ(x)f(x)dx =
σ
f(πy)dy .
262 18. Simplex splines
Por lo tanto Mσ tambi´en se puede definir requiriendo que esta ecuaci´on se
satisfaga para todo f. V´ease [Micchelli ’80] y tambi´en la Observaci´on 1 de
17.2.
18.3 Simplex splines normalizados
De acuerdo a nuestra definici´on un simplex spline s-variado Mσ depende de
un simplex σ de dimensi´on k. A continuaci´on veremos que Mσ realmente
s´olo depende de sus nodos en IRs
.
Sea ρ otro k-simplex tal que sus nodos (es decir, las proyecciones de sus
v´ertices sobre IRk
) coinciden con los nodos pi de σ, entonces la aplicaci´on
af´ın ϕ que env´ıa σ sobre ρ, satisface π ◦ ϕ = π. Por lo tanto la imagen por ϕ
de una rodaja σx = σ ∩ π−1
x coincide con ρx = ρ ∩ π−1
x.
Cualesquiera dos rodajas σx y σy son paralelas, por lo tanto la raz´on de sus
vol´umenes se preserva bajo ϕ, lo cual implica que las razones
Mσ(x) : Mσ(y) = Mρ(x) : Mρ(y)
y
Mσ(x) : Mρ(x) = Mσ(y) : Mρ(y)
son constantes para todo x.
Como
IRs
Mσ(x)dx = volkσ ,
podemos concluir que el simplex spline normalizado
M(x|a0 . . . ak) = Mσ(x)/volkσ
depende solamente de los nodos a0, . . . , ak y no depende del k-simplex σ.
Observaci´on 2: La integral de un simplex spline normalizado es uno,
IRs
M(x|a0 . . . ak)dx = 1 .
Observaci´on 3: Las propiedades de suavidad establecidas en 18.2 carac-
terizan un simplex spline univariado M(x|a0 . . . ak) como un m´ultiplo de un
B-spline ordinario N(x|a0 . . . ak) sobre los mismos nodos, vea 5.4. Por lo
tanto, se desprende del Ejercicio 2 de 5.12 que
M(x|a0 . . . ak) =
k
ak − a0
N(x|a0 . . . ak) ,
donde suponemos que [a0, ak] es el soporte.
18.4. Inserci´on de nodos 263
18.4 Inserci´on de nodos
La f´ormula de inserci´on de nodos para B-splines univariados presentada en 6.1
corresponde a una subdivisi´on del simplex generador y se puede generalizar
f´acilmente.
Como antes, denotamos por σ el simplex de v´ertices p0 . . . pk y ai = πpi
son los nodos correspondientes en Rs
. Sea
ak+1 =
k
i=0
αiai , 1 =
k
i=0
αi ,
un nodo “nuevo”, el cual consideraremos como la proyecci´on del punto
pk+1 = αipi
que yace en IRk
. Si k  s los pesos αi no est´an un´ıvocamente determinados
por ak+1. Finalmente, denotamos por σi el simplex p0 . . . p∗
i . . . pk+1, donde
el asterisco denota la ausencia del v´ertice correspondiente. En particular lo
anterior implica que σk+1 = σ y se tiene que los otros simples: σ0, . . . σk
forman una partici´on del simplex σ de manera que la siguiente suma de los
splines Mσi
coincide con Mσ, esto es
Mσ =
k
i=0
(signαi)Mσi
.
En la Figura 18.4 se ilustran dos ejemplos, uno para k = 2 y otro para
k = 3. En el caso k = 2, Mσ = Mσ1
+ Mσ2
− Mσ0
, y para k = 3, Mσ =
Mσ0
+ Mσ1
+ Mσ2
+ Mσ3
.
Figura 18.4: Subdivisi´on de un tri´angulo y de un tetraedro.
Para la prueba considere un punto y = ηipi y sean ηk+1 = 0 y αk+1 = −1.
Entonces, para cualquier λ ∈ IR se tiene la ecuaci´on
y =
k+1
i=0
(ηi − λαi)pi .
264 18. Simplex splines
En particular, para λ = λj = ηj/αj, los pesos ηi − λjαi son las coordenadas
baric´entricas de y con respecto a σj. Es m´as, y yace en el interior del simplex
σj si y s´olo si todos los pesos ηi − λjαi, j = i, son positivos. Si λj = λk
entonces y yace en la frontera com´un de σj y σk. Supondremos que ´este no
es el caso.
Como los pesos ηi − λαi son mon´otonos en λ y existen coeficientes αi tanto
positivos como negativos, entonces existe a lo sumo un intervalo no vac´ıo
(λj, λk) sobre el cual todos los pesos ηi − λαi son positivos. Por lo tanto, y
no pertenece a ning´un simplex o yace en exactamente dos simples σj y σk,
caso en el cual αj y αk tienen signos opuestos. Vea la Figura 18.5.
Figura 18.5: Los pesos ηi − λαi.
Entonces la funciones caracter´ısticas de los splines satisfacen
0 = (signα0)χσ0
+ · · · + (signαk)χσk
− χσk+1
sobre IRk
sin incluir las caras de dimensi´on inferior de σi.
Esto implica que
Mσ = signα0Mσ0
+ · · · + signαkMσk
y concluye la prueba. 3
Si se normaliza la expresi´on anterior obtenemos la f´ormula de inserci´on
de nodos
(1) M(x|a0 . . . ak) =
k
i=0
αiM(x|a0 . . . a∗
i . . . ak+1)
para todo x donde los splines considerados son continuos. Vea [Micchelli ’80]
y los Ejercicios 2 y 3. Observe tambi´en que el lado derecho de la f´ormula de
inserci´on de nodos es una combinaci´on af´ın.
18.5. Una relaci´on de recurrencia 265
18.5 Una relaci´on de recurrencia
Si el nuevo nodo insertado ak+1 coincide con x, entonces la f´ormula de in-
serci´on (1) de 18.3 se transforma en una representaci´on del simplex spline
en x como una combinaci´on af´ın de simplex splines, con x como un nodo,
espec´ıficamente
M(x|a0 . . . ak) =
k
i=0
ξiM(x|x a0 . . . a∗
i . . . ak) ,
donde x = ξiai y 1 = ξi.
Esto conduce a una f´ormula recursiva pues los simplex splines del lado derecho
tienen grado m´as bajo. Por ejemplo, sea σ0 el simplex de v´ertices p p1 . . . pk
en IRk
con sombra
Mσ0
(x) = M(x|x a1 . . . ak) ,
donde πp, πp1, . . . , πpk son los nodos x, a1, . . . , ak. Suponemos que el “sim-
plex base” ρ, definido por los v´ertices p1, . . . , pk yace en el hiperplano ortog-
onal a las fibras de la proyecci´on π.
Por lo tanto, si h denota la distancia eucl´ıdea entre p y ρ, entonces se tiene
volkσ0 =
1
k
h · volk−1ρ
y
volk−s(σ0 ∩ π−1
x) =
1
k − s
h · volk−s−1(ρ ∩ π−1
x)
tal como se ilustra en la Figura 18.6 para k = 3 y s = 1.
Figura 18.6: C´alculo de los vol´umenes de σ0 y σ0 ∩ π−1
x.
Dividiendo la segunda de estas ecuaciones por la primera, obtenemos
M(x|x a1 . . . ak) =
k
k − s
M(x|a1 . . . ak) .
266 18. Simplex splines
Entonces hemos deducido la relaci´on de recurrencia de Micchelli
(2) M(x|a0 . . . ak) =
k
k − s
k
i=0
ξiM(x|a0 . . . a∗
i . . . ak) ,
Esta relaci´on representa un simplex spline con k + 1 nodos como una combi-
naci´on lineal de los simplex spline de k nodos. V´ease [Micchelli ’80]. Como
los pesos ξi dependen linealmente de x, la aplicaci´on repetida de esta relaci´on
de recurrencia implica que
un simplex spline s-variado con k + 1 nodos es polin´omico por
trozos de grado total ≤ k − s.
Observaci´on 4: Comparando las relaciones de recurrencia para simplex
splines y polinomios de Bernstein (vea 10.1), se observa que un simplex spline
s-variado con solamente s + 1 distintos nodos es un polinomio de Bernstein,
es decir
M(x|a0
i0+1. . . a0 . . . as
is+1. . . as) =
k
s
vols∆
Bk−s
(Ù) ,
donde = (i0 . . . is), k = i0 + · · · + is + s, ∆ denota el simplex a0 . . . as y Ù
el vector columna de coordenadas baric´entricas de x con respecto a ∆. Vea
la Figura 18.7.
Figura 18.7: Polinomios de Bernstein cuadr´aticos.
Observaci´on 5: Aplicando repetidamente la relaci´on de recurrencia (2) se
puede demostrar que cada segmento polin´omico de un B-spline multivariado
depende continuamente de los nodos ai.
18.6 Derivadas
Supongamos que x depende linealmente de t
x = x0 + tv ,
18.6. Derivadas 267
donde x0 = αipi con αi = 1, representa un punto y v = νipi con
νi = 0, representa un vector en IRs
. Derivando un B-spline s-variado
M(x|a0 . . . ak) con respecto a t obtenemos la derivada direccional en x
con respecto a v, la cual se denota por ˙M. La derivada direccional puede ser
expresada en t´erminos de B-splines ˙Mi = M(x| a0 . . . a∗
i . . . ak),
(3) ˙M = k νiMi .
Para la prueba, supondremos primero que k = s + 1. Entonces la relaci´on
(3) se obtiene derivando la relaci´on de recurrencia de Micchelli de 18.5.
Si k es mayor que s + 1, consideramos los puntos a0 . . . ak como las proyec-
ciones bajo π : [x1 . . . xk−1]t
→ [x1 . . . xs]t
de ciertos puntos ¯a0, . . . , ¯ak en
IRk−1
. Se obtiene
(4) M(x|a0 . . . ak) =
IR
k−s−1. . .
IR
M(
x
y
|¯a0 . . . ¯ak)dy .
Como M(x|a0 . . . ak) tiene derivadas continuas por la derecha y por la
izquierda, se pueden derivar ambos lados de la identidad e intercambiar el
s´ımbolo integral y la derivada. ´Esto conduce a
d
dt
M(x|a0 . . . ak) =
IR
k−s−1. . .
IR
d
dt
M(
x
y
|¯a0 . . . ¯ak)dy .
Aplicando (3) al integrando y usando (4) se obtiene la expresi´on para ˙M
dada por (3). 3
La diferenciaci´on repetida de la derivada r-´esima de un B-spline s-variado
M(x|a0 . . . ak) se puede expresar como una combinaci´on lineal de B-splines
con k+1−r nodos ai. Estos splines son continuos sobre cualquier s-nodo cuya
c´apsula af´ın no contiene m´as de k−r−1 nodos. Por lo tanto, M(x|a0 . . . ak)
es continuamente diferenciable k − m − 1 veces sobre cualquier s-nodo cuya
c´apsula af´ın no contiene m´as de m nodos.
Observaci´on 6: Derivando la relaci´on de recurrencia de Micchelli (2) de
18.5 se obtiene
˙M =
k
k − s
k
i=0
(νiMi + ξi
˙Mi) .
Por (3) ´esto es equivalente a la f´ormula
˙M =
1
k − s
˙M +
k
k − s
k
i=0
ξi
˙Mi ,
lo cual se puede transformar en la relaci´on de recurrencia para la derivada
[Micchelli ’80]
d
dt
M(x|a0 . . . ak) =
k
k − s − 1
k
i=0
ξi
d
dt
M(x|a0 . . . a∗
i . . . ak) .
268 18. Simplex splines
18.7 Ejercicios
1 El volumen de un simplex q0 . . . qk−s en IRk−s
est´a dado por
volk−s[q0 . . . qk−s] =
1
(k − s)!
det
q0 . . . qk−s
1 . . . 1
.
Utilice esta f´ormula para deducir a partir de la definici´on en 18.1 que
un simplex spline s-variado con k + 1 nodos es polin´omico por trozos de
grado k − s.
2 Demuestre que la f´ormula de inserci´on de nodos de 18.4 es v´alida tambi´en
en la frontera de la c´apsula convexa [a a0 . . . ak] inclusive en el caso
cuando alguno de los splines involucrados no son continuos en ´esta.
3 Deduzca la f´ormula de inserci´on de nodos para B-splines univariados a
partir de la f´ormula general (1) de 18.4.
4 Deduzca la relaci´on de recurrencia para B-splines univariados a partir de
la f´ormula general (2) de 18.5.
5 Un simplex p1 . . . pk en IRk
y una direcci´on v definen un prisma. ´Esta
es la c´apsula convexa de sus 2k v´ertices pi y qi = pi+v , i = 1, . . . , k.
Demuestre que los k simples q1 . . . qi pi . . . pk, para i = 1, . . . , k tienen
el mismo volumen y forman una partici´on del prisma. Vea la Figura 18.8.
p1
p2
p3v
v
v
Figura 18.8: Triangulaci´on de un prisma.
6 Use el Ejercicio 5 para demostrar la f´ormula de elevaci´on de grado
de Micchelli para B-splines multivariados [Micchelli ’79].
M(x|a0 . . . ak) =
1
k + 1
k
i=0
M(x|a0 a1 . . . ai ai . . . ak) .
19 Splines multivariados
19.1 Generalizaci´on del algoritmo de de Casteljau — 19.2 B-polinomios y B-
parches — 19.3 Precisi´on lineal — 19.4 Derivadas de un B-parche — 19.5 B-
splines multivaridos — 19.6 Combinaciones lineales de B-splines — 19.7 Una
relaci´on de recurrencia — 19.8 Derivadas de un spline — 19.9 El teorema
fundmental — 19.10 Ejercicios
El algoritmo de de Boor es una generalizaci´on del algoritmo de de Casteljau
y los B-splines univariados generalizan a los polinomios de Bernstein. De ma-
nera similar se puede generalizar el algoritmo de de Casteljau para polinomios
de varias variables a splines multivariados. Las funciones base subyacentes
del algoritmo generalizado son los simplex splines, los cuales forman una
partici´on de la unidad.
Estos simplex splines son la generalizaci´on adecuada de los B-splines univa-
riados y muchas de las propiedades de estos ´ultimos tambi´en son v´alidas para
los simplex splines multivariados.
19.1 Generalizaci´on del algoritmo de
de Casteljau
Los polinomios de Bernstein restringidos a un simplex pueden ser interpre-
tados como simplex splines con nodos m´ultiples. Vea la Observaci´on 4 en
18.5.
Por lo tanto, el algoritmo de de Casteljau es un caso especial del algo-
ritmo de de Boor para splines univariados. De manera an´aloga el algoritmo
de de Casteljau para polinomios multivariados tambi´en se puede extender
[Seidel ’91]. La idea se ilustra en las Figuras 19.1 y 19.2 para el caso de un
polinomio cuadr´atico c(x). Como anterirormente (vea la Figura 11.1) de-
notamos por x y, la evaluaci´on c[x y], de la forma polar correspondiente al
polinomio c.
270 19. Splines multivariados
La Figura 19.1 ilustra el algoritmo de de Casteljau con respecto al tri´angulo
012. A partir de los seis puntos de B´ezier c[i j] se calculan los tres puntos
intermedios c[j x] y a partir de estos ´ultimos se obtiene c(x) = c[x x].
Figura 19.1: El algoritmo de de Casteljau en el caso cuadr´atico.
La Figura 19.2 esquematiza la generalizaci´on: En vez de tres nodos se tiene
tres secuencias de nodos 0¯0, 1¯1, 2¯2. A partir de los seis puntos de con-
trol c[0¯0], c[¯0¯1], c[¯11], c[¯1¯2], c[¯22], c[¯2¯0] se calculan los tres puntos c[i x] los
cuales a su vez determinan c(x) = c[x x].
Figura 19.2: La generalizaci´on de Seidel del algoritmo de de Casteljau para el caso
cuadr´atico.
Para considerar la generalizaci´on del algoritmo de de Casteljau sean a0
i , . . . , an−1
i
secuencias, tambi´en denominadas cadenas o nubes de nodos, para i =
0, . . . , s. Si estos nodos est´an en posici´on general, entonces cualquier superfi-
cie polin´omica s-variada c(x) con forma polar c[x1 . . . xs] est´a completamente
definida por sus B-puntos
c = c[a0
0 . . . ai0−1
0 . . . a0
s . . . ais−1
s ] ,
donde = [i0 . . . is] ∈ ∆n y
∆n = { | ∈ Zs+1
, Ó ≤ , i0 + · · · + is = n} .
Concretamente c(x) se puede calcular a trav´es de la relaci´on de recurrencia
c = ξ0c + 0
+ · · · + ξsc + s
∈ ∆ = ∆n−1 ∪ · · · ∪ ∆0 ,
19.2. B-polinomios y B-parches 271
donde ξk son las coordenadas baric´entricas de x con respecto al simplex
S = [aj0
0 . . . ajs
s ]
y k denota el k-´esimo vector unitario de IRs+1
. Esto significa que
c = c[a0
0 . . . aj0−1
0 . . . a0
s . . . ajs−1
s x . . . x]
y que los nodos est´an en posici´on general si todos los simples S son no
degenerados.
Observaci´on 1: Si c(x) es cuadr´atico, entonces sus puntos de B´ezier b
sobre el simplex SÓ satisfacen
b i+ j
= c i+ j
para todo i = j ,
y b i+ i
yace en el plano generado por los puntos c i+ j
, j = 0, . . . , s. La
Figura 19.5 muestra un ejemplo.
19.2 B-polinomios y B-parches
La generalizaci´on del algoritmo de de Casteljau presentada en 19.1, se puede
aplicar a una malla arbitraria de puntos de control c , | | ∈ ∆n.
En particular, si los puntos de control est´an dados por
c =
1 si =
0 en caso contrario
, ∈ ∆n ,
los polinomios Cn
(x), a valores reales, forman una base para el espacio vecto-
rial de polinomios de grado menor o igual que n. De hecho, como el algoritmo
de de Casteljau generalizado es lineal en los puntos de control, cualquier poli-
nomio c(x) de grado ≤ n se puede representar
c(x) =
∈∆n
c Cn
(x) ,
donde c est´a definido en 19.1. Adem´as, como el n´umero de polinomios Cn
coincide con la dimensi´on n+s
s del espacio de los polinomios de grado total
≤ n, tenemos que ´estos son linealmente independientes.
Los polinomios Cn
, los denominaremos B-polinomios y la representaci´on
anterior de c(x), como una combinaci´on lineal de los B-polinomios, se de-
nomina B-parche. De la construcci´on anterior se desprenden las siguientes
propiedades, similares a las de los polinomios de Bernstein de la Secci´on 10.1.
Los B-polinomios s-variados de grado n
• forman una base del espacio vectorial de todos los polinomios de grado
total ≤ n,
272 19. Splines multivariados
• forman una partici´on de la unidad:
∈∆n
Cn
(x) = 1 ,
• son positivos para todo x del interior de la intersecci´on Γ, de todos
los simples S , | | ≤ n − 1,
• satisfacen la relaci´on de recurrencia
Cn
(x) =
s
k=0
ξkCn−1
− k
(x) ,
donde ξk es la k-´esima coordenada baric´entrica de x con respecto a S − k
y
C = 0 si tiene alguna coordenada negativa.
La intersecci´on Γ de los simples S , ≤ n − 1, se ilustra en la Figura 19.3
para n = 2 y s = 2. N´otese que esta intersecci´on podr´ıa ser vac´ıa, lo cual
depende de la posici´on de los nodos.
Figura 19.3: La regi´on Γ sobre la cual todos los B-splines para n = s = 2 son
positivos.
Como los B-polinomios forman una partici´on de la unidad, c(x) es una com-
binaci´on af´ın de los puntos c . Por lo tanto los B-parches son invariantes por
transformaciones afines. Es m´as, para x ∈ Γ, c(x) yace en la c´apsula convexa
de los B-puntos c pues los B-polinomios son no negativos sobre Γ.
Observaci´on 2: Si todos los nodos de cada cadena son iguales, es decir, SÓ =
S para todo , entonces los B-polinomios Cn
coinciden con los polinomios
de Bernstein Bn
sobre el simplex SÓ pues ambos conjuntos de polinomios
satisfacen la misma relaci´on de recurrencia.
19.3 Precisi´on lineal
El polinomio identidad c(x) = x, de IRs
, se puede representar com un B-
parche de grado n con respecto a los nodos aj
i introducidos en 19.1. Como
19.4. Derivadas de un B-parche 273
la forma polar de x es
x[x1 . . . xn] =
1
n
(x1 + · · · + xn) ,
sus B-puntos son
x =
1
n
(a0
0 + · · · + ai0−1
0 + · · · + a0
s + · · · + ais−1
s ) .
Vea 19.1 y la Figura 19.4, la cual bosqueja el caso n = s = 2.
Figura 19.4: La representaci´on de la identidad sobre IR2
como B-parche cuadr´atico.
Similarmente se pueden obtener los B-puntos de cualquier otro polinomio
c(x) de grado uno. Como c(x) es una aplicaci´on af´ın, su forma polar est´a
dada por
c[x1 . . . xn] = c(x[x1 . . . xn]) .
Por lo tanto los B-puntos de c(x) son c = c(x ). Esta propiedad de la
representaci´on de un polinomio de grado uno como un B-parche se denomina
precisi´on lineal.
Observaci´on 3: Una consecuencia importante de la precisi´on lineal es que
cualquier superficie funcional c(x) de grado ≤ n se puede representar como
c(x) =
x
c(x)
, donde c(x) = c Cn
(x) .
´Esto es, los B-puntos de c(x) son c = [xt
c ]t
, tal como se ilustra en la Figura
19.5 para n = s = 2.
19.4 Derivadas de un B-parche
La derivada direccional de un polinomio
c(x) = c Cn
(x)
274 19. Splines multivariados
Figura 19.5: Un polinomio cuadr´atico con sus ordenadas como parche y como
B-parche de B´ezier.
dado como un B-spline con respecto a una secuencia de nodos AÒ− tiene una
representaci´on como un B-parche de grado n − 1 con respecto a la secuencia
de nodos AÒ−2 . Esta representaci´on depende de los puntos c de una manera
elemental.
Sea ∆x una direcci´on cualquiera de IRs
y denotemos por
˙c(x) =
d
dt
c(x + t∆x)|t=0
la derivada direccional de c en la direcci´on ∆x en el punto x. Si c[x1 . . . xn]
es el polinomio sim´etrico de c(x), entonces la forma polar de ˙c(x) est´a dada
por
˙c[x2 . . . xn] = nc[∆x x2 . . . xn] ,
tal como se present´o en 11.6. Por lo tanto los B-puntos de ˙c(x) son
n˙c = nc[∆x a0
0 . . . ai0−1
0 . . . a0
s . . . ais−1
s ] , ∈ ∆n−1 .
Expresando ∆x con respecto a S , es decir, rescribiendo ∆x como
∆x =
s
k=0
νkajk
k , 0 =
s
k=0
νk ,
y usando que las formas polares son multiafines, se obtiene
˙c =
s
k=0
νkc + k
.
19.5. B-splines multivariados 275
La Figura 19.6 ilustra el caso s = n = 2.
Figura 19.6: Las diferencias ˙c .
Observaci´on 4: Sean x los B-puntos del polinomio identidad p(x) = x con
respecto a los nodos ai
k. Entonces, podemos pensar en la B-malla de c(x)
como una colecci´on de parches lineales
c (x) =
s
k=0
γkc + k
, ∈ ∆n−1 ,
sobre los simples x + 0
. . . x + s
, donde γ0, . . . , γs son las coordenadas baric´en-
tricas de x respecto a x + 0
. . . x + s
.
Como ˙γk = nνk, la derivada direccional de c (x) en la direcci´on ∆x es n˙c y
se tiene que
la derivada de la B-malla consiste en los B-puntos de la derivada
˙c(x).
Esto se ilustra para una funci´on cuadr´atica bivariada en la Figura 19.7.
19.5 B-splines multivariados
Los B-polinomios C , ∈ ∆n, est´an definidos con respecto a los nodos
a0
0, . . . , an−1
0 , . . . , a0
s, . . . , an−1
s .
Si se agregan s + 1 nodos a0n, . . . , asn demostraremos que
los simplex splines normalizados
N =
vol S
(n+s
s )
M(x|A ) , ∈ ∆n ,
276 19. Splines multivariados
Figura 19.7: La derivada direccional de una B-malla para n = s = 2.
con la secuencias de nodos A = a0
0 . . . ai0
0 . . . a0
s . . . ais
s coinciden
con los B-polinomios C (x) para todo
x ∈ Ω = interior (
∈∆0∪···∪∆n
S ) .
Este resultado fue probado en [Dahmen et al. ’92].
Los splines N son B-splines multivariados y tienen propiedades an´alogas
a las de los splines univariados. De hecho, si s = 1, los B-splines N (x)
coinciden con los B-splines univariados definidos en 5.3.
Prueba: A partir de la definici´on de simplex splines en 18.1 y teniendo en
cuenta la f´ormula de recurrencia (2) de 18.5, obtenemos para todo x ∈ IRs
la
siguiente relaci´on de recurrencia
N0
Ó(x) =
1 si x ∈ SÓ
0 en caso contrario ,
N (x) =
s
k=0
vol S
j+s
s
j + s
s
σk
vol Sk
σ vol S
M(x|A − k
) , j = | | ,
donde Sk
se obtiene a partir de S reemplazando ajk
k por x. Las orientaciones
−1 y +1 de las secuencias S y Sk
se denotan por σ y σk
, respectivamente.
Como ambos simples, S y S − k
, contienen a Ω, sus orientaciones son iguales
19.6. Combinaciones lineales de B-splines 277
y la ecuaci´on anterior es equivalente a
N (x) =
s
k=0
σk
σ − k
vol Sk
−ek
vol Sk
N − k
(x)
=
s
k=0
ξk
− k
N − k
(x) ,(1)
donde ξk
− k
es la k-´esima coordenada baric´entrica con respecto a S − k
. Para
que todos los t´erminos est´en bien definidos, para jk = 0, convenimos
ξk
−ek
= σk
vol(Sk
j )/σ , σ −ek
vol (S − k
) = 1 y
N − k
(x) =
1
j+s−1
s
M(x|A − k
) .(2)
Entonces, si jk = 0, tenemos que N − k
es un simplex spline sobre la secuencia
de nodos A − k
, la cual no contiene ning´un nodo de la k-´esima nube a0
k . . . an
k .
Su soporte tiene intersecci´on vac´ıa con Ω, lo cual probamos a continuaci´on.
El soporte de N − k
es la c´apsula convexa de los nodos A − k
. Por lo tanto
cualquier punto en el soporte es una combinaci´on convexa de ciertos puntos
a0, . . . , a∗
k, . . . , as, donde cada ai yace en la c´apsula convexa de los primeros
ji + 1 nodos a0
i , . . . , aji
i de la i-´esima cadena de nodos. Por lo tanto debemos
demostrar que cualquier simplex a0 . . . a∗
k . . . as no interseca Ω. Como Ω
est´a contenido en todos los simples S , para los cuales Ó ≤ ≤ , entonces
tambi´en est´a contenido en cualquier simplex a0 a0
1 . . . a0
s. Repitiendo este
razonamiento se demuestra que el abierto Ω est´a contenido en el simplex
a0 . . . as, lo cual implica que Ω y el soporte de N − k
son disjuntos.
Por lo tanto para todo x ∈ Ω la recurrencia para los B-splines N coincide
con la recurrecia para los B-polinomios C . Luego, N (x) = C (x) para todo
x ∈ Ω. 3
19.6 Combinaciones lineales de B-splines
Hasta ahora hemos considerado B-splines sobre un complejo de s+1 cadenas
de nodos. Sin embargo, la verdadera utilidad de los B-splines se manifiesta
cuando consideramos el espacio de splines definidos sobre una partici´on de
IRs
en complejos de tales cadenas de nodos.
Sean a0
k, k ∈ Z, los v´ertices de una triangulaci´on IRs
y denotemos por K ⊂
Zs+1
el conjunto de ´ındices para los splines.
a0
k0
. . . a0
ks
, = [k0 . . . ks] ∈ K ,
de la triangulaci´on. Supongamos adem´as que cada uno de estos v´ertices
pertenece a una cadena a0
k . . . an
k , y denotamos por S al simplex aj0
k0
. . . ajs
ks
278 19. Splines multivariados
y por A la secuencia de nodos
a0
k0
. . . aj0
k0
. . . a0
ks
. . . ajs
ks
, donde ∈ K, y ∈ ∆0 ∪ . . . ∆n−1 .
Finalmente, supondremos que para todo ∈ K la intersecci´on
Ω = interior
∈∆0∪···∪∆n
S
es no vac´ıa y como en 19.5, denotamos por N el B-spline multivariado
definido sobre la cadena de nodos A .
Cualquier combinaci´on lineal
s(x) =
∈K ∈∆n
c N (x)
de los B-splines N conforman una superficie Cn−1
polin´omica por trozos
de grado total ≤ n si los nodos est´an en posici´on general. Los coeficientes
c forman la malla de control de s(x). La Figura 19.8 ilustra el caso
n = s = 2. Note que la malla de control no tiene porque ser conexa, pudiendo
descomponerse en submallas, una para cada ∈ K. Estas son las B-mallas
de los segmentos polin´omicos s(x), x ∈ Ω .
Figura 19.8: La malla de control de un spline cuadr´atico bivariado sobre dos
tri´angulos.
Decimos que los puntos de control
c , ∈ K , ∈ ∆n ,
19.7. Una relaci´on de recurrencia 279
forman una malla conexa, si para cualesquiera dos simples adyacentes S Ó
y S¯Ó, despu´es de un cambio adecuado de ´ındices de manera que
k0 = ¯k0 y [k1 . . . ks] = [¯k1 . . . ¯ks] ,
los puntos de control c y c¯ son iguales para todos los , para los cuales
i0 = 0.
19.7 Una relaci´on de recurrencia
Si el spline
s(x) = c N (x)
tiene una malla de control conexa, entonces de la relaci´on de recurrencia (1)
de 19.5 se desprende que s(x) tambi´en se puede expresar como una combi-
naci´on de B-splines N de grado | | = n − 1. M´as precisamente,
(3) s(x) =
∈K ∈∆n−1
d N (x) ,
donde
d =
s
l=0
ξl
c , + l
y ξ0
, . . . , ξs
son las coordenadas baric´enticas de x respecto a S .
Para la prueba aplicamos la relaci´on de recurrencia (1) de 19.5 a los B-splines
N , obteni´endose
s(x) =
s
l=0
ξl
, − l
c N , − l
.
Esta suma envuelve t´erminos
c , + l
N ,
con jl = −1. Veremos que la suma de todos estos t´erminos es cero, lo cual
nos llevar´a a expresi´on para s(x), de la ecuaci´on (3).
Debido a la transformaci´on de los ´ındices es suficiente considerar un ´ındice
, para el cual j0 = −1 y = [0 . . . s]. Adicionalmente podemos suponer
que ¯ = [−1 1 . . . s] est´a tambi´en en K. Por lo tanto los simples S 0 y S¯0
tienen orientaciones opuestas, es decir,
σ Ó = −σ¯Ó .
280 19. Splines multivariados
Por aplicaciones sucesivas del argumento usado para deducir (1) se obtiene
σ , = −σ¯,
y consecuentemente
ξ0
= −ξ0
¯ .
Como la malla de control es conexa y N = N¯ , vea (2), se obtiene
ξ0
c , + 0
N + ξ0
¯ c¯, + 0
N¯ = 0 ,
lo cual concluye la prueba. 3
19.8 Derivadas de un spline
La relaci´on de recurrencia (2) de 18.5 y la f´ormula de la derivada (3) de 18.6
para los simplex splines son similares. La f´ormula de la derivada, salvo un
factor constante, se obtiene diferenciando los pesos de la f´ormula de recu-
rrencia, a pesar de que podr´ıa esperarse m´as t´erminos, debido a la regla del
producto.
Debido a ´esto la relaci´on de recurrencia (1) de 19.5 para splines multivaria-
dos se puede transformar en una f´ormula para la derivada. Derivando las
coordenadas baric´entricas ξ en la prueba de la f´ormula de recurrencia de 19.7
se obtiene que, la derivada direccional en la direcci´on ∆x de un spline s(x)
s(x) =
∈K
c N (x)
de grado n = | | con una malla de control conexa est´a dada por
d
dt
s(x + t∆x)|t=0 = n
∈K ∈∆
˙c N (x) ,
donde
˙c =
s
l=0
νlc , + l
y ν0, . . . , νs son las coordenadas baric´entricas de la direcci´on ∆x con respecto
al simplex S . V´ease tambi´en 19.4.
Observaci´on 5: Como ya se observ´o en 19.4 las direcciones ˙c est´an rela-
cionadas con las derivadas respecto a ∆x de las mallas de control c (x) de
s(x) sobre los simples x , + 0
. . . x , + s
.
19.9. El teorema fundamental 281
19.9 El teorema fundamental
En esta secci´on usamos la notaci´on de 19.6 y suponemos que los primeros r
nodos a0
k, . . . , ar−1
k de cada nube de nodos son iguales. Tomando en cuenta
que los simples S Ó forman una triangulaci´on de IRs
probaremos que cualquier
funci´on polin´omica por trozos, con continuidad Cn−r
sobre esta triangulaci´on
es una combinaci´on lineal de los B-splines N . En segundo lugar, expresare-
mos sus puntos de control en t´erminos de las formas polares de sus segmentos
polin´omicos.
Sea s(x) un spline n − r veces continuamente diferenciable, tal que sobre
cada simplex S Ó coincide con un polinomio s (x) de grado ≤ n. Entonces
la versi´on multivariada del teorema principal de 5.5 tiene la siguiente formu-
laci´on [Seidel ’92]:
El spline s(x) se puede expresar como
(4) s(x) =
∈K ∈∆n
s [A , − ]N (x) ,
donde s [x1 . . . xn] es la forma polar de s .
La prueba de este teorema es por inducci´on sobre n − r. Si n − r = −1,
entonces los B-splines N son los polinomios de Bernstein sobre S Ó. V´ease
la 19.5 y la Observaci´on 2 de 19.2. En este caso la identidad (4) se desprende
del teorema de 11.2. Supongamos ahora que n−r ≥ 0 y sea Ds(x) la derivada
direcional de s(x) con respecto a un vector ∆x y supongamos que
Ds(x) =
∈K ∈∆n−1
Ds [A , − ]N (x) .
En 11.6 demostramos que la forma polar de Ds se puede experesar en
t´erminos de la forma polar de s , esto es
Ds [A , − ] = ns [∆x A , − ]
= n
s
l=0
νls [A , − + l
] ,
donde ν0, . . . , νs son las coordenadas baric´entricas de ∆x con respecto a S .
Por la Observaci´on 7 in 11.7 los puntos de control s [A , − ] forman una
malla conexa. Entonces 19.8 implica que
D s [A , − ]N = Ds
Por lo tanto (4) se verifica, salvo una constante. Pero como (2) es cierto sobre
Ω , (vea 19.4 y 19.5), esta constante es cero, lo cual concluye la prueba. 3
282 19. Splines multivariados
En particular se tiene que los B-splines froman una partici´on de la unidad
∈K ∈∆n
N = 1 .
El polinomio identidad p(x) = x tiene puntos de control
x =
1
n
A e .
Vea tambi´en 19.3. La Figura 19.8 ilustra el caso n = s = 2.
19.10 Ejercicios
1 Escriba un algoritmo de elevaci´on de grado para B-parches. Dada una se-
cuencia de cadenas de nodos AÒ = a0
0 . . . an
s en IRs
y cualquier polinomio
p(x) de grado n, considere las dos representaciones por B-parches
p(x) =
∈∆n
p Cn
(x)
y
p(x) =
∈∆n+1
p Cn+1
(x)
con respecto a AÒ− y AÒ, respectivamente. Exprese los puntos de control
p como combinaciones afines de los puntos p .
2 Encuentre un algoritmo que permita rescribir un spline sobre la trian-
gulaci´on S ,Ó, ∈ K, definida en 19.9 con nodos a0
k = · · · = ar−1
k , de
multiplicidad r, como una combinaci´on lineal de B-splines con nodos de
multiplicidad r + 1, a0
k = · · · = ar
k.
3 Proponga un algoritmo de elevaci´on de grado para splines multivariados
sobre una triangulaci´on de IRs
. Estos splines deben presentarse como
combinaciones lineales de B-splines.
4 Encuentre un algoritmo para calcular la representaci´on de B´ezier de un
spline sobre la triangulaci´on S Ó, ∈ K, definida en 19.9.
5 Sea AÒ = [a0
0 . . . an
s ] la matriz de s+1 cadenas, cada una con n+1 nodos
y denotemos por x = 1
n A e, sus abscisas de Greville. V´ease la Obser-
vaci´on 3 de 19.3. Decimos que los puntos x est´an bien posicionados si
todos los simples, x + 0
. . . x + s
, ∈ ∆n−1 tienen interiores disjuntos.
Demuestre que los x est´an bien posicionados si cualquier nodo aµν se
puede expresar como
aµν = aµ0 +
s
k=0
αkak0 ,
19.10. Ejercicios 283
donde 0 = α0+ · · · +αs y |α0|, . . . , |αs|  1/2. V´ease tambi´en [Prautzsch ’97,
Teorema 4.2].
6 Sea AÒ, n0 = n1 = n2 = 2, una secuencia de nodos con abscisas de Gre-
ville bien posicionadas. Demuestre que cualquier polinomio cuadr´atico
bivariado (a valores en IR2
) es convexo sobre IR2
si la malla de su B-
parche, con respecto a AÒ, es convexa. Vea 10.6 y las Figuras 10.6 y
19.5.
7 Sea AÒ una secuencia de nodos en IR2
con abscisas de Greville bien posi-
cionadas. Demuestre que cualquier polinomio cuadr´atico bivariado, a
valores en R, es convexo sobre el dominio Ω, definido en 19.5 si su B-
malla con respecto a AÒ es convexa.
284 19. Splines multivariados
Bibliograf´ıa
C. Bangert and H. Prautzsch (1999). A geometric criterion for the
convexity of Powell-Sabin interpolants and its multivariate extension.
Computer Aided Geometric Design, 16(6):529–538.
R.E. Barnhill and R.F. Riesenfeld, editors (1974). Computer Aided
Geometric Design. Academic Press, New York, 1974.
W. Boehm (1977). ¨Uber die Konstruktion von B-Spline-Kurven. Computing,
18:161–166.
W. Boehm (1980). Inserting new knots into B-Spline-Curves. Computer-
Aided Design, 12(4):199–201.
W. Boehm (1983). Generating the B´ezier points of triangular splines. In
R.E. Barnhill and W. Boehm, editors (1983), Surfaces in Computer
Aided Geometric Design, pages 77–91. Elsevier Science Publishers B.V.
(North-Holland), 1983.
W. Boehm (1984a). Calculating with box splines. Computer Aided Geomet-
ric Design, 1:149–162.
W. Boehm (1984b). Efficient evaluation of splines. Computing, 33:171–177.
W. Boehm (1985). Curvature continuous curves and surfaces. Computer
Aided Geometric Design, 2:313–323.
W. Boehm (1987). Smooth curves and surfaces. In G. Farin, editor
(1987), Geometric Modeling: Algorithms and New Trends, pages 175–
184. SIAM, 1987.
W. Boehm, G. Farin, and J. Kahmann (1984). A survey of curve and
surface methods in CAGD. Computer Aided Geometric Design, 1(1):1–
60.
W. Boehm and H. Prautzsch (1993). Numerical Methods. Vieweg, Wies-
baden and AK Peters, Wellesley, Mass.
W. Boehm, H. Prautzsch, and P. Arner (1987). On triangular splines.
Constructive Approximation, 3:157–167.
286 Bibliograf´ıa
C. de Boor (1972). On calculating with B-splines. Journal of Approximation
Theory, 6:50–62.
C. de Boor (1976). Total positivity of the spline collocation matrix. Indiana
University Journal Math., 25:541–551.
C. de Boor (1976a). Splines as linear combinations of B-splines. In Schu-
maker, Lorentz, Chui, editor (1976a), Approximation Theory II,
pages 1–47. Academic Press, New York, 1976.
C. de Boor (1978). A Practical Guide to Splines. Springer, New York.
C. de Boor (1984). Splinefunktionen. Research Report 84-05, Seminar
f¨ur angewandte Mathematik, Eidgen¨ossische Technische Hochschule,
Z¨urich, Switzerland, 1984.
C. de Boor (1987). B-form basics. In G. Farin, editor (1987), Geometric
Modeling: Algorithms and New Trends, pages 131–148. SIAM, Philadel-
phia, 1987.
C. de Boor and K. H¨ollig (1982). Recurrence relations for multivariate
B-splines. Proceedings of the American Mathematical Society, 85(3).
C. de Boor, K. H¨ollig, and S. Riemenschneider (1993). Box Splines.
Applied Mathematical Sciences 98. Springer, New York.
M. do Carmo (1976). Differential Geometry of Curves and Surfaces. Pren-
tice Hall, Englewood Cliffs, New Jersey, 1976.
J.M. Carnicer and W. Dahmen (1992). Convexity preserving interpo-
lation and Powell-Sabin elements. Computer Aided Geometric Design,
9(4):279–290.
P. de Faget de Casteljau (1959). Outillage m´ethodes calcul. Enveloppe
Soleau 40.040, Institute National de la Propriet´e Industrielle, Paris.
P. de Faget de Casteljau (1985). Formes a poles. In Mathematiques et
CAO 2. Hermes Publishing, Paris, 1985.
E. Catmull and J. Clark (1978). Recursively generated B-spline surfaces
on arbitrary topological meshes. Computer-Aided Design, 10(6):350–
355.
A.S. Cavaretta, W. Dahmen, and C.A. Micchelli (1991). Station-
ary subdivision. Memoirs of the American Mathematical Society,
93(453):1–186.
G.M. Chaikin (1974). An algorithm for high-speed curve generation. Com-
puter Graphics and Image Processing, 3:346–349.
Bibliograf´ıa 287
R.W. Clough and J.L. Tocher (1965). Finite element stiffness matrices
for the analysis of plate bending. In Proceedings of the 1st Conference
on Matrix Methods in Structural Mechanics, Wright-Patterson AFB
AFFDL TR, pages 515–545, 1965.
E. Cohen, T. Lyche, and R.F. Riesenfeld (1980). Discrete B-splines
and subdivision techniques in computer-aided geometric design and
computer graphics. Computer Graphics and Image Processing, 14:87–
111.
E. Cohen, T. Lyche, and R.F. Riesenfeld (1984). Discrete box splines
and refinement algorithms. Computer Aided Geometric Design, 1:131–
148.
E. Cohen, T. Lyche, and L.L. Schumaker (1985). Algorithms for degree
raising of splines. ACM Transactions on Graphics, 4(3):171–181.
M.G. Cox (1972). The numerical evaluation of B-splines. J. Inst. Maths.
Applics., 10:134–149.
H.B. Curry and I.J. Schoenberg (1966). On P´olya frequency functions
IV: The fundamental spline functions and their limits. J. d’Analyse
Math., 17:71–107.
W. Dahmen and C.A. Micchelli (1983). Translates of multivariate
splines. Linear Algebra and its Applications, 217-234.
W. Dahmen and C.A. Micchelli (1984). Subdivision algorithms for the
generation of box spline surfaces. Computer Aided Geometric Design,
1:115–129.
W. Dahmen and C.A. Micchelli (1985). On the local linear independence
of translates of a box spline. Studia Math., 82:243-262.
W. Dahmen, C.A. Micchelli, and H.-P. Seidel (1992). Blossoming
begets B-splines built better by B-patches. Mathematics of computation
59, 199:97–115.
W. Degen (1988). Some remarks on B´ezier curves. Computer Aided Geo-
metric Design, 5:259–268.
A.D. DeRose, R.N. Goldmann, H. Hagen, and S. Mann (1993). Func-
tional composition algorithms via blossoming. ACM Transactions on
Graphics, 12:113–135.
D.W.H. Doo and M.A. Sabin (1978). Behavior of recursive division sur-
faces near extraordinary points. Computer-Aided Design, 10(6):356–
360.
288 Bibliograf´ıa
N. Dyn, J. Gregory, and D. Levin (1990). A butterfly subdivision scheme
for surface interpolation with tension control. ACM Transactions on
Graphics, 9:160–169.
N. Dyn, J.A. Gregory, and D. Levin (1991). Analysis of uniform bi-
nary subdivision schemes for curve design. Constructive Approxima-
tion, 7:127–147.
N. Dyn, D. Levin, and J.A. Gregory (1987). A 4-point interpolatory
subdivision scheme for curve design. Computer Aided Geometric De-
sign, 4:257–268.
N. Dyn and C.A. Micchelli (1988). Piecewise polynomial spaces and
geometric continuity of curves. Numerical Mathematics, 54:319–337.
M. Eck (1993). Degree reduction of B´ezier curves. Computer-Aided Design,
10:237–251.
M. Eck (1995). Least squares degree reduction of B´ezier curves. Computer-
Aided Design, 27 (11):845–853.
G. Farin (1979). Subsplines ¨uber Dreiecken. Diss., TU Braunschweig, Ger-
many, 1979.
G. Farin (1982). Visually C2
cubic splines. Computer-Aided Design, 14:137–
139.
G. Farin (1986). Triangular Bernstein-B´ezier patches. Computer Aided
Geometric Design, 3(2):83–127.
G. Farin (2002). Curves and Surfaces for Computer Aided Geometric De-
sign. Morgan Kaufmann Publishers, 5th edition.
D. Filip, R. Magdson, and R. Markot (1986). Surface algorithms using
bounds on derivatives. Computer Aided Geometric Design, 3(4):295–
311.
M.S. Floater (1997). A counterexample to a theorem about the convexity
of Powell-Sabin elements. Computer Aided Geometric Design, 14:383–
385.
T.A. Foley and G.M. Nielson (1989). Knot selection for parametric
spline interpolation. In T. Lyche and L.L. Schumaker, editors
(1989), Mathematical Methods in Computer Aided Geometric Design,
pages 261–271. Academic Press, Boston, 1989.
W. Gordon and R.E. Riesenfeld (1974). B-spline curves and surfaces.
In [Barnhill  Riesenfeld ’74], pages 95–125, 1974.
Bibliograf´ıa 289
T.A. Grandine (1989). On convexity of piecewise polynomial functions on
triangulations. Computer Aided Geometric Design, 6(3):181–187.
J. Gravesen (1997). Adaptive subdivision and the length of B´ezier curves.
Computational Geometry, 8:13–31.
J.A. Gregory (1991). An introduction to bivariate uniform subdivision. In
D.F. Griffiths and G.A. Watson, editors (1991), Numerical Analy-
sis, pages 103–117. Pitman Research Notes in Mathematics, Longman
Scientific and Technical, 1991.
T.N.E. Greville (1967). On the normalization of the B-splines and the
location of the nodes for the case of unequally spaced knots. In
O. Shiska, editor (1967), Inequalities. Academic Press, New York,
1967.
J. Hoschek and D. Lasser (1992). Grundlagen der geometrischen Daten-
verarbeitung. B.G. Teubner, Stuttgart, second edition. English transla-
tion: Fundamentals of Computer Aided Geometric Design, AK Peters,
Wellesley, 1993.
R.-Q. Jia (1983). Linear independence of translates of a box spline. Journal
of Approximation Theory, 40:158-160.
R.-Q. Jia (1985). Local linear independence of the translates of a box spline.
Constructive Approximation, 1:175-182.
S. Karlin (1968). Total Positivity. Stanford University Press, 1968.
W. Klingenberg (1978). A Course in Differential Geometry. Springer,
New York.
L. Kobbelt (1994). Iterative Erzeugung glatter Interpolanten. Diss., Uni-
versit¨at Karlsruhe, 1994.
L. Kobbelt (2000).
√
3-Subdivision. Proceedings of SIGGRAPH 2000, Aca-
demic Press, New York, pages 103–112.
L. Kobbelt and H. Prautzsch (1995). Approximating the length of a
spline by its control polygon. In T. Lyche M. Dæhlen and L.L.
Schumaker, editors (1995), Mathematical Methods for Curves and
Surfaces, pages 291–292, 1995.
M.-J. Lai (1991). A characterization theorem of multivariate splines in
blossoming form. Computer Aided Geometric Design, 8:513–521.
J.M. Lane and R.F. Riesenfeld (1980). A theoretical development
for the computer generation and display of piecewise polynomial sur-
faces. IEEE Transactions on Pattern Analysis and Machine Intelli-
gence, 2(1):35–46.
290 Bibliograf´ıa
E.T.Y. Lee (1982). A simplified B-spline computation routine. Computing,
29:365–373.
E.T.Y. Lee (1989). Choosing nodes in parametric curve interpolation.
Computer-Aided Design, 21:363–370.
E.T.Y. Lee (1994). Remarks on an identity related to degree elevation.
Computer Aided Geometric Design, 11:109–111.
W. Liu (1997). A simple, efficient degree raising algorithm for B-spline
curves. Computer Aided Geometric Design, 14:693–698.
C.T. Loop (1987) Smooth subdivision surfaces based on triangles. Master
thesis, University of Utah, 1987.
D. Lutterkort, J. Peters and U. Reif (1999). Polynomial degree
reduction in the L2-norm equals best Euclidean approximation of
B´eziercoefficients. Computer Aided Geometric Design, 16:607–612.
M.-L. Mazure and H. Pottmann (1996). Tchebycheff curves. In
M. Gasca and C.A. Micchelli, editors (1996), Total Positivity and
its Applications, pages 187–218. Kluwer, 1996.
C.A. Micchelli (1979). On a numerically efficient method for com-
puting multivariate B-splines. In W. Schempp and K. Zeller,
editors (1979), Multivariate Approximation Theory, pages 211–248.
Birkh¨auser, Basel, 1979.
C.A. Micchelli (1980). A constructive approach to Kergin interpolation in
Rk
: multivariate B-splines and Lagrange interpolation. Rocky Moun-
tain Journal of Mathematics, 10(3):485–497.
C.A. Micchelli and H. Prautzsch (1987). Refinement and subdivision
for spaces of integer translates of a compactly supported function. In
D.F. Griffiths and G.A. Watson, editors (1987), Numerical Analy-
sis, pages 192–222. Longman, London, 1987.
C.A. Micchelli and H. Prautzsch (1989). Computing curves invariant
under subdivision. Computer Aided Geometric Design, 4:321–328.
D. Nairn, J. Peters, and D. Lutterkort (1999). Sharp, quantitative
bounds on the distance between a polynomial piece and its B´ezier con-
trol polygon. Computer Aided Geometric Design, 16(7):613–633.
G. Nielson (1974). Some piecewise polynomial alternatives to splines under
tension. In R.E. Barnhill and R.F. Riesenfeld, editors (1974),
Computer Aided Geometric Design, pages 209–235. Academic Press,
1974.
Bibliograf´ıa 291
J. Peters (1991). Smooth interpolation of a mesh of curves. Constructive
Approximation, 7:221–246.
J. Peters (1994). Evaluation and approximate evaluation of the multivari-
ate Bernstein-B´ezier form on a regularly partitioned simplex. ACM
Transactions on Mathematical Software, 20(4):460–480.
J. Peters and U. Reif (1997). The simplest subdivision scheme for smooth-
ing polyhedra. ACM Transaction on Graphics, 16(4):420–431.
L. Piegl and W. Tiller (1994). Software-engineering approach to degree
elevation of B-spline curves. Computer-Aided Design, 26(1):17–28.
B. Piper (1987). Visually smooth interpolation with triangular B´ezier
patches. In G. Farin, editor (1987), Geometric Modeling: Algorithms
and New Trends, Philadelphia, pages 221–233. SIAM, 1987.
H. Pottmann (1993). The geometry of Tchebycheffian splines. Computer
Aided Geometric Design, 10:181–210.
H. Pottmann and A.D. DeRose (1991). Classification using normal
curves. Curves and Surfaces in Computer Vision and Graphics 2,
1610:217–228.
M.J.D. Powell (1981). Approximation theory and methods. Cambridge
University Press.
M.J.D. Powell and M.A. Sabin (1977). Piecewise quadratic approxi-
mations on triangles. ACM Transactions on Mathematical Software,
3(4):316–325.
H. Prautzsch (1984a). Degree elevation of B-spline curves. Computer Aided
Geometric Design, 1:193–198.
H. Prautzsch (1984b). Unterteilungsalgorithmen f¨ur multivariate Splines
Ein geometrischer Zugang. Diss., TU Braunschweig, 1984.
H. Prautzsch (1989). A round trip to B-splines via de Casteljau. ACM
Transactions on Graphics, 8(3):243–254.
H. Prautzsch (1997). Freeform splines. Computer Aided Geometric Design,
14:201–206.
H. Prautzsch (1998). Smoothness of subdivision surfaces at extraordinary
points. Advances in Computational Mathematics, 9:377–389.
H. Prautzsch (2002). B-splines with arbitrary connection matrices.
Preprint, 2002.
H. Prautzsch and W. Boehm (2002). Box Splines. In Kim et al, editor
(2002), Handbook of Computer Aided Design, Elsevier, 2002.
292 Bibliograf´ıa
H. Prautzsch and B. Piper (1991). A fast algorithm to raise the degree
of spline curves. Computer Aided Geometric Design, 8:253–265.
H. Prautzsch and U. Reif (1999). Degree estimates for Ck
-piecewise poly-
nomial subdivision surfaces. Advances in Computational Mathematics,
10:209–217.
L. Ramshaw (1987). Blossoming: a Connect-the-Dots Approach to Splines.
Technical report, Digital Systems Research Center, Palo Alto, Califor-
nia, June 21, 1987.
U. Reif (1993). Neue Aspekte in der Theorie der Freiform߬achen beliebiger
Topologie. Diss., Mathematisches Institut A der Universit¨at Stuttgart,
1993.
U. Reif (1995a). A note on degenerate triangular B´ezier patches. Computer
Aided Geometric Design, 12:547–550.
U. Reif (1995b). A unified approach to subdivision algorithms near extra-
ordinary vertices. Computer Aided Geometric Design, 12:153–174.
U. Reif (1996). A degree estimate for subdivision surfaces of higher regu-
larity. Proc. of the AMS, 124(7):2167–2174.
U. Reif (1998). TURBS - Topologically unrestricted rational B-splines.
Constructive Approximation, 14(1):57–78.
U. Reif (2000). Best bounds on the approximation of polynomials and
splines by their control structure. Computer Aided Geometric Design,
17:579–589.
G. de Rham (1947). Un peu de math´ematiques `a propos d’une courbe plane.
Elemente der Mathematik, 2(4):89–104.
V.L. Rvachev (1990). Compactly supported solutions of functional differ-
ential equations and their applications. Russian Math. Surveys, 45:87–
120.
M.A. Sabin (1977). The use of piecewise forms for the numerical represen-
tation of shape. PhD thesis, Hungarian Academy of Science, Budapest,
1977.
M.A. Sabin (1986). Recursive subdivision. In Gregory, editor (1986),
The Mathematics of Surfaces, Claredon Press, Oxford, England, pages
269-282.
P. Sablonniere (1978). Spline and B´ezier polygons associated with a poly-
nomial spline curve. Computer-Aided Design, 10:257–261.
Bibliograf´ıa 293
R. Schaback (1993). Error estimates for approximations from control nets.
Computer Aided Geometric Design, 10:57–66.
I.J. Schoenberg (1967). On spline functions. In O. Sischa, editor (1967),
Inequalities, pages 255–291. Academic Press, New York, 1967.
I.J. Schoenberg and A. Whitney (1953). On P´olya frequency functions,
3: The positivity of translation determinants with applications to the
interpolation problem by spline curves. TAMS, 74:246–259.
L.L. Schumaker (1973). Constructive aspects of discrete polynomial spline
functions. In G.G. Lorentz et al, editor (1973), Approximation
Theory, pages 469–476. Academic Press, New York, 1973.
L.L. Schumaker (1981). Spline functions – Basic theory. John Wiley 
Sons, New York.
H.-P. Seidel (1989). Computing B-spline control points. In W. Strasser
and H.-P. Seidel, editors (1989), Theory and Practice of geometric
modeling, pages 17–32. Springer, Berlin, 1989.
H.-P. Seidel (1991). Symmetric recursive algorithms for surfaces: B-patches
and the de Boor algorithm for polynomials over triangles. Constructive
Approximation, 7:257–279.
H.-P. Seidel (1992). New algorithms and techniques for computing with
geometrically continuous spline curves of arbitrary degree. Mathemat-
ical Modelling and Numerical Analysis, 26(1):149–176.
P. Shenkman, D. Dyn, and D. Levin (1999). Normals of the butterfly
subdivision scheme surfaces and their application. Journal of Compu-
tational and Applied Mathematics, 102(1):157–180.
E. St¨ark (1976). Mehrfach differenzierbare B´ezier-Kurven und B´ezier-
Fl¨achen. Diss., TU Braunschweig, 1976.
W. Trump (2001). Neue Algorithmen zur Graderh¨oung und Umpara-
metrisierung von B´ezier- und B-Spline-Darstellungen. Diss., Univer-
sit¨at Karlsruhe, 2001.
W. Trump and H. Prautzsch (1996). Arbitrary degree elevation for sim-
plicial B´ezier polynomials. Computer Aided Geometric Design, 13:387–
398.
Volltext algebra superior
Indice
A-marco, 37
generalizado, 95
abscisas
de Greville, 70, 80, 282
de B´ezier, 21, 146
afines
invariante bajo aplicaciones, 69
afinmente
independientes, 4
invariante, 129, 144, 245, 253
af´ın
aplicaci´on, 5
combinaci´on, 5, 129, 144
coordenadas, 4
en cada variable, 25, 130, 155
espacio, 3
osculantes, 102
ajuste
por m´ınimos cuadrados, 53
algoritmo
de Aitken, 46
de Catmull-Clark, 226
de de Boor, 63, 66, 78
extendido, 70
generalizado, 67, 106
de de Casteljau, 13, 131, 132,
146
estabilidad num´erica, 14, 146
generalizaci´on, 158, 269, 270
de Doo-Sabin, 226
de inserci´on de nodos, 101, 107
de la mariposa, 222, 235
de Lane-Riesenfeld, 30, 111,
206, 216, 226
de Oslo, 79
de promediaci´on en tres
direcciones, 220
de subdivisi´on estacionaria, 109
esquema de promedios, 214
para la elevaci´on de grado, 81
aplicaci´on
caracter´ıstica, 232
del esquema de subdivisi´on,
232
lineal subyacente, 5
aproximaci´on, 43, 52
aproximante, 52
Arner, 216
autointersecciones, 41
B-malla, 278
B-parche, 271
derivada, 273
B-polinomio, 271
B-punto, 270
B-spline, 60, 62, 276
como diferencias divididas, 74
conversi´on a la representaci´on,
69
de grado n, 68
derivada, 69
discretos, 79
escalados, 110
f´ormula de recursi´on, 64, 111
gamma, 96
propiedades de suavidad, 67
recursi´on de de Boor, 69
representaci´on por, 59
296 Indice
t´ecnica, 77
trasladados, 110
una definici´on recursiva, 62
uniformes, 109
Bangert, 177
base, 68, 143
de γ-splines, 96
polin´omica de Newton, 46
blossom, 26, 156
Boehm, 72, 75, 78, 79, 93, 95, 97,
100, 108, 216, 217, 256,
257
de Boor, 31, 39, 56, 61, 63, 64, 66,
67, 69, 70, 74–76, 79, 85,
106, 165, 249, 256, 259
Box spline
sobre mallas triangulares, 217
box spline, 218, 239
como sombras, 240
definici´on, 239
densidad de la sombra, 240
subdivisi´on de superfices, 246
superficie, 245
c´alculo
con esquema de diferencias, 212
con esquema de promedios, 214
c´apsula convexa, 64, 69, 245, 272
cadena de nodos, 277
caja de acotaci´on, 13, 33
cara
de dimensi´on inferior, 144
de la malla de B´ezier, 144
do Carmo, 99
Carnicer, 177
de Casteljau, 131, 132, 156, 158
Catmull, 225, 226
Cavaretta, 213
centro del soporte, 246
Chaikin, 112
Clark, 225, 226
Clough, 170
Cohen, 79, 81, 248
combinaci´on
af´ın, 129, 144
convexa, 12, 14, 64, 145, 245
conexi´on
Cr
simples, 36, 162
G1
, 179
Gk
, 190
Gk
usando
curvas transversales, 191
la regla de la cadena, 192
de dos parches triangulares c´ubicos,
181
general C1
, 179
general Ck
, 189
general GCr
, 92
geom´etrica G1
, 179
simple Cr
, 135
construcci´on
de St¨ark, 37, 60
geom´etrica de un box spline,
241
recursiva, 110
construcci´on Gk
, 189
contacto
de orden r, 92
continuidad
de Frenet, 99
de superfices obtenidas por sub-
divisi´on, 231
convergencia
bajo subdivisi´on, 29, 159, 249
por elevaci´on de grado, 39, 83,
164
por inserci´on de nodos, 80
teorema
para Cr
-subdivisi´on, 116
uniforme, 115
conversi´on
a la forma monomial, 22
a la representaci´on B-spline,
69
a la representaci´on de B´ezier,
20
a la representaci´on tensorial
de B´ezier, 166
a la representaci´on triangular
de B´ezier, 167
Indice 297
de forma de B´ezier a forma
monomial, 131
de forma monomial a forma
de B´ezier, 131
entre las representaciones de
de Boor y de B´ezier, 72
convexa
c´apsula, 5, 8, 12, 64, 69, 145,
272
combinaci´on, 5, 12, 14, 64, 145,
245
convexidad, 148, 152
limitaciones, 150
convoluci´on, 109
de Nj−1
con N0
, 110
sucesiva, 239
coordenadas
baric´entricas, 4, 141
extendidas, 3
origen del sistema de, 4
Cox, 62, 69, 74–76
c´ubica plana
c´uspide, 23
Curry, 66
curva
borde, 128
convexa, 35
Frenet continua de orden r, 99
funcionales, 7
normal, 106
par´ametrica, 6
polin´omica, 6
derivada, 35
suaves, 91
curva de B´ezier, 11
recta tangente, 16, 18
curvatura, 99
de una c´ubica, 49
invariante euclideano, 100
prescrita, 56
curvatura continua
segmentos conectados por, 94
c´ırculos tangentes, 107
Dahmen, 177, 213, 245, 248, 276
Degen, 93
densidad de la sombra, 240, 252
derivada, 15, 114, 133, 147, 266
r-´esima, 18
de un B-parche, 273
de un polinomio de Bernstein
parciales, 147
de un producto tensorial, 133
de un spline, 114
suavidad, 67
direccional, 161, 267, 273
de un box spline, 243, 246
de un half-box spline, 252,
253
en la representaci´on de B´ezier,
16
parcial, 36
DeRose, 167
desplazamientos uniformes, 40
diferencia
dividida, 47, 74
hacia adelante, 15, 16
hacia atr´as, 67
dimensi´on, 4
distribuci´on polihipergeom´etrica, 39
Doo, 225, 226
Dyn, 105, 118, 120, 222
Eck, 38
ecuaci´on
de correlaci´on, 54
de refinamiento, 114, 117, 206,
212
funcional de un box spline, 242
normales, 54
normales de Gauss, 54
elemento
de Zwart-Powell, 244
elevaci´on de grado, 38, 69, 163
esquema
de diferencias, 115
c´alculo con, 117, 212
polinomio caracter´ıstico, 213
de las ∇v-diferencias, 213
de los cuatro puntos, 118, 119
298 Indice
de producto tensorial, 206, 213
de promediaci´on, 257
de promedios, 214
algoritmo, 214
de subdivisi´on
aplicaci´on caracter´ıstica, 232
polinomio caracter´ıstico, 213
s´ımbolo, 213
de subdivisi´on estacionaria
de mallas hexagonales, 234
de mallas triangulares, 234
de una malla regular, 205
del punto medio, 225, 226, 236
general de subdivisi´on, 207
iterativo interpolante, 118
tetra´edrico, 19, 71, 73
triangular, 11, 64
esquina
del parche, 128
extraordinaria, 139
expansi´on
binomial, 9
de Taylor
de un segmento de spline,
71
en una superficie triangular,
153
trinomial, 141
f´ormula
de elevaci´on de grado, 39, 82,
268
de Micchelli, 268
de Frenet, 98
de Hermite-Genocchi, 56
de inserci´on de nodos, 264
de recurrencia
de polinomios de Bernstein,
10
de recursi´on
de polinomios de Bernstein,
63, 143
Farin, 39, 40, 52, 93, 94, 162
fibra, 259
Filip, 31
Floater, 177
Foley, 52
forma polar, 65, 156
asociada, 26
del producto tensorial, 130
diagonal, 25
simetr´ıa, 25
tensorial, 130
funci´on
caracter´ıstica, 260
de conexi´on, 179
de densidad, 239
error de Gauss, 56
generatriz, 212
gr´afico de una, 6
potencial truncada, 74
racional, 180
racional por trozos, 105
γ-A-marco, 95
γ-spline, 95, 108
Goldman, 167
Gordon, 65
graficaci´on
programa de, 30
Grandine, 151
Gravesen, 41
Gregory, 118, 222
Hagen, 167
half-box spline, 251
normalizados, 251
superficies, 253
Half-box splines
sobre mallas triangulares, 221
Hoschek, 52
H¨ollig, 249, 256
identidad de Marsden, 70, 75
inserci´on
de nodos, 77, 105, 263
repetida de nodos, 78
integral
de una curva polin´omica, 19
intercambio
Indice 299
entre formas monomial y de
B´ezier, 131
interpolaci´on, 43, 84, 169
C1
bic´ubica por trozos, 136
con splines c´ubicos, 86
de Hermite, 48, 169
c´ubica por trozos, 50
de Hermite para curvas
en representaci´on de B´ezier,
140
de Lagrange, 44
de Newton, 46
lineal, 4
lineal, esquema, 52
tensorial, 136
interpolador
de Clough-Tocher, 170
de Hermite, 194
de Powell-Sabin, 171
triangular G1
, 183
interpretaci´on geom´etrica, 251
intersecci´on, 32
de dos curvas de B´ezier, 32
programa de, 33
invariantes
geom´etricos, 99
jets de orden r, 92
Jia, 245
Karlin, 85
Kobbelt, 41, 119, 213
Lai, 163
Lane, 30, 111, 206, 226
Lasser, 52
Lee, 52, 72, 82
Levin, 118, 222
linealmente independientes, 9, 142
linearizaci´on, 55
Liu, 81
longitud de arco, 41, 94
parametrizaci´on por, 94
longitud de cuerdas, 52
Loop, 235
Lutterkort, 38
Lyche, 79, 81, 248
m´ascara, 207, 256
m´etodo
de Horner, 14
simplex, 53
macroparche, 198
malla
conexa, 279
cuadrilateral, 193, 215
de topolog´ıa arbitraria, 138
cuadrilateral no regular, 137
cuadrilateral regular, 136
de control, 278
secuencia, 209
de cuasi control, 140
de B´ezier, 128, 144, 196
extraordinaria, 226
hexagonal, 219, 234
hexagonal regular, 254
regular, 215
subdivisi´on repetida, 160
triangular, 215, 234
subdivisi´on, 215
Mann, 167
Mansfield, 62, 69, 74–76
marco, 4
de Frenet, 98
matriz
caracter´ıstica, 220
de colocaci´on, 84
totalmente positiva, 85
de conexi´on, 92, 99
arbitraria, 104
totalmente positiva, 105
de subdivisi´on, 114, 205, 230
estoc´astica, 230
Mazure, 103
Micchelli, 82, 105, 213, 230, 235,
245, 248, 262, 264, 267,
268
microtri´angulo, 170
multiaf´ın
polinomios sim´etricos, 27
300 Indice
ν-splines, 97
Nairn, 29
Nielson, 97
m-nodo, 260
nodos, 59, 260
algoritmo de inserci´on, 101, 107
cadenas, 270
convergencia por inserci´on, 80
eliminaci´on para B-splines, 79
f´ormula de inserci´on, 264
inserci´on, 77, 105, 263
inserci´on repetida, 78
m´ultiples, 103
multiplicidad de, 68
nubes, 270
refinamiento, 77
notaci´on vectorial, 131
operador
de Bernstein, 23, 40, 152
de diferencia, 153
de duplicaci´on, 206, 216, 219
de promediaci´on, 206, 216, 225
de refinamiento, 206, 217, 225
del punto medio, 226
ordenadas de B´ezier, 21, 146
origen
del sistema de coordenadas, 4
osculante, 101
af´ın, 102
diagonal, 101
generalizado, 105
primer, 101
propiedades, 101
segundo, 101
simetr´ıa, 101
osculante generalizado
diagonal, 105
par´ametro
de dise˜no, 118
global, 11, 128, 142
local, 11, 128, 142
parametrizaci´on
centr´ıpeta, 52
equidistante, 51
por longitud de arco, 94
regular, 94
singular, 137, 173
standard, 229
parches
multilaterales en el plano, 200
paridad
el problema, 185
partici´on de la unidad, 10, 65, 68,
143, 245, 253, 272, 282
partici´on de prisma, 268
Peters, 38, 161, 186, 258
Piegl, 81
Piper, 81
plano
osculador, 16, 18
tangente, 134, 138, 148
continuo, 174
poliedro de B´ezier, 148
convexos, 150
polinomio
caracter´ıstico del esquema
de diferencias, 118, 213
de subdivisi´on, 117, 213
de Bernstein, 9, 141, 266, 272
derivada de un, 15
derivadas parciales, 147
f´ormula de recurrencia, 10,
63, 143
multivariados, 142
propiedades, 9
propiedades de simetr´ıa, 144
propiedades en dimensi´on d,
142
ra´ıces, 10
simetr´ıa, 10, 12, 143
de Hermite, 48
de Lagrange, 44, 126
de Laurent, 117
sim´etrico, 25, 101, 155
de la derivada, 161
elementales, 26, 156
multiaf´ın, 102
relaci´on de recurrecncia, 26
Indice 301
pol´ıgono
convexo, 35
de control, 101
de diferencias, 115
de B´ezier, 11
de B´ezier compuesto, 29, 37
Pottmann, 103
Powell, 84
p-parche, 198
Prautzsch, 40, 41, 61, 75, 81, 89,
103, 165, 177, 198, 203,
216, 230, 233, 235, 236,
246, 247, 283
precisi´on bilineal
de representaci´on de B´ezier, 132
precisi´on lineal, 21, 145, 146, 246,
254, 273
primer hod´ografo, 15
primera diferencia
hacia atr´as, 67
prisma
partici´on de, 268
problema
de la paridad, 185
del v´ertice compartido, 184
producto tensorial, 125
esquema, 206, 213
programaci´on lineal, 57
promedios crecientes, 211
propiedad
de variaci´on decreciente, 88
puntos
de control, 64, 66, 105, 126,
245, 249, 253
de cuasi control, 140
de B´ezier, 11, 128, 144
dependientes, 199
extraordinarios, 227
libres, 199
Ramshaw, 26, 81, 156
raz´on simple, 4
recorte de esquinas, 34
recursi´on
de de Boor, 69
reducci´on de grado, 38
refinamiento uniforme, 145
regla de Leibniz, 76
Reif, 29, 38, 138, 174, 202, 203,
225, 232, 234, 258
relaci´on de recurrencia, 143, 156
de B-polinomios, 272
de Micchelli, 266, 267
de polinomios sim´etricos, 26
f´ormula para B-splines, 64
para box splines, 256
para la derivada del simplex
spline, 267
reparametrizaci´on, 190
representaci´on
de B´ezier, 9, 11, 127, 143, 152,
157
de parches triangulares, 141
del spline, 79
monomial, 20
residual m´ınimo, 53
de Rham, 112
Riemenschneider, 249
Riesenfeld, 30, 65, 79, 111, 206,
226, 248
Rvachev, 120
Sabin, 162, 171, 225, 226, 251, 258
Sablonniere, 71, 72
Schaback, 80
Schoenberg, 61, 66, 259
Schumaker, 79, 81, 88
secuencia de mallas de control, 209
segmento de curva
extremos, 12
Seidel, 81, 105, 107, 269, 281
Shenkman, 222
sim´etrico, 105
simetr´ıa, 128
de polinomios de Bernstein, 12
simplex
k-dimensional, 259
de referencia, 144
de B´ezier, 143, 146
simplex spline normalizado, 262
302 Indice
simplex splines, 259
sombras de simples, 259
soporte, 260
soporte compacto, 69
spline
C1
de grado cinco de topolog´ıa
arbitraria, 175
c´ubicos, interpolaci´on, 86
bases, 106, 107
bic´ubico C1
de topolog´ıa
arbitraria, 138
c´ubicos peri´odicos, 87
con matrices de conexi´on
arbitraria, 104
cu´articos con torsi´on continua,
97
de grado n, 59
de orden n + 1, 60
de Tchebycheff, 103
empotrado, 87
multivariados, 269
nu, 97
representaci´on de B´ezier, 79
simplex, 259
propiedades, 260
tensiones, 97
uniforme, 110
universal, 107
spline half-box, 222
St¨ark, 36, 93, 135
subdivisi´on, 29, 36, 152
de la malla de B´ezier, 158
de mallas hexagonales, 219
de mallas triangulares, 215
de superficies box spline, 246
estacionaria, 115
de una malla regular, esquema,
205
en general, 207
para mallas arbitrarias, 225
para mallas regulares, 205
iterada, 112, 115
repetida, 249
uniforme, 109, 110
subespacio osculador, 102
suma ponderada, 5
superficie
Gk
de topolog´ıa arbitraria, 193
box spline, 245
subdivisi´on, 246
cerrada, 172
continuidad obtenida por
subdivisi´on, 231
de Lagrange, 126
de topolog´ıa arbitraria, 136,
172
funcional, 7, 146, 273
half-box, 253
l´ımite, 227
param´etrica, 7
polin´omica, 7
producto tensorial, 125, 126
superficies suaves, 179
s´ımbolo
del esquema de subdivisi´on, 213
t´ecnica
de B-splines, 77
de diferencias
hacia adelante, 31
de B´ezier, 25
para parches triangulares, 155
Taylor
expansi´on de, 22
tensorial
forma polar, 130
teorema
de convergencia, 116, 209
para Cr
-subdivisi´on, 116
de St¨ark, 36, 61, 135, 162, 171
fundamental, 65, 157
interpretaci´on geom´etrica, 102
producto tensorial, 130
para curvas, 27
Schoenberg-Whitney, 84
teselado del soporte, 242
Tiller, 81
Tocher, 170
topolog´ıa arbitraria, 193
torsi´on, 99
Indice 303
restricciones, 185
torsi´on cruzada, 134
trasladado, 110
Trump, 40, 81, 89, 165
unimodular, 245
v´ertice, 144
compartido, 184
extraordinarios, 226
irregular, 193
regular, 193
variaci´on decreciente
propiedad, 34
vector
binormal, 98
normal, 98
tangente, 98
vectorial
espacio, 3
notaci´on, 131
Zhou, 39

Más contenido relacionado

PDF
Boletin parlamento pnl terapeutas
PPT
Chris Munt Cherylin Fletcher State Of Play In Nhs
PDF
Acta reunión n°2 2013 sm infanto adolescente (abril)
PDF
Angel Band Project Press Release Norb
PPTX
Transposición y transposición
PDF
Dossier industria v2
PDF
Proxecto Íntegramente 2013
PDF
Abenteuer Qualität in der SW-Wartung
Boletin parlamento pnl terapeutas
Chris Munt Cherylin Fletcher State Of Play In Nhs
Acta reunión n°2 2013 sm infanto adolescente (abril)
Angel Band Project Press Release Norb
Transposición y transposición
Dossier industria v2
Proxecto Íntegramente 2013
Abenteuer Qualität in der SW-Wartung

Destacado (17)

PPT
How @CrowdifyTech will use AI to bring you better emails about technology #SW...
PDF
Citing Data in Journal Articles using JATS by Deborah A. Lapeyre
DOCX
Es pisang hijau spesial
PPT
Com es fa el vi
PPTX
PDF
Brblaa445246
PDF
ch 10; cost of capital
PPT
Flor de maria castillo gomez
PPTX
Induccion 2012 -1_
DOCX
guia master
PPTX
Time Management Workshop
PPTX
Ports in a Storm: The Library as Community Disaster Recovery Center
PPT
Display Carton 220109
PDF
2015 04 02 Press conference One TV Year in the World
PDF
Presentacion isbilya compr
PPTX
Arabic Symbol Dictionary - TechshareME presentation
PPTX
network performance measurement using Iperf
How @CrowdifyTech will use AI to bring you better emails about technology #SW...
Citing Data in Journal Articles using JATS by Deborah A. Lapeyre
Es pisang hijau spesial
Com es fa el vi
Brblaa445246
ch 10; cost of capital
Flor de maria castillo gomez
Induccion 2012 -1_
guia master
Time Management Workshop
Ports in a Storm: The Library as Community Disaster Recovery Center
Display Carton 220109
2015 04 02 Press conference One TV Year in the World
Presentacion isbilya compr
Arabic Symbol Dictionary - TechshareME presentation
network performance measurement using Iperf
Publicidad

Similar a Volltext algebra superior (10)

PDF
Dibujo de ingenieria_UTP.pdf
PDF
Dibujodeingenieria
PDF
Dibujo tecnico i bellido
PDF
Dibujo de Ingeniería
PDF
Vectores y matrices con números complejos ricardo figueroa garcía 5.a ed
PDF
Calculo en un variable dee Stewart 2.pdf
PDF
Precálculo-Matemáticas-para-el-cálculo-6ta-Edición-James-Stewart.pdf
PDF
Mb 2-vectores y matrices - r. f. g.
PDF
Thomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdf
PDF
Algoritmo Iterativo Eficiente para el Análisis de Interferogramas con Corrimi...
Dibujo de ingenieria_UTP.pdf
Dibujodeingenieria
Dibujo tecnico i bellido
Dibujo de Ingeniería
Vectores y matrices con números complejos ricardo figueroa garcía 5.a ed
Calculo en un variable dee Stewart 2.pdf
Precálculo-Matemáticas-para-el-cálculo-6ta-Edición-James-Stewart.pdf
Mb 2-vectores y matrices - r. f. g.
Thomas_Calculo_Varias_Variables_(Thomas)_-_11o_Edicion.pdf
Algoritmo Iterativo Eficiente para el Análisis de Interferogramas con Corrimi...
Publicidad

Más de Jose Adan Duarte Urbina (7)

PDF
PDF
PDF
Solucionario guia de admision 2015
PDF
Trabajo master
PPTX
PDF
Fundamentos de termodinámica van wylen - 6ed
Solucionario guia de admision 2015
Trabajo master
Fundamentos de termodinámica van wylen - 6ed

Último (20)

PPTX
Aborto exposicion.pptxdsaaaaaaaaaaaaaaaaaaaaaaaaaa
PDF
Tejido sanguíneo.pdf……………………………………………….
PDF
Audicion, sonido del viaje como los sonidos viajan
PDF
Física BIO.cepuns 2021-preuniversitario.
PDF
-3-IMPORTANCIA DE LAS PROTEINAS 02 ABRIL 2020 .pdf
PPTX
Púrpura en pediatría tema de nefrologíaa
PPTX
Cancer de ovario y su fisiopatologia completa
PPTX
Agar plates de la marca 3M portfolio de usos
PPTX
MICOSIS SUPERFICIALES Y PROFUNDAS, CONCEPTOS BASICOS
PPT
SISTEMA_TEGUMENTARIO LIC VANESSA BORJA.ppt
PPTX
HEMORRAGIA DIGESTIVA ALTA edit.pptx (1).pptx
PPTX
Caso Clinico de ANATOMÍA Y FRACTURA DE TOBILLO.pptx
PDF
Generalidades morfológicas de los Hongos
PDF
_APENDICITIS - CIRUGIA TUTO.pdf cirugía 1
PPTX
sangrado uterino anormal, urgencia ginecologica
PDF
Lili para que lo consideres.pdf 3.pdfCICLO2
PPTX
Ciencia moderna. origen y características.
PPTX
Clase de Educación sobre Salud Sexual.pptx
PPTX
EMBRIOLOGÍA, CICLO CELULAR, CONCEPTOS BASICOS
PPTX
Clase 1 Física 3 introductoria para estudiantes universitarios
Aborto exposicion.pptxdsaaaaaaaaaaaaaaaaaaaaaaaaaa
Tejido sanguíneo.pdf……………………………………………….
Audicion, sonido del viaje como los sonidos viajan
Física BIO.cepuns 2021-preuniversitario.
-3-IMPORTANCIA DE LAS PROTEINAS 02 ABRIL 2020 .pdf
Púrpura en pediatría tema de nefrologíaa
Cancer de ovario y su fisiopatologia completa
Agar plates de la marca 3M portfolio de usos
MICOSIS SUPERFICIALES Y PROFUNDAS, CONCEPTOS BASICOS
SISTEMA_TEGUMENTARIO LIC VANESSA BORJA.ppt
HEMORRAGIA DIGESTIVA ALTA edit.pptx (1).pptx
Caso Clinico de ANATOMÍA Y FRACTURA DE TOBILLO.pptx
Generalidades morfológicas de los Hongos
_APENDICITIS - CIRUGIA TUTO.pdf cirugía 1
sangrado uterino anormal, urgencia ginecologica
Lili para que lo consideres.pdf 3.pdfCICLO2
Ciencia moderna. origen y características.
Clase de Educación sobre Salud Sexual.pptx
EMBRIOLOGÍA, CICLO CELULAR, CONCEPTOS BASICOS
Clase 1 Física 3 introductoria para estudiantes universitarios

Volltext algebra superior

  • 1. ISBN 3-937300-47-3 El profesor Marco Paluszny, nació en la ciudad de Lodz, el 20 de enero de 1950, estudió en la Universidad Central de Venezuela (UCV) y la Universidad de California en San Diego (UCSD). En 1998 el Dr. Paluszny fundó el Laboratorio de Computación Gráfica y Geometría Aplicada, Escuela de Matemáticas, Facultad de Ciencias, UCV. Ha sido profesor invitado en UCSD y la Universidad de Sao Paulo. Actualmente el Dr. Paluszny es profesor de Modelación Geométrica y Computación Gráfica en la UCV. El profesor Hartmut Prautzsch, nació el 30 de octubre de 1958 en Treysa y cursó sus estudios en la Universidad Técnica de Braunschweig. Trabajó como investigador en IBM in Yorktown Heights y fue profesor visitante en las universidades RPI en Troy y la UCV en Caracas. Desde 1990 es profesor en la Universidad de Karlsruhe en el area de Modelación Geométrica. A partir de 2002 se desempeña como Editor en Jefe de la revista Computer Aided Geometric Design. El profesor Wolfgang Boehm, nació el 12 de mayo de 1928 en Danzig y estudió en la Universidad Técnica de Berlin. En 1965 fue designado catedrático de la Universidad de Braunschweig. El profesor Boehm es el fundador de la disciplina de diseño geométrico en Europa y en particular en Alemania. Fue profesor invitado en las universidades RPI en Troy, NPU en XI-an y la UCV en Caracas. El Dr. Boehm es uno de los fundadores de la revista CAGD y desde 1995 se ha retirado de la actividad académica regular, dedicándose a actividades privadas. PALUZNY-PRAUTZSCH-BOEHMMétodosdeBézieryB-Splines PALUSZNY-PRAUTZSCH-BOEHM Métodos de Bézier y B-Splines universitätsverlag karlsruhe
  • 2. Marco Paluszny, Hartmut Prautzsch, Wolfgang Boehm Métodos de Bézier y B-splines
  • 4. Métodos de Bézier y B-splines Marco Paluszny Hartmut Prautzsch Wolfgang Boehm
  • 5. La versión en inglés del libro de texto "Métodos de Bézier y B-splines" fue publicada por la editorial Springer Verlag Berlin Heidelberg 2002. Impressum Universitätsverlag Karlsruhe c/o Universitätsbibliothek Straße am Forum 2 D-76131 Karlsruhe www.uvka.de Ó Universitätsverlag Karlsruhe 2005 Print on Demand ISBN 3-937300-47-3
  • 6. M´etodos de B´ezier y B-splines Hartmut Prautzsch Wolfgang Boehm Marco Paluszny
  • 7. 2
  • 8. Dedicado a Paul de Faget de Casteljau
  • 10. Prefacio Las t´ecnicas de modelaci´on asistidas por computadoras surgen con el adve- nimiento de las m´aquinas fresadoras con control num´erico en los finales de la d´ecada de los cuarenta. A partir de los principios de los a˜nos sesenta, las t´ecnicas de B´ezier y B-splines ya se perfilan como herramientas de impor- tancia fundamental para el tratamiento de curvas y superficies polin´omicas. Su ventaja principal radica en que posibilitan la construcci´on de algoritmos eficientes num´ericamente robustos. El prop´osito de este texto es dar una base s´olida y unificada para las propieda- des mas ´utiles de las representaiones de B´ezier y B-splines. El ´enfasis del libro es sobre las nociones centrales del Dise˜no Geom´etrico Asistido por Computa- dora (CAGD por su nombre en ingl´es, Computer Aided Geometric Design) y cubre tanto las nociones b´asicas como tambi´en algunas m´as avanzadas, como por ejemplo: splines multivariados, t´ecnicas de subdivisi´on y dise˜no a mano alzada con superficies con alto grado de suavidad. Con la finalidad de no extender el libro demasiado, hemos excluido algunos temas que podr´ıan considerarse fundamentales en CAGD. En particular, no estudiamos t´ecnicas racionales de B´ezier y B-splines. El libro se fue ensamblando a trav´es del dictado de varios cursos, dicta- dos repetidamente por los autores, en el Rensselear Polytechnic Institute de Nueva York, las Universidades de Braunschweig y de Karlsruhe en Alemania y en la Universidad Central de Venezuela. Estos cursos forman parte de los curr´ıcula de pre y postgrado de las carreras de Matem´aticas e Inform´atica y tambi´en fueron atendidos por estudiantes de Ingenier´ıa, Geof´ısica y Arqui- tectura. Queremos agradecer la lectura del manuscrito a Stefan Bischoff, Bernhard Garz, Georg Umlauf, Claudia Bangert, Norbert Luscher, Marianela Lentini, Giovanni Figueroa y especialmente a Javier S´anchez-Reyes por su revisi´on exhaustiva de los primeros diez cap´ıtulos del libro. Queremos tambi´en expresar nuestro agradecimiento a Christoph Pennekamp, Natalie Spinner, Dayana Tabare, Elizabeth Miquilena, Gabriel Arcos y Mildred Graterol, por la preparaci´on de los archivos LaTex. Caracas, Marco Paluszny Karlsruhe, Hartmut Prautzsch Wolfenb¨uttel, Wolfgang Boehm
  • 12. Contenido I Curvas 1 Nociones b´asicas 1.1 Espacios afines 3 1.2 Combinaciones afines 4 1.3 Aplicaciones afines 5 1.4 Curvas y superficies param´etricas 6 1.5 Ejercicios 7 2 Representaci´on de B´ezier 2.1 Polinomios de Bernstein 9 2.2 Curvas de B´ezier 11 2.3 Algoritmo de de Casteljau 13 2.4 Derivadas 15 2.5 Parametrizaci´on singular 17 2.6 Un algoritmo tetra´edrico 18 2.7 Integraci´on 19 2.8 Conversi´on a la representaci´on de B´ezier 20 2.9 Conversi´on a la forma monomial 22 2.10 Ejercicios 22 3 T´ecnicas de B´ezier 3.1 Polinomios sim´etricos 25 3.2 El teorema fundamental 27 3.3 Subdivisi´on 27 3.4 Convergencia con la subdivisi´on 29 3.5 Generaci´on de curvas por subdivisi´on 30
  • 13. X Contenido 3.6 Generaci´on de curvas por diferencias hacia adelante 31 3.7 Intersecci´on 32 3.8 La propiedad de variaci´on decreciente 34 3.9 El polinomio sim´etrico de la derivada 35 3.10 Conexiones Cr simples 36 3.11 Elevaci´on de grado 38 3.12 Convergencia por elevaci´on de grado 39 3.13 Ejercicios 40 4 Interpolaci´on y aproximaci´on 4.1 Interpolaci´on 43 4.2 Interpolaci´on de Lagrange 44 4.3 Interpolaci´on de Newton 46 4.4 Interpolaci´on de Hermite 48 4.5 Interpolaci´on de Hermite c´ubica por trozos 50 4.6 Aproximaci´on 52 4.7 Ajustes por m´ınimos cuadrados 53 4.8 Mejoras en el par´ametro 55 4.9 Ejercicios 56 5 Representaci´on por B-splines 5.1 Splines 59 5.2 B-splines 60 5.3 Una definici´on recursiva de los B-splines 62 5.4 El algoritmo de de Boor 63 5.5 El teorema fundamental 65 5.6 Derivadas y suavidad 67 5.7 Propiedades de los B-splines 68 5.8 Conversi´on a la representaci´on B-spline 69 5.9 El algoritmo de de Boor extendido 70 5.10 Conversi´on entre las representaciones de de Boor y de B´ezier 72 5.11 B-splines como diferencias divididas 74 5.12 Ejercicios 75
  • 14. Contenido XI 6 T´ecnicas de B-splines 6.1 Inserci´on de nodos 77 6.2 El algoritmo de Oslo 79 6.3 Convergencia por inserci´on de nodos 80 6.4 Un algoritmo para la elevaci´on de grado 81 6.5 Una f´ormula de elevaci´on de grado 82 6.6 Convergencia por elevaci´on de grado 83 6.7 Interpolaci´on 84 6.8 Interpolaci´on con splines c´ubicos 86 6.9 Ejercicios 88 7 Curvas suaves 7.1 Contacto de orden r 92 7.2 Parametrizaci´on por longitud de arco 94 7.3 Gamma splines 94 7.4 B-splines gamma 96 7.5 Nu-splines 97 7.6 El marco de Frenet 98 7.7 Continuidad de Frenet 99 7.8 Osculantes y polinomios sim´etricos 101 7.9 Interpretaci´on geom´etrica del teorema fundamental 102 7.10 Splines con matrices de conexi´on arbitraria 104 7.11 Inserci´on de nodos 105 7.12 Bases de splines 106 7.13 Ejercicios 107 8 Subdivisi´on uniforme 8.1 B-splines uniformes 109 8.2 Subdivisi´on uniforme 110 8.3 Subdivisi´on iterada 112 8.4 La matriz de subdivisi´on 114 8.5 Derivadas 114 8.6 Subdivisi´on estacionaria 115 8.7 Teoremas de convergencia 116
  • 15. XII Contenido 8.8 C´alculo del esquema de diferencias 117 8.9 El esquema de los cuatro puntos 118 8.10 An´alisis del esquema de los cuatro puntos 119 8.11 Ejercicios 120 II Superficies 9 Superficies producto tensorial 9.1 Productos tensoriales 125 9.2 Superficies producto tensorial de B´ezier 127 9.3 Formas polares del producto tensorial 130 9.4 Conversi´on entre las formas monomial y de B´ezier 131 9.5 Algoritmo de de Casteljau 132 9.6 Derivadas 133 9.7 Conexiones simples Cr 135 9.8 Interpolaci´on C1 bic´ubica por trozos 136 9.9 Superficies de topolog´ıa arbitraria 136 9.10 Parametrizaci´on singular 137 9.11 Splines bic´ubicos C1 de topolog´ıa arbitraria 138 9.12 Ejercicios 140 10 Representaciones de B´ezier de parches triangulares 10.1 Polinomios de Bernstein multivariados 141 10.2 Simples de B´ezier 143 10.3 Precisi´on lineal 145 10.4 El algoritmo de de Casteljau 146 10.5 Derivadas 147 10.6 Convexidad de superficies funcionales 148 10.7 Limitaciones de la convexidad 150 10.8 Ejercicios 152 11 T´ecnicas de B´ezier para parches triangulares 11.1 Polinomios sim´etricos 155 11.2 El teorema fundamental 157
  • 16. Contenido XIII 11.3 Subdivisi´on y reparametrizaci´on 157 11.4 Convergencia bajo subdivisi´on 159 11.5 Generaci´on de superficies 160 11.6 El polinomio sim´etrico de la derivada 161 11.7 Conexiones Cr simples 162 11.8 Elevaci´on de grado 163 11.9 Convergencia por elevaci´on de grado 164 11.10 Conversi´on a la representaci´on tensorial de B´ezier 166 11.11 Conversi´on a la representaci´on triangular de B´ezier 167 11.12 Ejercicios 168 12 Interpolaci´on 12.1 Interpolaci´on de Hermite 169 12.2 El interpolador de Clough-Tocher 170 12.3 El interpolador de Powell-Sabin 171 12.4 Superficies de topolog´ıa arbitraria 172 12.5 Parametrizaci´on singular 173 12.6 Splines C1 de grado cinco de topolog´ıa arbitraria 175 12.7 Ejercicios 175 13 Construcci´on de superficies suaves 13.1 La conexi´on general C1 179 13.2 Conexi´on de dos parches triangulares c´ubicos 181 13.3 Un interpolador triangular G1 183 13.4 El problema del v´ertice compartido 184 13.5 El problema de la paridad 185 13.6 Ejercicios 187 14 Construcciones - Gk 14.1 La conexi´on general Ck 189 14.2 Conexiones Gk usando curvas transversales 191 14.3 Conexiones Gk usando la regla de la cadena 192 14.4 Superficies Gk de topolog´ıa arbitraria 193 14.5 Parches suaves de n lados 197
  • 17. XIV Contenido 14.6 Parches multilaterales en el plano 200 14.7 Ejercicios 202 15 Subdivisi´on estacionaria para mallas regulares 15.1 Esquemas de producto tensorial 205 15.2 Subdivisi´on estacionaria en general y m´ascaras 207 15.3 Teoremas de convergencia 209 15.4 Promedios crecientes 211 15.5 C´alculos con esquemas de diferencias 212 15.6 C´alculos con esquemas de promedios 214 15.7 Subdivisi´on de mallas triangulares 215 15.8 Box splines sobre mallas triangulares 217 15.9 Subdivisi´on de mallas hexagonales 219 15.10 Half-box splines sobre mallas triangulares 221 15.11 Ejercicios 222 16 Subdivisi´on estacionaria para mallas arbitrarias 16.1 El esquema del punto medio 225 16.2 La superficie l´ımite 227 16.3 La parametrizaci´on standard 229 16.4 La matriz de subdivisi´on 230 16.5 Continuidad de superficies obtenidas por subdivisi´on 231 16.6 La aplicaci´on caracter´ıstica 232 16.7 Suavidad de orden superior 232 16.8 Mallas triangulares y hexagonales 234 16.9 Ejercicios 235 III Splines Multivariados 17 Box splines 17.1 Definici´on de box splines 239 17.2 Box splines como sombras 240 17.3 Propiedades de los box splines 242 17.4 Derivadas de un box spline 243
  • 18. Contenido XV 17.5 Propiedades de las superficies box spline 244 17.6 Subdivisi´on de superficies box spline 246 17.7 Convergencia bajo subdivisi´on 249 17.8 Half-box splines 251 17.9 Superficies half-box 253 17.10 Ejercicios 255 18 Simplex splines 18.1 Sombras de simples 259 18.2 Propiedades de los simplex splines 260 18.3 Simplex splines normalizados 262 18.4 Inserci´on de nodos 263 18.5 Una relaci´on de recurrencia 265 18.6 Derivadas 266 18.7 Ejercicios 268 19 Splines multivariados 19.1 Generalizaci´on del algoritmo de de Casteljau 269 19.2 B-polinomios y B-parches 271 19.3 Precisi´on lineal 272 19.4 Derivadas de un B-parche 273 19.5 B-splines multivariados 275 19.6 Combinaciones lineales de B-splines 277 19.7 Una relaci´on de recurrencia 279 19.8 Derivadas de un spline 280 19.9 El teorema fundamental 281 19.10 Ejercicios 282 Bibliograf´ıa 285 Indice 295
  • 22. 1 Nociones b´asicas 1.1 Espacios afines — 1.2 Combinaciones afines — 1.3 Aplicaciones afines — 1.4 Curvas y superficies param´etricas — 1.5 Ejercicios El espacio tridimensional se puede ver como un conjunto de puntos; un vector describe la direcci´on y la longitud del segmento entre dos puntos. La inter- pretaci´on del espacio tridimensional como un espacio de puntos y no como un espacio vectorial tiene la ventaja de que no es necesario designar un punto especial como origen. Este hecho se refleja en la simetr´ıa de las coordenadas baric´entricas. Como este libro presenta conceptos que ocurren en el espacio tridimensional de puntos, en este primer cap´ıtulo presentamos una breve introducci´on a las propiedades del espacio de puntos, denominado espacio af´ın. 1.1 Espacios afines Denotamos con A al espacio af´ın sobre un espacio vectorial V. En este texto consideramos solamente espacios vectoriales de dimensi´on finita sobre IR , lo cual significa que tanto los puntos de A, como tambi´en los vectores de V, pueden representarse por elementos de IRn . Por lo tanto x ∈ IRn representa un punto o un vector dependiendo del contexto. Dados dos puntos p y q, el vector de p a q se obtiene como la diferencia de sus coordenadas v = q − p como se ilustra en la Figura 1.1. N´otese que podemos sumar un vector y un punto, pero la suma de dos puntos no est´a definida. Podemos distinguir entre puntos y vectores utilizando coordenadas exten- didas: Ü = x e representa un punto si e = 1 vector si e = 0
  • 23. 4 1. Nociones b´asicas La representaci´on anterior de puntos y vectores depende de un sistema de coordenadas: dado un punto p de A y n vectores v1, v2, . . . vn que forman una base V; entonces cada punto q de A tiene una ´unica representaci´on q = p + v1x1 + · · · + vnxn. Esto es, la columna x = [x1 . . . xn]t ∈ IRn representa al punto q con respecto al sistema de coordenadas afines p; v1, . . . , vn. El punto p se denomina origen, del sistema de coordenadas. La columna coordenada del origen es [0 . . . 0]t y se denota por o. La dimensi´on de A se define como la dimensi´on n del espacio vectorial subyacente V. Figura 1.1: Vector entre dos puntos 1.2 Combinaciones afines Los m + 1 puntos p0, . . . , pm de un espacio af´ın A se llaman afinmente independientes si los m vectores p1 − p0, . . . , pm − p0 son linealmente independientes. N´otese que esta definici´on no depende de la ordenaci´on de los puntos pi. V´ease el Ejercicio 1. Sea n la dimensi´on de A, si p0, , . . . , , pn son n + 1 puntos afinmente inde- pendientes entonces cada q en A se puede expresar como q = p0 + (p1 − p0)x1 + · · · + (pn − p0)xn = p0x0 + · · · + pnxn , donde 1 = x0+ · · · +xn. Los coeficientes xi son las coordenadas baric´entricas de q con respecto al marco p0 . . . pn. La secuencia ordenada p0, . . . , pn se denomina marco. N´otese que x0, . . . , xj−1, xj+1, . . . , xn son las coordenadas afines de q con respecto al origen pj y los n vectores pi − pj, i = j. En particular, si n = 1 el punto q = p0(1 − x) + p1x traza la interpolaci´on lineal de p0 y p1. La raz´on x : 1−x se denomina la raz´on simple de q con respecto a p0 y p1, ver Figura 1.2. N´otese que en nuestra notaci´on 1−x = x0 y x = x1. Es m´as, sean a1, . . . , am las columnas de coordenadas afines, extendidas o
  • 24. 1.3. Aplicaciones afines 5 Figura 1.2: Interpolaci´on lineal y raz´on. baric´entricas de cualesquiera m puntos de A. Entonces la suma ponderada a = aiαi representa un punto si αi = 1 vector si αi = 0 Si los pesos αi suman 1, entonces a = aiαi se denomina una combinaci´on af´ın . Si adem´as, los pesos son no negativos, entonces a es una combinaci´on convexa. En este caso se tiene que a yace en la c´apsula convexa de los puntos ai, vea el Ejercicio 4. 1.3 Aplicaciones afines Sean A y B espacios afines, U y V sus espacios vectoriales subyacentes, de dimensi´on m y n, respectivamente. Una funci´on Φ : A → B se denomina aplicaci´on af´ın si se puede representar, con respecto a alguno de nuestros sistemas de coordenadas, a trav´es de una matriz A, de dimensi´on n × m tal que y = Φ(x) = a + Ax, donde a es la imagen del origen. La aplicaci´on lineal ϕ : U → V dada por v = ϕ(u) = Au se denomina la aplicaci´on lineal subyacente de Φ. Usando coordenadas extendidas, ambas aplicaciones tienen la misma representaci´on matricial y 1 = A a ot 1 x 1 , v 0 = A a ot 1 u 0 , lo cual se puede rescribir de manera m´as compacta como: Ý = AÜ , Ú = AÙ . Las siguientes dos propiedades son consecuencia de la representaci´on matricial:
  • 25. 6 1. Nociones b´asicas Una aplicaci´on af´ın Φ conmuta con las combinaciones afines, es decir Φ( aiαi) = Φ(ai)αi. Adem´as, Una aplicaci´on af´ın est´a completamente determinada por un marco de dimensi´on dimA + 1 p0 . . . pm y su marco imagen q0 . . . qm. La primera propiedad tambi´en caracteriza las aplicaciones afines, ver el Ejercicio 5. La segunda propiedad se puede expresar esquem´aticamente A q0 . . . qm p0 . . . pm= m + 1 n + 1 -1 . 1.4 Curvas y superficies param´etricas Una columna x de IRd cuyas coordenadas dependen de un par´ametro t recorre una curva param´etrica x(t) =    x1(t) ... xd(t)    . Usualmente pensamos en x(t) como una curva de puntos. En particular si las funciones coordenadas xi(t) son polinomios de grado menor o igual que n entonces x(t) es una curva polin´omica de grado n en t. El gr´afico de una funci´on x(t) es una curva que tiene una forma especial. x(t) = t x(t) .
  • 26. 1.5. Ejercicios 7 Las curvas descritas por gr´aficos de funciones se denominan curvas fun- cionales. La Figura 1.3 presenta dos ejemplos de curvas param´etricas que no son funcionales. En la izquierda est´a la parabola de Neil x = [t2 t3 ]t y, a la derecha, la curva x = [t2 t3 −t]t . Figura 1.3: Curvas param´etricas con c´uspide y lazo. An´alogamente, una columna x que depende de dos par´ametros, s y t, describe una superficie param´etrica (note que la superficie podr´ıa degenerar a un punto o a una curva). x(s, t) =    x1(s, t) ... xd(s, t)    . La superficie se denomina polin´omica de grado total n si los xi son poli- nomios de grado total menor o igual que n en s y t, y por lo menos uno de los xi tiene grado total n. El gr´afico de una funci´on x(s, t) de dos variables determina una superficie polin´omica que tiene una forma especial: x(s, t) =   s t x(s, t)   . Estas superficies se denominan superficies funcionales. 1.5 Ejercicios 1 Demostrar que m + 1 puntos p0, . . . , pm son independientes si y s´olo si sus coordenadas extendidas Ô0, . . . , Ôm son linealmente independientes. 2 Las soluciones de un sistema lineal hom´ogeneo forman un espacio vec- torial. Verifique que el conjunto de soluciones de un sistema lineal no hom´ogeneo forma un espacio af´ın.
  • 27. 8 1. Nociones b´asicas 3 Considere la combinaci´on af´ın p = aα + bβ + cγ 1 = α + β + γ de tres puntos independientes. Muestre que las coordenadas baric´entricas α, β, γ determinan las razones ilustradas en la Figura 1.4. Figura 1.4: Razones en un tri´angulo. 4 La c´apsula convexa de r puntos a1, . . . , ar de un espacio af´ın A es el subconjunto minimal que contiene los puntos a1, . . . , ar, y satisface que para cualesquiera dos puntos contenidos en este subconjunto, el segmento que los une tambi´en pertenece al subconjunto. Pruebe que la c´apsula convexa consiste en todas las combinaciones convexas de los ai. 5 Demuestre que una aplicaci´on entre dos espacios afines que preserva com- binaciones afines es una aplicaci´on af´ın. 6 Demuestre que una aplicaci´on entre dos espacios afines que preserva com- binaciones afines de dos puntos preserva tambi´en combinaciones afines de cualquier n´umero finito de puntos. 7 Demuestre que el conjunto de combinaciones afines de r + 1 puntos in- dependientes de un espacio A forma un subespacio af´ın r-dimensional de A.
  • 28. 2 Representaci´on de B´ezier 2.1 Polinomios de Bernstein — 2.2 Curvas de B´ezier — 2.3 El algoritmo de de Casteljau — 2.4 Derivadas — 2.5 Parametrizaci´on singular — 2.6 Un algoritmo tetra´edrico — 2.7 Integraci´on — 2.8 Conversi´on a la representaci´on de B´ezier — 2.9 Conversi´on a la forma monomial — 2.10 Ejercicios Toda curva polin´omica admite una representaci´on mediante su pol´ıgono de B´ezier. Existe una estrecha relaci´on geom´etrica cercana entre una curva polin´omica y su pol´ıgono de B´ezier. Ambos tienen los mismos puntos ex- tremos y las tangentes en estos puntos coinciden; la curva yace en la c´apsula convexa del pol´ıgono. Es m´as, los algoritmos m´as r´apidos y num´ericamente m´as estables para desplegar gr´aficamente una curva polin´omica se basan en su representaci´on de B´ezier. 2.1 Polinomios de Bernstein El c´alculo de la expansi´on binomial 1 = (u + (1 − u))n = n i=0 n i ui (1 − u)n−i nos permite introducir los polinomios de Bernstein de grado n, Bn i (u) := n i ui (1 − u)n−i , i = 0, . . . , n , representadas en la Figura 2.1 para n = 4. Las siguientes propiedades de los polinomios de Bernstein de grado n son importantes para nuestros prop´ositos: • Son linealmente independientes. De hecho, dividiendo
  • 29. 10 2. Representaci´on de B´ezier Figura 2.1: Los polinomios de Bernstein para n = 4 sobre [0, 1]. n i=0 biui (1 − u)n−i = 0 por (1 − u)n y usando s = u/(1 − u) obtenemos n i=0 bisi = 0, lo cual implica que b0 = b1 = . . . = bn = 0. • Son sim´etricos, Bn i (u) = Bn n−i(1 − u). • Las ´unicas ra´ıces son 0 y 1, Bn i (0) = Bn n−i(1) = 1 0 para i = 0 i > 0 . • Forman una partici´on de la unidad, n i=0 Bn i (u) = 1 , para todo u ∈ IR . • Son positivos en (0, 1): Bn i (u) > 0 , para u ∈ (0, 1) . • Satisfacen la relaci´on de recurrencia Bn+1 i (u) = uBn i−1(u) + (1 − u)Bn i (u) , donde Bn −1 ≡ Bn n+1 ≡ 0 y B0 0 ≡ 1.
  • 30. 2.2. Curvas de B´ezier 11 Esta relaci´on de recurrencia se desprende de la identidad n + 1 i = n i − 1 + n i . Observaci´on 1: El c´alculo de los polinomios de Bernstein de grado n se puede organizar en un esquema triangular tal como se muestra en la recursi´on dada por la regla de la derecha: 1 = B0 0 B1 0 B2 0 · · · Bn 0 B1 1 B2 1 · · · Bn 1 B2 2 · · · Bn 2 ... ... Bn n regla * * - PPPq u 1 − u ∗ 2.2 Curvas de B´ezier Los polinomios de Bernstein Bn i de grado n forman una base para el espacio vectorial de polinomios de grado menor o igual que n. Por lo tanto toda curva polin´omica b(u) de grado ≤ n tiene una ´unica representaci´on de B´ezier b(u) = n i=0 ciBn i (u). La transformaci´on af´ın u = a(1 − t) + bt, a = b, deja invariante el grado de b, por lo tanto b(u(t)) tambi´en tiene una ´unica representaci´on de grado n, en t´erminos de los Bn i (t) b(u(t)) = n i=0 biBn i (t). Los coeficientes bi en IRd se denominan puntos de B´ezier y son los v´ertices del pol´ıgono de B´ezier de b(u) sobre el intervalo [a, b]. Nos referimos a t como el par´ametro local y a u como el par´ametro global de b, ver la Figura 2.2. La representaci´on de B´ezier de la curva polin´omica hereda las propiedades de los polinomios de Bernstein listadas en 2.1
  • 31. 12 2. Representaci´on de B´ezier Figura 2.2: Una curva c´ubica con su pol´ıgono de B´ezier sobre [a, b]. • La simetr´ıa de los polinomios de Bernstein implica b(u) = n i=0 biBn i (t) = n i=0 bn−iBn i (s), donde u = a(1 − t) + bt = b(1 − s) + as Nos referimos a la primera y segunda suma como las representaciones de B´ezier de b sobre [a, b] y [b, a], respectivamente; o sea que usamos intervalos orientados para distinguir las dos curvas polin´omicas. • Los extremos del segmento de curva b[a, b] son b(a) = b0 y b(b) = bn . Como los polinomios de Bernstein suman uno, • b(u) es una combinaci´on af´ın de sus puntos de B´ezier. En consecuencia, • la representaci´on de B´ezier es afinmente invariante, es decir, dada una aplicaci´on af´ın Φ, la curva imagen Φ(b) tiene a los Φ(bi) como puntos de control, sobre [a, b]. Como los polinomios de Bernstein son no negativos en [0, 1], • se tiene que para todo u ∈ [a, b], b(u) es una combinaci´on convexa de los bi. Por lo tanto el segmento de curva b[a, b] yace en la c´apsula convexa de los bi, tal como se ilustra en la Figura 2.3.
  • 32. 2.3. Algoritmo de de Casteljau 13 Figura 2.3: La c´apsula convexa de un pol´ıgono de B´ezier. Observaci´on 2: Usando la propiedad de la c´apsula convexa, para cada coordenada b(u) se obtiene una caja de acotaci´on para el segmento de curva b[a, b]. Esto es b[a, b] ⊂ [ n min i=0 bi, n max i=0 bi] , u ∈ [a, b] , como se ilustra en la Figura 2.4 para una curva plana. Figura 2.4: Caja de acotaci´on. 2.3 Algoritmo de de Casteljau Una curva b(u) = n i=0 biBn i (t) se puede evaluar usando el algoritmo de de Casteljau [Casteljau ’59]. Esto usualmente se hace para t ∈ [0, 1]. El proceso es como sigue: usando las relaciones de recurrencia para los polinomios de Bernstein y agrupando t´erminos repetidamente se obtiene b(u) = n i=0 b0 i Bn i (t) = n−1 i=0 b1 i Bn−1 i (t) = · · · = 0 i=0 bn i B0 i (t) = bn 0 , donde bk+1 i = (1 − t)bk i + t bk i+1 .
  • 33. 14 2. Representaci´on de B´ezier La Figura 2.5 ilustra dos ejemplos de evaluaci´on de la curva b(u), en los puntos t = 0.4 (izquierda) y t = 1.4 (derecha). Los puntos intermedios bk i del algoritmo de de Casteljau pueden organizarse en un esquema triangular, el cual sugiere su generaci´on recursiva: Figura 2.5: La construcci´on de de Casteljau para puntos dentro y fuera de [0, 1]. b0 b1 b1 0 b2 b1 1 b2 0 ... ... bn b1 n−1 b2 n−2 · · · bn 0 regla b a - PPPq 1-t t c = a(1 − t) + bt Observaci´on 3: Si t yace en [0, 1], entonces la construcci´on de de Casteljau involucra solamente combinaciones convexas, lo que garantiza la estabilidad num´erica del algoritmo. Observaci´on 4: El m´etodo de Horner es un algoritmo ´optimo, desde el punto de vista del n´umero de operaciones, para evaluar polinomios en forma monomial. Este m´etodo tambi´en se puede usar para evaluar una curva b(t) = biBn i (t), en su representaci´on de B´ezier. Despu´es de expresar b(t) como: b(t) = (1 − t)n n i=0 bi n i t 1 − t i , primero se eval´ua la expresi´on en par´entesis usando el m´etodo de Horner para el valor t/(1 − t) y posteriormente se multiplica el resultado por (1 − t)n . Sin embargo esta t´ecnica falla cuando t est´a cerca de 1. En este caso se usa la expresi´on:
  • 34. 2.4. Derivadas 15 b(t) = tn n i=0 bn−i n i 1 − t t i . 2.4 Derivadas La derivada de un polinomio de Bernstein de grado n es f´acil de calcular. De la definici´on de los polinomios de Bernstein se obtiene: d dt Bn i (t) = n(Bn−1 i−1 (t) − Bn−1 i (t)) para i = 0, . . . , n. Para unificar la notaci´on hemos supuesto, como antes, que Bn−1 −1 ≡ Bn−1 n ≡ 0. Luego dada una curva b(u) = n i=0 biBn i (t) , t = u − a b − a , obtenemos d du b(u) = n b − a n−1 i=0 ∆biBn−1 i (t) , donde ∆bi = bi+1 − bi denota la primera diferencia hacia adelante, ver la Figura 2.6. Figura 2.6: Curva de B´ezier y su hod´ografo. Si b(u) se considera un punto, entonces b′ (u) es un vector. Al sumarle un punto a b′ (u) se obtendr´a un punto. En particular o + b′ (u) se denomina el primer hod´ografo de b.
  • 35. 16 2. Representaci´on de B´ezier Aplicando repetidamente la f´ormula para la derivada, obtenemos la r−´esima derivada de b, b(r) (u) = n! (n − r)!(b − a)r n−r i=0 ∆r biBn−r i (t) , donde ∆r bi = ∆r−1 bi+1−∆r−1 bi es la r−´esima diferencia hacia adelante de bi. De modo an´alogo se obtiene el segundo hod´ografo y otros de orden superior. A partir de las f´ormulas de las derivadas y de la propiedad de interpolaci´on de los puntos de control en los extremos obtenemos el siguiente resultado observado por Pierre B´ezier: Las derivadas r−´esimas hasta orden n, de b(u) en t = 0(t = 1) dependen de los primeros (´ultimos) r + 1 puntos de B´ezier. El rec´ıproco de esta observaci´on tambi´en es cierto. Geom´etricamente, ´esto significa que las rectas tangentes de b en t = 0 y en t = 1 pasan por b0, b1 y bn−1, bn, respectivamente. Los planos oscu- ladores de b en t = 0 y t = 1 son generados por b0, b1, b2 y bn−2, bn−1, bn, respectivamente. La Figura 2.7 ilustra esta propiedad. Figura 2.7: Tangentes y planos osculadores en los extremos. Observaci´on 5: Si consideramos el pol´ıgono de control de una curva de B´ezier b(u) = biBn i (t), donde u = (1 − t)a + t b, como una funci´on lineal por trozos p(u) definida sobre [a, b], entonces la derivada p′ (u) del pol´ıgono de B´ezier son los puntos de B´ezier de b′ (u). Esto se ilustra en la Figura 2.8 para una curva funcional.
  • 36. 2.5. Parametrizaci´on singular 17 Figura 2.8: Derivadas de un pol´ıgono de B´ezier. 2.5 Parametrizaci´on singular Consideramos la curva polin´omica b(t) = n i=0 biBn i (t) , y su derivada ˙b(t) = n n−1 i=0 ∆biBn−1 i (t) , donde el punto indica derivaci´on con respecto al par´ametro t. Si ∆b0 = o, entonces ˙b(t) es cero en t = 0. Sin embargo, en t´erminos de la reparametrizaci´on singular t = √ s se obtiene d ds b(t(0)) = n.∆b1 Entonces, si ∆b0 = o y ∆b1 = o, la recta tangente de b(t) en t = 0 pasa por b0 y b2, como se ilustra en la Figura 2.9. Figura 2.9: Parametrizaci´on singular. Observaci´on 6: Si ∆b0 = ∆b1 = 0 y ∆b2 = 0 la tangente a b(t) en t = 0 pasa por b3
  • 37. 18 2. Representaci´on de B´ezier 2.6 Un algoritmo tetra´edrico El c´alculo de las diferencias y las combinaciones afines del algoritmo de de Casteljau se pueden combinar. Concretamente, la r-´esima derivada de una curva b(u) = b0 i Bn i (t), t = u − a b − a , en un punto u puede ser calculada aplicando el algoritmo de de Casteljau a m´ultiplos de las diferencias ∆k bi. Como el c´alculo de combinaciones afines es conmutativo, ∝i βj Pij = βj ∝i Pij, se tiene que el operador ∆ de diferencias hacia adelante conmuta con los pasos del algoritmo de de Casteljau. Por lo tanto, se puede calcular la derivada r−´esima en u calculando primero n − r pasos del algoritmo de de Casteljau, seguido por r diferencias y pos- teriormente multiplicando por el factor n · · · (n − r + 1)/(b − a)r . Entonces resulta: b(r) (u) = n · · · (n − r + 1) (b − a)r ∆r bn−r 0 . En particular esta f´ormula nos dice que la tangente y el plano osculador de b en u est´an generados por bn−1 0 , bn−1 1 y bn−2 0 , bn−2 1 , bn−2 2 , respectivamente, tal como se ilustra en la Figura 2.10 para una c´ubica. Figura 2.10: Los planos tangente y osculador en el esquema de de Casteljau. A lo largo del c´alculo de los puntos ∆r bn−k 0 para todo k, a trav´es de los pasos del algoritmo de de Casteljau y de las diferencias hacia adelante se generan los puntos intermedios ∆k bi j, i + j + k ≤ n. Todos estos puntos se pueden
  • 38. 2.7. Integraci´on 19 ubicar espacialmente en un esquema tetra´edrico, tal como se ilustra en la Figura 2.11 para n = 2, en la cual la regla recursiva est´a dada por: c = a(1 − t) + bt y d = b − a . Figura 2.11: El algoritmo tetra´edrico. La recursi´on anterior no es la ´unica forma para calcular los ∆k bj i . Otras posiblidades se obtienen eliminando a o b. Esto es: c = b + d(t − 1) y c = a + dt. respectivamente. Cuando usamos una de estas reglas, en vez del paso correspondiente a la diferencia, entonces es suficiente calcular solamente los puntos de los dos esquemas triangulares dados por los puntos del lado inferior izquierdo (o derecho) del tetraedro. Observaci´on 7: N´otese que tomar diferencias en general no es un proceso num´ericamente estable. En consecuencia el c´alculo de derivadas tampoco es estable. 2.7 Integraci´on La integral de una curva polin´omica en representaci´on de B´ezier b(u) = n i=0 biBn i (t), t = u − a b − a ,
  • 39. 20 2. Representaci´on de B´ezier tiene la representaci´on de B´ezier c(u) = b(u)du = n+1 i=0 ciBn+1 i (t) , donde ci = ci−1 + b − a n + 1 bi−1 = c0 + b − a n + 1 (b0 + · · · + bi−1) , i = n + 1, . . . , 1 , y c0 es una constante de integraci´on. Esto puede verificarse f´acilmente derivando c(u). A partir de la f´ormula anterior y de que b(u) interpola los extremos b0 y bn se deduce la siguiente igualdad b a b(u)du = b − a n + 1 (b0 + · · · + bn) y en particular, 1 0 Bn i (t)dt = 1 n + 1 i = 0,...,n . 2.8 Conversi´on a la representaci´on de B´ezier Algunos sistemas antiguos de dise˜no asisitido por computadora (computer aided design - CAD) utilizan la base monomial para representar curvas. Por lo tanto es importante disponer de formas eficientes para transformar la pre- sentaci´on monomial de una curva a su representaci´on de B´ezier. Sea b(t) = n i=0 ai n i ti una curva en representaci´on monomial. Como n i ti (1 − t + t)n−i = n−i k=0 n i n − i n−i−k ti+k (1 − t)n−i−k = n−i k=0 i + k i Bn i+k = n j=0 j i Bn j ,
  • 40. 2.8. Conversi´on a la representaci´on de B´ezier 21 se obtiene b(t) = n j=0 bjBn j (t) , donde bj = n i=0 j i ai y j i = 0 para j < i. La f´ormula para convertir de la representaci´on de B´ezier a la monomial se obtiene de manera similar, expandiendo los polinomios de Bernstein, ver Ejercicio 4. En 2.9 presentaremos una deducci´on diferente de esta f´ormula de conversi´on. Observaci´on 8: Si a2 = · · · = an = o, pero a1 = o, b(t) es un polinomio lineal y sus puntos de B´ezier sobre [0, 1] son bj = a0 + ja1 . Tal como se ilustra en la Figura 2.12. Figura 2.12: Distribuci´on uniforme de puntos de B´ezier sobre una recta. Observaci´on 9: Rec´ıprocamente, si los n + 1 puntos de B´ezier bi est´an uniformemente distribuidos sobre una recta, entonces b(t) es un polinomio lineal y se puede escribir, b(t) = (1 − t)b0 + tbn . Esta propiedad se denomina precisi´on lineal de la representaci´on de B´ezier. Observaci´on 10: Se desprende de la Observaci´on 8 que la curva de B´ezier funcional b(t) = t b(t) , b(t) = biBn i (t) , tiene puntos de B´ezier [i/n bi]t como se ilustra en la Figura 2.13. Los coeficientes bi se denominan las ordenadas de B´ezier de b(t) mientras que los puntos i/n, las abscisas de B´ezier.
  • 41. 22 2. Representaci´on de B´ezier Figura 2.13: Representaci´on de B´ezier de una curva funcional. 2.9 Conversi´on a la forma monomial Dada una curva polin´omica en su representaci´on de B´ezier se obtiene su forma monomial utilizando la expansi´on de Taylor, b(u) = n i=0 biBn i u − a b − a = n i=0 b(i) (a) (u − a)i i! = n i=0 n i ∆i b0 (u − a)i (b − a)i . Como ∆i b0 = i k=0 i k (−1)i−k bk, ver Ejercicio 3, b(a) se puede rescribir como b(u) = n i=0 i k=0 (−1)i−k n i i k Úbk ti . Observaci´on 11: Usando el algoritmo tetra´edrico de 2.6 se puede calcular la expansi´on de Taylor en u: b(u + h) = n i=0 1 (b − a)i ∆i bn−i 0 n i hi . 2.10 Ejercicios 1 Muestre que el polinomio de Bernstein Bn i (t) tiene un s´olo m´aximo en [0, 1], en concreto en t = i/n.
  • 42. 2.10. Ejercicios 23 2 El operador de Bernstein B asocia a una funci´on f en [0, 1] el poli- nomio. B[f] = n i=0 f(i/n)Bn i (t). Si f es un polinomio de grado m ≤ n, muestre que B[f] tambi´en lo es. Vea el Ejercicio 2 de 3.13 3 Demuestre que ∆i b0 = i k=0 i k (−1)i−k bk . 4 Encuentre la f´ormula de conversi´on de la presentaci´on de B´ezier a la monomial por medios algebraicos elementales como en 2.8. 5 Verifique la identidad n . . . (n − k) tk+1 = n i=0 i . . . (i − k) Bn i (t). 6 Verifique que una c´ubica plana b(t) tiene una c´uspide en t = 0, esto es: t = 0 es un punto donde b(t) invierte su direcci´on si ˙b(0) = o y ambas coordenadas de ¨b(0) son diferentes de cero (los puntos indican derivaci´on respecto a t). 7 Demuestre que una c´ubica plana b(t) = 3 i=0 biB3 i (t) tiene una c´uspide si b3 yace en la par´abola p(t) = (b0 + b1 − b2)B2 0(t) + b1B2 1(t) + b2B2 2(t) [Pottmann & DeRose ’91]. 8 ¿Para qu´e escogencia de b3, tiene b(t) un lazo? 9 Sea n i=0 ai n i ti = n i=0 biBn i (t). Entonces en notaci´on matricial se tiene [a0 . . . an] = [b0 . . . bn] ∆ , donde ∆ = (−1)j−i j i y ∆−1 = i j . N´otese que las matrices ∆ y ∆−1 son triangulares superiores.
  • 44. 3 T´ecnicas de B´ezier 3.1 Polinomios sim´etricos — 3.2 El teorema fundamental — 3.3 Subdivisi´on — 3.4 Convergencia con la subdivisi´on — 3.5 Generaci´on de curvas por subdivisi´on — 3.6 Generaci´on de curvas por diferencias hacia adelante — 3.7 Intersecci´on — 3.8 La propiedad de variaci´on decreciente — 3.9 El polinomio sim´etrico asociado a la derivada — 3.10 Conexiones Cr simples — 3.11 Elevaci´on de grado — 3.12 Convergencia por elevaci´on de grado — 3.13 Ejercicios Muchos algoritmos para curvas de B´ezier pueden ser considerados en el con- texto de los polinomios sim´etricos. En el presente cap´ıtulo estudiamos la relaci´on entre un polinomio de una variable y el polinomio sim´etrico, de varias variables, que se le asocia. Presentamos tambi´en los algoritmos b´asicos del dise˜no geom´etrico asistido por computadora (Computer Aided Geometric Design-CAGD) en t´erminos de esta relaci´on. El m´as importante de estos al- goritmos es el de de Casteljau, el cual es muy ´util tanto en implementaciones pr´acticas como en el contexto te´orico. 3.1 Polinomios sim´etricos A cada curva polin´omica b(u) de grado ≤ n se le puede asociar un ´unico polinomio sim´etrico b[u1 . . . un] con las siguientes tres propiedades: • b[u1 . . . un] coincide con b(u) sobre la diagonal, esto es b[u . . . u] = b(u) . • b[u1 . . . un] es sim´etrico lo cual significa que, para cualquier per- mutaci´on (v1, . . . , vn) de (u1, . . . , un) b[v1 . . . vn] = b[u1 . . . un], . • b[u1 . . . un] es af´ın en cada variable, esto es: b[(αu + (1 − α)v) u2 . . . un] = αb[u u2 . . . un] + (1 − α)b[v u2 . . . un] .
  • 45. 26 3. T´ecnicas de B´ezier Cl´asicamente, el polinomio sim´etrico b[u1 . . . un] se denomina forma polar asociada a b(u). M´as recientemente se ha venido denominando blossom de b(u) [Ramshaw ’87]. Para demostrar que cualquier polinomio de una variable tiene una forma polar es suficiente encontrar las formas polares de los elementos de una base del espacio vectorial de polinomios. De hecho, dada cualquier combinaci´on lineal b(u) = n i=0 ci Ci(u) donde cada Ci(u) tiene grado n y denotando sus formas polares por Ci[u1 . . . un] se tiene que su forma polar est´a dada por b[u1 . . . un] = n i=0 ciCi[u1 . . . un] . N´otese que la diagonal b[u . . . u] puede tener grado menor que n a pesar de que b[u1 . . . un] depende de n variables. En el caso de que los Ci son los monomios An i = n i ui , i = 0, . . . , n, se obtienen los polinomios sim´etricos elementales An i [u1 . . . un] = 1≤j1 < ···< ji ≤n uj1 . . . uji los cuales satisfacen las tres propiedades de arriba. N´otese que la suma en la f´ormula anterior se extiende sobre n i productos de i variables. En el caso de que los Ci sean los polinomios de Bernstein Bn i (u) = n i ui (1 − u)n−i se obtiene: Bn i [u1 . . . un] = j1<···<ji k1<···<kn−i uj1 . . . uji · (1 − uk1 ) . . . (1 − ukn−i ) , donde (j1, . . . , ji, k1, . . . , kn−i) es una permutaci´on de (1, . . . , n). Como antes, las propiedades anteriores son f´aciles de verificar. Observaci´on 1: Los polinomios sim´etricos Bn i [u1 . . . un] satisfacen la relaci´on de recurrecia Bn+1 i [u0 . . . un] = u0Bn i−1[u1 . . . un] + (1 − u0)Bn i [u1 . . . un] .
  • 46. 3.2. El teorema fundamental 27 3.2 El teorema fundamental La unicidad del polinomio sim´etrico y su relaci´on con la representaci´on de B´ezier est´a dada por el siguiente teorema, el cual se generaliza en varias direcciones en este texto: Para cada curva polin´omica b(u) de grado ≤ n existe un ´unico polinomio sim´etrico de n variables b[u1 . . . un], el cual es mul- tiaf´ın y su diagonal satisface b[u . . . u] = b(u). Es m´as, los pun- tos bi = b[a n−i. . . a b i. . . b] , i = 0, . . . , n , son los puntos de B´ezier de b(u) sobre [a, b]. Demostraci´on: En 3.1 demostramos la existencia de la forma polar b[u1 . . . un] para un curva b(u). Por lo tanto podemos considerar los puntos: bk i = b[a j . . . a u1 k. . . uk b i. . . b] , i + j + k = n . Como bn 0 = b[u1 . . . un] es sim´etrico y multiaf´ın, puede calcularse a partir de los b0 i por medio de la siguiente relaci´on de recurrencia (1) bk+1 i = bk i · (1 − tk+1) + bk i+1 · tk+1 , donde tk = uk − a b − a . La Figura 3.1 ilustra este proceso, los puntos b[u1 . . . un] se denotan por sus argumentos u1 . . . un. Es m´as, si todos los uk son iguales a u, entonces la relaci´on de recurrencia (1) se reduce al algoritmo de de Casteljau para la evaluaci´on de b(u). En consecuencia, como la representaci´on de B´ezier es ´unica, los puntos bi son los puntos de B´ezier de b(u) sobre [a, b]. Por lo tanto, dos polinomios sim´etricos que coinciden sobre la diagonal, coinciden tambi´en sobre todos los argumentos [a n−i. . . a b i. . . b], y por la relaci´on de recurrencia (1) son id´enticos. Por lo tanto b(u) tiene una ´unica forma polar. 3 3.3 Subdivisi´on La relaci´on de recurrencia (1) tal como se ilustra en la Figura 3.2 revela una importante propiedad del algoritmo de Casteljau.
  • 47. 28 3. T´ecnicas de B´ezier Figura 3.1: Teorema fundamental. Correctamente en el esquema de de Casteljau b0 0 b0 1 b 1 0 ... ... b0 n 1 n−1 · · · bn 0 = b(c). Figura 3.2: Subdivisi´on. utilizado para calcular b(c), los puntos de B´ezier bi 0 = b[a n−i. . . a c i. . . c] y bn−i i = b[c n−i. . . c b i. . . b]
  • 48. 3.4. Convergencia con la subdivisi´on 29 de la curva sobre [a, c] y [c, b] se encuentran en la diagonal superior y la fila inferior respectivamente. El c´alculo de los puntos de B´ezier sobre [a, c] y [c, b] se denomina subdivisi´on. Al subdividir repetidamente una curva polin´omica b(u) se genera una par- tici´on [a0, a1], [a1, a2], . . . , [ak−1, ak] de su dominio. La uni´on de los pol´ıgonos de B´ezier sobre los subintervalos se denomina el pol´ıgono de B´ezier com- puesto de b sobre [a0, a1, . . . , ak]. En general el pol´ıgono compuesto consta de kn + 1 v´ertices. 3.4 Convergencia con la subdivisi´on El pol´ıgono de B´ezier de un segmento “corto” de una curva de B´ezier es una buena aproximaci´on a este segmento. En concreto, sean b0, . . . , bn los puntos de B´ezier de una curva b(u) sobre un subintervalo [c, c + nh] del intervalo [a, b] y sean ci = c + ih para i = 0, . . . , n. Entonces existe una constante M que no depende de c tal que max i b(ci) − bi ≤ Mh2 . Demostraci´on: Expandimos el polinomio sim´etrico b[u1 . . . un] alrededor de [ci . . . ci] y evaluando en [u1 . . . un] = [c n−i. . . c c+nh i. . . c+nh] obtenemos bi = b[c n−i. . . c c+nh i. . . c+nh] = b[ci . . . ci] − n−i j=1 ih ∂ ∂uj b[ci . . . ci] + n j=n−i+1 (n − i)h ∂ ∂uj b[ci . . . ci] +O(h2 ) , lo cual demuestra nuestra afirmaci´on pues todas las derivadas parciales son iguales. En las pr´oximas secciones se presentar´an aplicaciones de esta propiedad. Una versi´on m´as general puede encontrarse en 6.3 para splines. Observaci´on 2: En caso de la norma · ∞, el m´ınimo valor posible para la constante M, para el cual la estimaci´on anterior es v´alida para cualquier curva, est´a dada por max i=0,...,n−2 ∆2 bi ∞ · ⌊n/2⌋ · ⌈n/2⌉/2n . Ver [Nairn et al. ’99] y [Reif ’00] Observaci´on 3: La convergencia cuadr´atica no puede ser mejorada, lo que se puede verificar para la par´abola p(u) = u2 , cuyo punto de B´ezier intermedio sobre [0, 2h] es cero y p(h) = h2 .
  • 49. 30 3. T´ecnicas de B´ezier 3.5 Generaci´on de curvas por subdivisi´on La t´ecnica de subdivisi´on provee un m´etodo muy r´apido para generar una aproximaci´on a una curva de B´ezier. De 3.4 se desprende que los pol´ıgonos de B´ezier sobre [0, 1 2k , 2 2k , . . . , 1] de una curva b(t) = biBn i (t) convergen al segmento de curva b[0, 1] con orden 1/4h . Esto sugiere el si- guiente programa de graficaci´on [Lane & Riesenfeld ’80]: Plot B´ezier (b0, . . . , bn; k) if k = 1 then dibujar el pol´ıgono b0, . . . , bn else calcular el pol´ıgono de B´ezier compuesto a0, . . . , a2n de biBn i (t) sobre [0, 0.5, 1]. Plot B´ezier (a0, . . . , an, k − 1) Plot B´ezier (an, . . . , a2n, k − 1) La Figura 3.3 se obtuvo con el programa anterior aplicado al pol´ıgono de control de una c´ubica para k = 3. Figura 3.3: Subdivisi´on de un pol´ıgono de B´ezier. Adem´as del n´umero de iteraciones se pueden usar otros criterios de finali- zaci´on. Por ejemplo, se podr´ıa parar cuando el pol´ıgono de B´ezier es aproxi- madamente un segmento de recta. Una medida simple de linealidad se basa en segundas diferencias hacia adelante. As´ı, en el programa anterior se podr´ıa
  • 50. 3.6. Generaci´on de curvas por diferencias hacia adelante 31 cambiar la primera l´ınea a si k = 0 o max{ ∆2 bi | i = 0, . . . , n − 2} < ε. En vez de dibujar el pol´ıgono de B´ezier tambi´en se podr´ıa simplemente dibujar el segmento b0bn si la condici´on se satisfaciese. Una cota para la desviaci´on con respecto a la curva est´a dada por el siguiente teorema: Sea l(t) = b0(1 − t) + bnt el interpolante lineal de b(t) entonces se tiene sup 0≤t≤1 b(t) − l(t) ≤ 1 8 sup 0≤t≤1 ¨b(t) ≤ 1 8 n(n − 1) max i=0,...,n−2 ∆2 bi , donde · denota la norma uno, la norma infinito o la norma Eucl´ıdea de vectores. Para la demostraci´on consultar [de Boor ’78, p´ag. 39] y [Filip et al. ’86]. Observaci´on 4: Si b(u) tiene puntos de B´ezier bi sobre [a, b] y puntos de B´ezier ci sobre un subintervalo [c, c + h], entonces las diferencias ∆2 ci est´an acotadas por (h/(b − a))2 max ∆2 bi , vea el Ejercicio 3. Entonces, con respecto a h la aproximaci´on por el interpolante lineal es cuadr´atica. El orden de aproximaci´on es cuadr´atico en general. Entonces por la Obser- vaci´on 3, el pol´ıgono de B´ezier compuesto sobre [0, 1 2m , . . . , 1] es una aprox- imaci´on asint´oticamente tan buena como la poligonal resultante de conectar los v´ertices b i (n2m) , i = 0, 1, . . . , n2m Observaci´on 5: Desde el punto de vista num´erico el programa anterior s´olo hace evaluaciones de la forma (a + b)/2. Por lo tanto el proceso se puede acelerar si las divisiones se realizan como desplazamientos de bits. Luego hay aproximadamente (n+1)/2 sumas vectoriales y una divisi´on por cada v´ertice del pol´ıgono dibujado por el programa. 3.6 Generaci´on de curvas por diferencias hacia adelante Otro m´etodo r´apido para calcular puntos sobre una curva de B´ezier est´a basado en la t´ecnica de diferencias hacia adelante. Sea b(u) una curva polin´omica y sean pi = b(a + ih) , i = 0, . . . , m ,
  • 51. 32 3. T´ecnicas de B´ezier puntos sobre esta curva correspondientes a valores uniformemente distribui- dos del par´ametro. Si b(u) tiene grado n entonces se tiene que la diferencia hacia adelante ∆n+1 pi es cero y ∆n pi es constante (independientemente de i). Ver el Ejercicio 1. Este hecho se puede utilizar para calcular los puntos pi, i = n + 1, . . . , m, a partir de los puntos p0, . . . , pn. En primer lugar se calcula la constante ∆n p0, tomando diferencias hacia adelante y luego se determinan los puntos pi, i > n por sumas repetidas ”hacia atr´as”. Este c´alculo se puede organizar en una forma conveniente por medio del siguiente esquema: p0 p1 ∆1 p0 ... ... pn ∆1 pn−1 · · · ∆n p0 pn+1 ∆1 pn · · · ∆n p1 ... ... pm ∆1 pm−1 · · · ∆n pm−n regla ∗ ∗ ∗ Z Z~- − + recursi´on ∗ ∗ ∗ ? + + Observaci´on 6: Exceptuando el c´alculo de los primeros n + 1 puntos p0, . . . , pn y de las posiciones de la parte triangular del arreglo anterior, se requieren n sumas vectoriales por cada punto de la curva. Por lo tanto la gen- eraci´on de curvas por subdivisi´on es casi dos veces m´as r´apida que por difer- encias hacia adelante. Adem´as el m´etodo de subdivisi´on es num´ericamente m´as estable, ver la Observaci´on 5. 3.7 Intersecci´on La subdivisi´on tambi´en es ´util para el c´alculo de las intersecciones de dos curvas de B´ezier b(s) = biBm i (s) , s ∈ [0, 1] , y c(t) = ciBn i (t) , t ∈ [0, 1] . La idea fundamental para encontrar (o aproximar) la intersecci´on de dos curvas de B´ezier consiste en considerar los pol´ıgonos de control de las curvas b(s) y c(t) y sus subdivisiones. Si la intersecci´on de las c´apsulas convexas
  • 52. 3.7. Intersecci´on 33 Figura 3.4: Curvas intersecantes y curvas disjuntas. de los pol´ıgonos de control es vac´ıa entonces las curvas no se cortan. Si las c´apsulas tienen intersecci´on no vac´ıa entonces ´estas podr´ıan cortarse. En este caso subdividimos ambas curvas (por simplicidad) en s = 1/2 y t = 1/2 y verificamos si las c´apsulas convexas de cada una de las mitades b[0, 1/2] y b[1/2, 1] tienen intersecci´on con las c´apsulas convexas de c[0, 1/2] y c[1/2, 1]. Este proceso se repite para todos los pares de segmentos de curvas cuyas c´apsulas convexas se intersecan. Si finalmente, las c´apsulas convexas se hacen peque˜nas y alargadas entonces las curvas se pueden aproximar por segmentos de recta cuyas intersecciones son f´aciles de calcular. En vez de c´apsulas convexas, es mucho m´as f´acil usar cajas de acotaci´on [min bi, max bi] y [min ci, max ci]. Vea la Observaci´on 1 en 2.2. Esta idea sugiere el siguiente programa para calcular la intersecci´on de dos segmentos de B´ezier: INTERSECTAR(b0, . . . , bm; c0, . . . , cn; ε) if [min bi, max bi] ∩ [min cj, max cj] = ∅ then if m(m − 1) max ∆2 bi ε then calcular el pol´ıgono de B´ezier compuesto b′ 0, . . . , b′ 2m de biBm i (s) sobre [0, 0.5, 1], INTERSECTAR (b′ 0, . . . , b′ m; c0, . . . , cn; ε) INTERSECTAR(b′ m, . . . , b′ 2m; c0, . . . , cn; ε) else if n(n − 1) max ∆2 ci ε then calcular el pol´ıgono de B´ezier compuesto c′ 0, . . . , c′ 2n de ciBn i (t) sobre [0, 0.5, 1], INTERSECTAR (b0, . . . , bm; c′ 0, . . . , c′ n; ε) INTERSECTAR (b0, . . . , bm; c′ n, . . . , c′ 2n; ε) else intersectar los segmentos de recta b0bm y c0cn
  • 53. 34 3. T´ecnicas de B´ezier 3.8 La propiedad de variaci´on decreciente La subdivisi´on no es solamente una herramienta de utilidad pr´actica sino tambi´en es importante desde el punto de vista te´orico. A continuaci´on vemos como ´esta se puede emplear para demostrar la propiedad de la variaci´on decreciente: El n´umero de veces que un plano arbitrario H corta a una curva b(t); t ∈ [0, 1] es menor o igual que el n´umero de veces que H corta al pol´ıgono de B´ezier de b(t). La Figura 3.5 muestra un ejemplo. Figura 3.5: Intersecci´on con un hiperplano. Para demostrarlo primero observamos que el algoritmo de de Casteljau es un proceso repetido de recorte de esquinas para cualquier t ∈ [0, 1]. Entendemos por esquina el extremo com´un de dos segmentos en el espacio. Esto se ilustra en la Figura 3.6 para una esquina. Figura 3.6: Recorte de una esquina. Si el segmento ac corta H entonces el pol´ıgono abc tambi´en corta H. (Note que el rec´ıproco, sin embargo no es cierto en general.) En consecuencia el pol´ıgono de B´ezier sobre cualquier subdivisi´on [0, t1, . . . , tk, 1] de [0, 1] tiene a lo sumo el mismo n´umero de intersecciones con H que el pol´ıgono de B´ezier sobre [0, 1]. En particular, si los ti se escogen de manera que b(t1), . . . , b(tk) son las intersecciones de b con H, entonces tenemos que el pol´ıgono de B´ezier tiene
  • 54. 3.9. El polinomio sim´etrico de la derivada 35 por lo menos k intersecciones con H. 3 Observaci´on 7: Si una curva o un pol´ıgono en IRd corta cualquier plano en a lo sumo dos puntos o yace en ese plano entonces la curva o el pol´ıgono es necesariamente plano y se denomina convexo. Como consecuencia de la propiedad de la variaci´on decreciente se tiene que toda curva con un pol´ıgono de B´ezier conexo es a su vez tambi´en convexa. Sin embargo, el rec´ıproco de esto no es cierto en general, como se ilustra en la Figura 3.7. Vea tambi´en el Ejercicio 11. Figura 3.7: Cu´artica convexa con un pol´ıgono de B´ezier no convexo. Observaci´on 8: El gr´afico de un polinomio b(t) = biBn i (t), t ∈ [0, 1] es convexo o c´oncavo si y s´olo si ¨b(t) ≥ 0 o ¨b(t) ≤ 0. Su pol´ıgono de B´ezier es convexo o c´oncavo si y s´olo si todas las diferencias satisfacen ∆2 bi ≥ 0 o ∆2 bi ≤ 0. 3.9 El polinomio sim´etrico de la derivada Las derivadas de una curva polin´omica b(u) pueden escribirse en t´erminos de su forma polar b[u1 . . . un]. De 2.6 o simplemente derivando el polinomio sim´etrico se obtiene b′ (u) = n b − a (b[b u . . . u] − b[a u . . . u]) , y usando la multiafinidad resulta b′ (u) = n(b[1u . . . u] − b[0 u . . . u]) . Verificando las tres propiedades que caracterizan la forma polar de b(u) encontramos que el polinomio multiaf´ın sim´etrico de b′ (u) est´a dado por b′ [u2 . . . un] = n(b[1 u2 . . . un] − b[0 u2 . . . un]) .
  • 55. 36 3. T´ecnicas de B´ezier En particular, el polinomio sim´etrico b[u1u2 . . . un] de la curva inicial b(u) es una aplicaci´on af´ın en u1, si fijamos u2, . . . , un. Por lo tanto b[δ u2 . . . un] = b[b u2 . . . un] − b[a u2 . . . un] representa la aplicaci´on lineal subyacente, donde δ = b − a. En aras de claridad en la presentaci´on, denotamos las diferencias de par´ametros afines, o sea vectores, por medio de letras griegas. En particular usamos la notaci´on ε = 1 − 0. Entonces la derivada puede escribirse b′ (u) = n b[ε u . . . u] . Iterando el proceso de derivaci´on obtenemos el polinomio sim´etrico de la r-´esima derivada de b(u) b(r) [ur+1 . . . un] = n! (n − r)! b[ε r. . . ε ur+1 . . . un] , donde b[ε r. . . ε ur+1 . . . un] = b[ε r−1. . . ε 1 ur+1 . . . un] − b[ε r−1. . . ε 0 ur+1 . . . un] . Observaci´on 9: Como b[u1 . . . un] es af´ın en cada variable, entonces la primera derivada est´a dada por ∂ ∂u1 b[u1 . . . un] = b[1 u2 . . . un] − b[0 u2 . . . un] = b[ε u2 . . . un] = 1 n b′ [u2 . . . un] . Entonces se tiene ∂r ∂u1 . . . ∂ur b[u1 . . . un] = (n − r)! n! b(r) [ur+1 . . . un] . 3.10 Conexiones Cr simples La subdivisi´on es tambi´en una t´ecnica ´util para describir cuando dos cur- vas b(u) y c(u) dadas por los pol´ıgonos de control b0, . . . , bn sobre [a, b] y c0, . . . , cn sobre [b, c] se conectan diferenciablemente. De 2.4 se desprende que las derivadas hasta orden r en u = b determinan y son determinadas por los puntos de B´ezier bn−r, . . . , bn sobre [a, b] y c0, . . . , cr sobre [b, c]. Entonces obtenemos el teorema de St¨ark [St¨ark ’76].
  • 56. 3.10. Conexiones Cr simples 37 Las derivadas de b y c en u = b son iguales hasta orden r, si c0, . . . , cr son los primeros r + 1 puntos de B´ezier de b sobre [b, c]. Esto significa que b[b n−i. . . b c i. . . c] = ci para i = 0, . . . , r . Usando 3.2, el Teorema de St¨ark, se puede rescribir Las derivadas de las curvas b y c son iguales hasta orden r en u = b si y s´olo si los polinomios b[b n−r. . . b u r. . . u] y c[b n−r. . . b u r. . . u] son iguales. El polinomio b[b n−r. . . b u r. . . u] tiene el pol´ıgono de B´ezier compuesto bn−r, . . . , bn, ci, . . . , cr. Los puntos ci, i ≤ r se pueden calcular a partir de los bn−i aplicando el algoritmo de de Casteljau. Las Figuras 3.8 y 3.9 ilustran conexiones Cr simples obtenidas a trav´es de la construcci´on de St¨ark. El lado izquierdo de la Figura 3.9 representa un A-marco. Figura 3.8: Conexiones simples C0 y C1 . Figura 3.9: Conexiones simples C2 y C3 .
  • 57. 38 3. T´ecnicas de B´ezier Observaci´on 10: Como dos polinomios son iguales si y s´olo si sus formas polares son iguales, se tiene que las derivadas hasta orden r de b(u) y c(u) son iguales en u = b si y s´olo si sus formas polares satisfacen b[b n−r. . . b u1 . . . ur] = c[b n−r. . . b u1 . . . ur] para valores arbitrarios de las variables u1, . . . , ur. 3.11 Elevaci´on de grado Para cualquier curva de grado n y todo m ≥ n, existe una representaci´on de B´ezier de grado m para la curva. La conversi´on a una representaci´on de grado mayor se utiliza en ciertas con- strucciones con superficies y a veces se requiere para el intercambio de datos entre diferentes sistemas de CAD. Esta conversi´on de denomina elevaci´on de grado. Dada una representaci´on de B´ezier de grado n de una curva, b(u) b(u) = biBn i (t) mostraremos como elevar el grado de esta presentaci´on en uno. Esto es, escribiremos b(u) en t´erminos de polinomios Bn+1 i (t), para lo que utilizamos el polinomio sim´etrico b[u1 . . . un] de b(u). Denotamos con un asterisco la ausencia del t´ermino indicado en una secuencia y definimos: (2) c[u0 . . . un] = 1 n + 1 n i=0 b[u0 . . . u∗ i . . . un] . Es f´acil verificar que este polinomio en n+1 variables es multiaf´ın, sim´etrico y que coincide con b(u) sobre la diagonal. Entonces por el teorema fundamental en 3.2 se tiene que ci = c[a n+1−i. . . a b i. . . b] = i n+1 b[a n+1−i. . . a b i−1. . . b] + n+1−i n+1 b[a n−i. . . a b i. . . b] = i n+1 bi−1 + n+1−i n+1 bi son los puntos de B´ezier de b(u) sobre [a, b] en su representaci´on de grado n + 1. La Figura 3.10 ilustra la construcci´on para n = 3. Observaci´on 11: La aproximaci´on de un polinomio de grado exactamente m con un polinomio de grado n m se denomina reducci´on de grado, v´ease por ejemplo [Eck ’93, Eck ’95, Lutterkort et al ’99].
  • 58. 3.12. Convergencia por elevaci´on de grado 39 Figura 3.10: Elevaci´on de grado. 3.12 Convergencia por elevaci´on de grado El proceso de elevaci´on de grado se puede repetir hasta obtener una repre- sentaci´on de grado tan alto como se quiera b(t) = m k=0 dkBm k (t) , m n . La expresi´on simple, dada por Zhou, para los dk, dk = n i=0 biβik , donde βik = n i m − n k − i / m k se denomina distribuci´on polihipergeom´etrica en la teor´ıa de probabili- dades. La construcci´on de la representaci´on de grado m es como sigue: b(t) = n i=0 biBn i (t)(1 − t + t)m−n = n i=0 m−n j=0 bi n i m − n j ti+j (1 − t)m−i−j = m k=0 n i=0 biβik Bm k (t) , donde k = i + j , vea [Farin ’86, de Boor ’87]. An´alogamente a la propiedad de convergencia por subdivisi´on, el pol´ıgono de B´ezier de la representaci´on de grado m de b(t) converge a b[0, 1] , cuando
  • 59. 40 3. T´ecnicas de B´ezier m tiende a ∞, vea [Farin ’79, Trump Prautzsch ’96]. Rescribiendo βik, obtenemos: βik = n i i−1 α=0 k − α m − α n−1 α=i m − k + i − α m − α = n i (k/m) i (1 − k/m) n−i + O(1/m) = Bn i (k/m) + O(1/m) . Sustituyendo en la ecuaci´on de los dk se obtiene m max k=0 dk − b(k/m) = O(1/m) , vea tambi´en 11.8 Una prueba diferente, m´as general, de este hecho se puede encontrar en 6.6 para splines. Vea el Ejercicio 6 de 6.9 para una construcci´on eficiente de los dk. 3.13 Ejercicios 1 Considere los desplazamientos uniformes Ôi(x) = Ô(x − ih) de una curva polin´omica de grado exactamente n. Demuestre que la curva ∆k Ôi(x) tiene grado exactamente n − k. 2 Demuestre que el operador de Bernstein B[f](u) = n i=0 f(ih)Bn i (t) , u = nh · t , tiene orden de aproximaci´on 2, es decir, si f es dos veces diferenciable, entonces max u∈[0,nh] B[f](u) − f(u) = O(h2 ) . 3 Sean b0, . . . , bn los puntos de B´ezier sobre el intervalo [a, b] y sean c0, . . . , cn los puntos de B´ezier de la misma curva sobre el subintervalo [c, c + h] de [a, b]. Demuestre que max i=0,...,n−k ∆k ci ≤ h b − a k max i=0,...,n−k ∆k bi , donde · denota el supremo, la norma de la suma o la norma Eucl´ıdea.
  • 60. 3.13. Ejercicios 41 4 Sea b una curva polin´omica. Pruebe que la longitud de arco de su pol´ıgono de B´ezier compuesto sobre [0, 1 m , 2 m , . . . , 1] converge cuadr´atica- mente en 1/m a la longitud de arco 1 0 ˙b(t) 2 dt de b[0, 1]. Vea tambi´en [Kobbelt Prautzsch ’95, Gravesen ’97]. 5 Verifique que la longitud de arco de los pol´ıgonos de B´ezier de las repre- sentaciones de grado m, construidos por elevaci´on de grado de b, converge linealmente en 1/m a la longitud de arco de b[0, 1]. 6 Dise˜ne un algoritmo que encuentre las autointersecciones de una curva de B´ezier plana. Si una curva se interseca a s´ı misma, ¿qu´e se puede decir del hod´ografo? 7 Encuentre dos c´ubicas definidas sobre [0, 1] tales que las curvas y tambi´en sus pol´ıgonos de B´ezier tengan 9 intersecciones. 8 Encuentre dos c´ubicas sobre [0, 1] que tengan extremos comunes y que se intersecten en m´as puntos que sus pol´ıgonos de B´ezier. 9 Describa un algoritmo que verifique si dos cajas con lados paralelos a los ejes coordenadas se intersecan. 10 Considere una curva b que interseca o toca cualquier hiperplano en un punto o a lo largo de un segmento. Demuestre que b yace en un sub- espacio m-dimensional. 11 Demuestre que el pol´ıgono de B´ezier de grado m de b(x) = x4 sobre [−1, 1] es no convexo para todo m ≥ 4. 12 Considere la representaci´on de B´ezier de grado m de una curva polin´omica de grado n, b(t) = m i=0 biBm i (t). Demuestre que existe un polinomio p de grado n tal que p(i/m) = bi. 13 Verifique que b(t) = [t2 t]t y b(t2 ) recorren el mismo segmento de curva sobre [0, 1] pero tienen diferentes pol´ıgonos de B´ezier de grado 4. 14 Use los polinomios sim´etricos para probar la f´ormula de elevaci´on de grado de 3.12: dk = n i=0 biβik .
  • 62. 4 Interpolaci´on y aproximaci´on 4.1 Interpolaci´on — 4.2 Interpolaci´on de Lagrange — 4.3 Interpolaci´on de Newton — 4.4 Interpolaci´on de Hermite — 4.5 Interpolaci´on de Hermite c´ubica por trozos — 4.6 Aproximaci´on — 4.7 Ajuste por m´ınimos cuadrados — 4.8 Mejoras en el par´ametro — 4.9 Ejercicios En modelaci´on geom´etrica, as´ı como tambi´en en otras aplicaciones, con fre- cuencia hay que encontrar expresiones anal´ıticas, usualmente de curvas de las cuales no se conoce una descripci´on matem´atica o ´esta es muy complicada. En este caso se mide o se eval´ua la curva en un conjunto de puntos y se construye una aproximaci´on o interpolaci´on. Este cap´ıtulo describe algunas de las t´ecnicas b´asicas. 4.1 Interpolaci´on Un conjunto de n funciones C1(u), . . . , Cn(u) se dice linealmente indepen- diente sobre los valores u1, . . . , un si la matriz C =    C1(u1) · · · Cn(u1) ... ... C1(un) · · · Cn(un)    es no-singular. En tal caso, para cualesquiera n puntos p1, . . . , pn ∈ IRd existe una ´unica curva p(u) = n i=1 xiCi(u) que interpola los puntos pi en los ui, i.e., p(ui) = pi , i = 1, . . . , n .
  • 63. 44 4. Interpolaci´on y aproximaci´on Para verificarlo escribimos las condiciones de interpolaci´on en forma matricial    C1(u1) . . . Cn(u1) ... ... C1(un) . . . Cn(un)       xt 1 ... xt n    =    pt 1 ... pt n    o en forma abreviada CX = P lo que representa d sistemas de ecuaciones lineales simult´aneas para las d columnas de X. La existencia de la soluci´on se desprende de la independencia de C1, . . . , Cn sobre u1, . . . , un. 3 Figura 4.1: Curva interpolante Observaci´on 1: Si los Ci son polinomios de grado n − 1, la matriz C es invertible para cualesquiera n valores distintos u1, . . . , un. De hecho, el sistema Cx = o (para una sola columna x) tiene solamente la soluci´on trivial x = o pues el polinomio cero es el ´unico polinomio de grado n − 1 con n raices. Observaci´on 2: Dos puntos pueden interpolarse con una recta, tres con una par´abola, cuatro con una c´ubica, etc. 4.2 Interpolaci´on de Lagrange Un m´etodo simple para construir una interpolaci´on polin´omica fue propuesto por Lagrange. Dados n + 1 puntos pi con sus correspondientes valores param´etricos ui, i = 0, . . . , n, de acuerdo con la Observaci´on 1 existe una ´unica curva polin´omica p de grado n que interpola dichos puntos. Dicha curva puede escribirse como p(u) = n i=0 piLn i (u) , donde los polinomios de Lagrange Ln i (u) se definen como Ln i (uk) = 1 0 seg´un k = i k = i .
  • 64. 4.2. Interpolaci´on de Lagrange 45 Figura 4.2: Polinomio de Lagrange de grado 3. La Figura 4.2 muestra un ejemplo. Claramente, se tiene Ln i = n j=0, j=i(u − uj) n j=0, j=i(ui − uj) . Existen diferentes maneras para evaluar los polinomios de Lagrange. Una posibilidad consiste en usar la siguiente relaci´on de recurrencia: primero ob- serve que los polinomios de Lagrange suman uno, n i=0 Ln i (u) ≡ 1 . Entonces por definici´on (1) Lk i = Lk−1 i αik si i = 0, . . . , k − 1 1 − k−1 j=0 Lk j = k−1 j=0 Lk−1 j (1 − αjk) si i = k , donde αik representa el par´ametro local en [uk, ui], αik = u − uk ui − uk . Como en el algoritmo de de Casteljau en 2.3, mediante esta relaci´on de re- currencia se obtiene un m´etodo iterativo para evaluar p(u) a partir de los puntos p0 i = pi tomando combinaciones afines. p(u) = n i=0 p0 i Ln i (u) = n−1 i=0 p1 i Ln−1 i (u) ... = 0 i=0 pn i L0 i (u) = pn 0 ,
  • 65. 46 4. Interpolaci´on y aproximaci´on donde pk+1 i = pk i αi,n−k + pk n−k(1 − αi,n−k) . Esta forma de calcular p(u) se denomina el algoritmo de Aitken. N´otese que los polinomios pk i = pk i (u) tienen grado k e interpolan los puntos pi y pn, . . . , pn−k+1. Observaci´on 3: La evaluaci´on de los polinomios de Lagrange, por el m´etodo anterior, puede organizarse mediante el siguiente esquema triangular: 1 = L0 0 L1 0 L2 0 · · · Ln 0 L1 1 L2 1 · · · Ln 1 L2 2 · · · Ln 2 ... ... Ln n . Observaci´on 4: Similarmente se puede organizar tambi´en el c´alculo de los pk i por medio de un esquema triangular an´alogo p0 0 p0 1 p1 0 p0 2 p1 1 p2 0 ... ... p0 n p1 n−1 p2 n−2 · · · pn 0 . En l´ıneas generales la interpolaci´on de Lagrange tiene inter´es te´orico pues en la pr´actica muchas veces no produce los resultados que espera el dise˜nador. 4.3 Interpolaci´on de Newton Otra base del espacio vectorial de polinomios de grado menor o igual que n, ´util para la contrucci´on de curvas polin´omicas de interpolaci´on en valores prescritos del par´ametro u0, u1, ..., un, fu´e introducida por Newton. Considere los n + 1 polinomios m´onicos Pi(u) donde Pi tiene grado i y se anula en las primeras i abscisas u0, . . . , ui−1. Esto es: P0 = 1 y para i ≥ 1 Pi(u) = (u − u0) · · · (u − ui−1) .
  • 66. 4.3. Interpolaci´on de Newton 47 Si [u0 . . . ui]q denota al coeficiente dominante, correspondiente al t´ermino de mayor grado, del polinomio de grado i que interpola una curva dada q = q(u) en los puntos u0, . . . , ui, entonces la curva p(u) de grado ≤ n que interpola q(u) en u0, . . . , un puede escribirse como p(u) = n i=0 [u0 . . . ui]q · Pi(u) . De la definici´on de los polinomios de Lagrange se desprende que el coeficiente dominante es de la forma [u0 . . . un]q = n k=0 q(uk) (uk − u0) · · · (uk − uk)∗ · · · (uk − un) , donde el asterisco (*) denota que se omite el t´ermino correspondiente. Usando esta representaci´on expl´ıcita es f´acil de verificar la relaci´on de recurrencia [u0 . . . un]q = [u1 . . . un]q − [u0 . . . un−1]q un − u0 ... [ui uj]q = [uj]q − [ui]q uj − ui [uj]q = q(uj) . En vista de esta recursi´on la expresi´on [u0 . . . ui]q se denomina la i-´esima diferencia dividida de q(u) en u0, . . . , ui. N´otese que las diferencias divi- didas son sim´etricas con respecto a sus nodos u0, . . . , un. Observaci´on 5: Si q(u) es suficientemente diferenciable entonces la difer- encia dividida [u0 . . . un]q depende continuamente de las abscisas ui, v´ease los Ejercicios 1 y 2. Por lo tanto [u0 . . . un]q tambi´en est´a definida cuando uno o varios ui coinciden, como funci´on de las derivadas en ui. [ui n+1. . . ui]q = q(n) (ui)/n! . Observaci´on 6: Supongamos que u0 = · · · = uk, entonces se desprende de la Observaci´on 5 que p(u) = n j=0 [u0 . . . uj]q · Pj(u) interpola todas las derivadas hasta orden k de q(u) en u = u0. Como p(u) no depende del orden de las abscisas ui, tambi´en interpola las derivadas qr (ui), donde ui = . . . = ui+r. Observaci´on 7: Si los valores ui est´an uniformemente distribuidos, ui = u0 + ih, entonces se tiene [u0 . . . un]q = 1 n! hn ∆n q(u0) .
  • 67. 48 4. Interpolaci´on y aproximaci´on La principal ventaja de la represetnaci´on de Newton es la permanenecia de las funciones base obtenidas. A diferencia de la interpolaci´on de Lagrange, si se a˜naden sucesivos puntos de interpolaci´on, no hay que modificar las anteriores funciones base. 4.4 Interpolaci´on de Hermite De la Observaci´on 6 de 4.3 se desprende que la curva p(u) = n i=0 [u0 . . . ui]q · Pi interpola los puntos Pi y si las abscisas ui coinciden entonces tambi´en inter- pola las derivadas de q. Esta construcci´on se denomina interpolaci´on de Hermite. En particular, un caso muy frecuente es la interpolaci´on hasta un cierto orden k en los extremos de un intervalo [a, b]. El interpolador de Hermite correspondiente es de grado n = 2k + 1 y se puede escribir como p(u) = k i=0 q(i) a Hn i + k i=0 q (i) b Hn n−i , donde q (i) u denota la i-´esima derivada de q en u y los polinomios de Her- mite Hn i de grado n est´an definidos por dr dur Hn i (a) = dr dur Hn n−i(b) = 1 si i = r 0 si i = r , r = 0, . . . , k . La Figura 4.3 muestra el interpolador de Hermite de grado tres y los cuatro polinomios de Hermite correspondientes. Alternativamente, el interpolador se puede describir en su representaci´on de B´ezier. Se desprende de 2.8 que los puntos de control bj sobre [a, b] est´an dados por bj = j i=0 j i (b − a)i n · · · (n − i + 1) q(i) a y bn−j = j i=0 j i (a − b)i n · · · (n − i + 1) q (i) b ,
  • 68. 4.4. Interpolaci´on de Hermite 49 Figura 4.3: Interpolaci´on c´ubica de Hermite es decir, para j = 0, . . . , (n − 1)/2, se tiene b0 = qa b1 = qa + b − a n q′ a b2 = qa + b − a n (2q′a + b − a n − 1 q′′a) ... bn = qb . Observaci´on 8: En vez de interpolar q′′ a y q′′ b se podr´ıa interpolar las cur- vaturas en a y b. La curvatura en el punto a est´a dada por xa = n − 1 n ∆b0 × ∆2 b0 ∆b0 3 , donde × denota el producto vectorial. Si, adem´as de posici´on y derivadas se interpolan curvaturas en vez de derivadas segundas, aparecen 2 grados extras de libertad en la interpolaci´on de Hermite de grado n = 5. Los puntos de B´ezier b2 y b3 se pueden mover paralelamente a las l´ıneas b0b1 y b5b4, respectivamente, sin modificar la curvatura de los extremos. Es decir, el interpolador no es ´unico.
  • 69. 50 4. Interpolaci´on y aproximaci´on 4.5 Interpolaci´on de Hermite c´ubica por trozos Una funci´on f(u) se puede aproximar por un polinomio p de grado n inter- polando f en n + 1 abscisas u0 · · · un. Un resultado cl´asico de an´alisis num´erico establece que la diferencia entre p y f en [u0, un] se puede expresar como p(u) − f(u) = f(n+1) (v) (n + 1)! (u − u0) · · · (u − un) , donde v = v(u) est´a en [u0, un]. Por lo tanto usualmente el error se hace peque˜no cuando las diferencias entre las abscisas decrecen. Sin embargo un interpolador de grado m´as alto de la funci´on f(u) no necesariamente resulta en una mejor aproximaci´on de esta funci´on. Por esta raz´on es com´un el uso de funciones polinomicas a trozos de reducudo grado. Por ejemplo, las c´ubicas son usadas con mucha frecuencia debido a que tienen grado bajo y a que permiten suficiente flexibilidad para muchas aplicaciones. A continuaci´on describiremos la interpolaci´on de Hermite con polinomios c´ubicos a trozos. Dados m puntos p1, . . . , pm y derivadas d1, . . . , dm correspondientes a valores del par´ametro u1 · · · um, entonces existe una ´unica c´ubica por trozos, continuamente diferenciable s(u) sobre [u1, um] tal que s(ui) = pi , y s′ (ui) = di . Su representaci´on se obtiene de 4.4, y est´a dada por s(u) = 3 j=0 b3i+jB3 j (ti) , u ∈ [ui, ui+1] , donde ti = (u − ui)/(ui+1 − ui) representa el par´ametro local sobre [ui, ui+1] para i = 1, . . . , m − 1, y b3i = pi b3i+1 = pi + di∆ui/3 b3i+2 = pi+1 − di+1∆ui/3 . La Figura 4.4 ilustra esta situaci´on. Frecuentemente las derivadas di no est´an dadas directamente, sino que deben ser estimadas a partir de los datos. Una forma elemental para asignar valores a los di es calculando las derivadas del interpolador cuadr´atico determinado por tres puntos consecutivos, como se ilustra en la Figura 4.5.
  • 70. 4.5. Interpolaci´on de Hermite c´ubica por trozos 51 Figura 4.4: Pol´ıgono de B´ezier compuesto Figura 4.5: Obtenci´on de las derivadas a partir de par´abolas. Esto significa di = (1 − αi) ∆pi−1 ∆ui−1 + αi ∆pi ∆ui , para i = 1, . . . , m − 1 , donde αi = ∆ui−1 ∆ui−1 + ∆ui . En los puntos extremos estas estimaciones se ajustan a: d0 = 2 ∆p0 ∆u0 − d1 , dm = 2 ∆pm−1 ∆um−1 − dm−1 . A menudo tambi´en se tienen que determinar las abscisas ui de la interpo- laci´on. Algunas de las posibles opciones son: la parametrizaci´on equidistante, donde ∆ui = constante ,
  • 71. 52 4. Interpolaci´on y aproximaci´on la parametrizaci´on seg´un la longitud de las cuerdas , donde ∆ui = ∆pi , y la parametrizaci´on centr´ıpeta [Lee ’89], donde ∆ui = ∆pi . Estos y otros m´etodos se discuten exhaustivamente en [Foley Nielson ’89, Farin ’02, Hoschek Lasser ’92]. Observaci´on 9: Un proceso de interpolaci´on con abscisas ui prescritas se denomina lineal si los puntos de B´ezier b0, b1, . . . , b3m dependen linealmente de los puntos p0, . . . , pm. Esto es, un esquema de interpolaci´on lineal est´a definido por una matriz S, de dimensi´on m+1 × 3m+1 que no depende de los pi y satisface [b0 . . . b3m] = [p0 . . . pm]S . Note que el esquema de interpolaci´on anterior, donde las derivadas di se obtienen a partir de polinomios cuadr´aticos, es lineal. 4.6 Aproximaci´on En general, dado un conjunto de funciones base C1, . . . , Cn no existe una curva p(u) = n i=1 xiCi(u) que interpole m´as de m puntos p1, . . . , pm, m n, en valores prescritos de los par´ametros u1, . . . , um. En este ´ultimo caso se puede construir un aproximante p(u), usualmente bajo la condici´on que las diferencias p(ui) − pi = ri se hagan peque˜nas en alg´un sentido. Usando la notaci´on matricial, necesitamos minimizar       C1(u1) . . . Cn(u1) ... ... C1(um) . . . Cn(um)          xt 1 ... xt n    −       pt 1 ... pt m       =       rt 1 ... rt m       o en forma m´as abreviada CX − P = R = [rij] .
  • 72. 4.7. Ajustes por m´ınimos cuadrados 53 Hay varias posibles elecciones para la distancia que se va a utilizar para minimizar R. Lo usual es minimizar la suma de los cuadrados m i=1 r2 i = i,j r2 ij = trazaRt R = trazaRRt . Este es el m´etodo de Gauss de ajuste por m´ınimos cuadrados. Una modificaci´on de este m´etodo consiste en minimizar una suma ponderada w2 i r2 i = traza(WR)t (WR) , donde W =    w1 ... wm    es una matriz diagonal de pesos. Ambos esquemas son lineales en el sentido de la secci´on siguiente. Otros esquemas son m´as complicados. Por ejemplo se podr´ıa minimizar max ri ∞ = max rij . Esto nos conduce a un sistema lineal de desigualdades, el cual puede ser resuelto usando el m´etodo simplex. Vea el Ejercicio 8. Observaci´on 10: Es importante observar que para cualquier j, la j-´esima columna de R, depende solamente de la j-´esima columna de X para todo j. Por lo tanto la minimizaci´on de R utilizando cualquiera de las tres distancias anteriores significa minimizar cada columna de R de manera independiente. 4.7 Ajustes por m´ınimos cuadrados En esta secci´on veremos como encontrar un ajuste por m´ınimos cuadrados. Es m´as, en esta secci´on el tratamiento ser´a m´as general, pues impondremos una restricci´on adicional DX = Q sobre la soluci´on X. Esta restricci´on t´ıpicamente fuerza al aproximante p(u) a interpolar ciertos puntos pi. Como explicamos en la Observaci´on 10 de 4.6 es suficiente considerar una columna x de X y las correspondientes columnas p, q, y r de P, Q, y R, respectivamente. El siguiente teorema muestra como se puede calcular el residual m´ınimo: r = Cx − p bajo la restricci´on Dx = q:
  • 73. 54 4. Interpolaci´on y aproximaci´on La suma de los cuadrados rt r = r2 i es m´ınima para la soluci´on x, y de (2) Ct C D Dt O x y = Ct p q . tal que Dx = q. Demostraci´on: Sean x, y una soluci´on de (2) y supongamos que x + h satisface la restricci´on D[x + h] = q . Esto implica Dh = o. Es m´as, si ¯r = C[x + h] − p = r + Ch , entonces se tiene ¯rt ¯r = rt r + 2rt Ch + ht Ct Ch . El ´ultimo sumando de la expresi´on anterior es no negativo y el segundo t´ermino es cero, pues teniendo en cuenta (2) ht Ct r = ht Ct [Cx − p] = −ht Dt y = 0 . Por lo tanto rt r es m´ınima. 3 Observaci´on 11: Si no hay restricciones i.e., D = 0 y Õ = Ó entonces el sistema lineal (2) se reduce a las ecuaciones normales de Gauss Ct Cx = Ct p . Observaci´on 12: Si la matriz C es la identidad y si Dx = q es un sistema subdeterminado entonces (2) consiste en las ecuaciones de correlaci´on x = p − Dt y . y las ecuaciones normales Dp − DDt y = q ,
  • 74. 4.8. Mejoras en el par´ametro 55 las cuales se obtienen por sustituci´on de las ecuaciones de correlaci´on en la expresi´on de las restricciones Dx = Úq. Observaci´on 13: Sea W una matriz diagonal de pesos de dimensi´on m×m. Entonces por el teorema anterior, el residual ponderado Wr = WCx − Wp se hace m´ınimo cuando Dx = q para la soluci´on x, y de la ecuaci´on ponderada (3) Ct W2 C D Dt O x y = Ct W2 p q . 4.8 Mejoras en el par´ametro A menudo se puede mejorar la calidad de una aproximaci´on si se escogen de manera diferente los nodos ui. Sea Ô(u) una curva que aproxima los puntos Ôi en los valores ui de los par´ametros. Denotemos por vi los valores de los par´ametros para los cuales Ô(u) est´a mas cerca de los Ôi. En general, ui y vi son diferentes. Por lo tanto un ajuste por m´ınimos cuadrados con respecto a los vi producir´a una curva que yace m´as cerca de los Ôi porque el nuevo conjunto de curvas sobre el cual se minimiza tambi´en contiene la curva p(u). Un m´etodo elemental para calcular aproximadamente los vi a partir de los ui es el siguiente: linealizamos p(u), en ui. Esto es, calculamos la recta tangente en ui y determinamos el punto m´as cercano a pi sobre esta recta tangente a p en ui (Ver la Figura 4.6, izquierda). Esto significa encontrar ∆i tal que: [p(ui) + ∆ip1 (ui) − pi]t p′ (ui) = 0 , entonces se obtiene ∆i = [pi − p(ui)]t p′ (ui) p′(ui) 2 2 . Entonces ui + ∆i es una aproximaci´on de vi. Otro m´etodo para estimar ∆i se basa en que la recta que pasa por pi y p(ui + ∆i) sea perpendicular a la tangente en p(ui + ∆i), como se ilustra en la Figura 4.6 (derecha). Esto se expresa por la condici´on: f(∆i) = [p(ui + ∆i) − pi]t p′ (ui + ∆i) = 0 .
  • 75. 56 4. Interpolaci´on y aproximaci´on Figura 4.6: Mejora del par´ametro. Usando el m´etodo de Newton, se obtiene ∆i ≈ − f(0) f′(0) = − [p(ui) − pi]t p′ (ui) p′(ui) · p′(ui) + [p(ui) − pi]t p′′(ui) . Se podr´ıa tambi´en iterar directamente estos dos procesos para obtener mejores aproximaciones de los vi, pero lo usual es que antes de cada iteraci´on se cal- cule una nueva curva de aproximaci´on usando los valores calculados ui + ∆i. 4.9 Ejercicios 1 Use inducci´on sobre n para probar la f´ormula de Hermite-Genocchi para diferencias divididas [de Boor ’84] [u0 . . . un]q = 0≤xn≤···≤x1≤1 q(n) (u0+(u1−u0)x1+· · ·+(un−un−1)xn)dx . 2 Deduzca de la f´ormula de Hermite-Genocchi que lim u0,...,un→u [u0 . . . un]q = q(n) (u)/n! . 3 Escriba los polinomios de Hermite de grado 5, H5 0 , . . . , H5 5 . Encuentre sus puntos de B´ezier. 4 Para cualesquiera tres puntos b0, b1, c calcule el punto b2 sobre la recta b1c tal que los puntos de B´ezier b0, b1, b2 definan una curva cuadr´atica b(t) con curvatura prescrita κ0 = ˙b × ¨b / ˙b 3 en b0. 5 Calcule y dibuje el polinomio que interpola la funci´on error de Gauss exp(−t2 /2) en t = −7, −5, −3, . . . , 7 .
  • 76. 4.9. Ejercicios 57 6 Calcule y dibuje una c´ubica por trozos C1 que interpole exp(−t2 /2) y sus derivadas en t = −7, −1, +1, +7. 7 Eval´ue el interpolador del Ejercicio 6 con el algoritmo de de Casteljau en ±6, ±4, ±2, 0. 8 Sea r = Cx − p. Demuestre que r ∞ = max |ri| es m´ınimo para la soluci´on x, ρ del problema (de programaci´on lineal) Cx − p − eρ ≤ 0 −Cx + p − eρ ≤ 0 ρ = min! donde e = [1 . . . 1]t , v´ease por ejemplo, [Boehm Prautzsch ’93, 10.4].
  • 78. 5 Representaci´on por B-splines 5.1 Splines — 5.2 B-splines — 5.3 Una definici´on recursiva de B-splines — 5.4 El algoritmo de de Boor — 5.5 El teorema fundamental — 5.6 Derivadas y suavidad — 5.7 Propiedades de los B-splines — 5.8 Conversi´on a la repre- sentaci´on B-spline — 5.9 El algoritmo de de Boor extendido — 5.10 Conversi´on entre las representaciones de de Boor y de B´ezier — 5.11 B-splines como dife- rencias divididas — 5.12 Ejercicios Los splines son curvas polin´omicas por trozos continuamente diferenciables hasta un orden prescrito. El ejemplo m´as sencillo es el spline C0 , o sea, lineal por trozos. Este spline es simplemente una poligonal en el plano o en el espacio. Otro ejemplo son los splines c´ubicos C1 construidos en 4.5. El nombre “spline” es una palabra en idioma ingl´es que significa “list´on el´astico”. Estos listones eran usados por artesanos para crear curvas, que des- criben superficies a construir, como cascos de barcos y fuselajes de aviones. Constre˜nidos por pesos, estos listones el´asticos o splines asumen una forma que minimiza su energ´ıa el´astica, propiedad que heredan en forma aproxi- mada los splines matem´aticos C2 de grado tres. La herramienta de los splines se desarrolla para solventar las limitaciones de las curvas de B´ezier: falta de control local, la laboriosidad requerida para imponer continuidad C2 y el hecho de que el n´umero de puntos de conrol de una curva de B´ezier impone su grado. 5.1 Splines Una curva s(u) se denomina un spline de grado n sobre la secuencia de nodos a0, . . . , am, con ai ≤ ai+1 y ai ai+n+1 para todos los posibles i, si s(u) es n−r veces diferenciable en cada nodo de multiplicidad1 r y s(u) es un polinomio de grado ≤ n sobre cada intervalo internodal [ai, ai+1], para i = 0, . . . , m − 1. 1Un nodo ai+1 tiene multiplicidad r si ai ai+1 = . . . = ai+r ai+r+1.
  • 79. 60 5. Representaci´on por B-splines N´otese que los nodos denotan valores del par´ametro donde la curva cambia su expresi´on polin´omica. Tambi´en es com´un referirse a un spline de grado n como spline de or- den n + 1. Las Figuras 5.1 y 5.2 muestran ejemplos de splines sobre se- cuencias de nodos simples (de multiplicidad uno), obtenidos a trav´es de la construcci´on de St¨ark, vea las Figuras 3.8 y 3.9. Los puntos de B´ezier internos y extremos se denotan por peque˜nos c´ırculos blancos y negros, respectivamente. Figura 5.1: Funciones spline de grado 1, 2 y 3. 5.2 B-splines En analog´ıa a la representaci´on de B´ezier de curvas polin´omicas tambi´en es conveniente expresar un spline s(u) como una combinaci´on af´ın de ciertos puntos de control ci, esto es: s(u) = ciNn i (u) donde los Nn i (u) son funciones polin´omicas por trozos con soporte finito (se anulan fuera de un intervalo finito) y satisfacen ciertas condiciones de
  • 80. 5.2. B-splines 61 Figura 5.2: Splines param´etricos de grado 1, 2, y 3. continuidad. Shoenberg introdujo el nombre de B-splines para estas funciones [Schoenberg ’67]. Sus pol´ıgonos de B´ezier se pueden obtener a trav´es de la construcci´on de St¨ark. La Figura 5.3 ilustra un B-spline C2 por trozos de grado tres. Note que el teorema de St¨ark s´olo se requiere para las ordenadas. Las abscisas se obtienen como en la Observaci´on 8 de 2.8. Figura 5.3: Puntos de B´ezier del B-spline N3 0 (u). Para grados m´as altos, esta construcci´on, aunque en principio posible, es m´as complicada, v´ease [Prautzsch ’89]. Por lo tanto nosotros utilizaremos una construcci´on alternativa, encontrada independientemente por de Boor y
  • 81. 62 5. Representaci´on por B-splines Mansfield [de Boor ’72] en 1970 y Cox [Cox ’72] en 1971. Definimos los B-splines en t´erminos de esta construcci´on y a partir de ella deduciremos las relaciones y propiedades m´as importantes de los B-splines. 5.3 Una definici´on recursiva de los B-splines Para introducir la relaci´on de recurrencia para definir los B-splines, consi- deramos por simplicidad una secuencia (ai) doblemente infinita de nodos simples tales que ai ai+1 para todo i. Entonces los B-splines Nn i se definen a trav´es de la siguiente relaci´on de recurrecncia N0 i (u) = 1 si u ∈ [ai, ai+1) 0 en caso contrario Nn i (u) = αn−1 i Nn−1 i (u) + (1 − αn−1 i+1 )Nn−1 i+1 (u), donde αn−1 i = (u − ai)/(ai+n − ai) es el par´ametro local con respecto al soporte de Nn−1 i . La Figura 5.4 muestra algunos B-splines de grado 0, 1 y 2. Figura 5.4: Algunos B-splines de grado 0,1 y 2. En el caso de nodos multiples los B-splines se definen por la misma recursi´on teniendo en cuenta la convenci´on Nr−1 i ≡ Nr−1 i /(ai+r − ai) = 0 si ai = ai+r . La Figura 5.5 muestra algunos B-splines con nodos m´ultiples. De la definici´on de B-splines se desprenden de forma inmediata las siguientes propiedades
  • 82. 5.4. El algoritmo de de Boor 63 Figura 5.5: B-splines con nodos m´ultiples. • Nn i (u) es polin´omica a trozos y tiene grado n, • Nn i (u) es positiva sobre (ai, ai+n+1), • Nn i (u) = 0 fuera de [ai, ai+n+1], • Nn i (u) es continua por la derecha. En las secciones 5.5 y 5.6 veremos que los B-splines son n−r veces continua- mente diferenciables en los nodos de multiplicidad r y que un spline de grado n se puede expresar como una combinaci´on lineal de los B-splines Nn i . Esta expresi´on es ´unica. La desventaja del modelo B-spline frente al de B´ezier, aparte de la mayor complejidad matem´atica, consiste en que las funciones base no admiten una expresi´on expl´ıcita, y cambian al variar el vector de nodos. De hecho, muchos programas de CAD, para procesar splines (dibujo, c´alculo de curvatura, inter- secciones) transforman cada segmento al modelo de B´ezier y as´ı el procesado resulta m´as eficiente. Observaci´on 1: Para el caso particular a1 = . . . = an = 0 y an+1 = . . . = a2n = 1, entonces la recursi´on anterior para Nn 0 , . . . , Nn n coincide con la recursi´on para los polinomios de Bernstein. Por lo tanto Nn i (u) = Bn i (u) para i = 0, . . . , n y u ∈ [0, 1] . Esto es, los B-splines son una generalizaci´on de los polinomios de Bernstein. 5.4 El algoritmo de de Boor Considere la combinaci´on lineal s(u) = i c0 i Nn i (u)
  • 83. 64 5. Representaci´on por B-splines de B-splines de grado n sobre una secuencia de nodos (ai). Sin p´erdida de generalidad podemos suponer que la secuencia de nodos y la sumatoria se extienden de −∞ a ∞. Por la forma de los soportes locales de los Nn i esta suma es siempre finita para cualquier u dado. Supongamos que u ∈ [an, an+1), entonces s(u) = n i=0 c0 i Nn i (u) . Usando repetidamente la relaci´on de recurrecncia para B-splines y agrupando t´erminos obtenemos: s(u) = n i=1 c1 i Nn−1 i (u) ... = n i=n cn i N0 i (u) = cn n , donde los cr i est´an dados por las combinaciones afines cr i = (1 − α)cr−1 i−1 + α cr−1 i , α = αn−r i = u − ai ai+n+1−r − ai . Note que α∈[0, 1] pues u∈[an, an+1), y por tanto, las combinaciones afines son convexas. Este algoritmo fue desarrollado por de Boor en 1972 [de Boor ’72]. Los puntos cr i se pueden ordenar en el siguiente esquema triangular, donde la regla de recursi´on es la anterior recursi´on af´ın. c0 0 c0 1 c1 1 c0 2 c1 2 c2 2 ... ... c0 n c1 n c2 n · · · cn n regla ∗ ∗ ∗ Z Z~- 1−α α (α depende de la posici´on) Una consecuencia importante del algoritmo de de Boor es que el spline s(u) sobre un intervalo internodal (i.e. entre dos nodos consecutivos) es una com- binaci´on convexa de n + 1 coeficientes consecutivos ci. Por lo tanto si los ci representan puntos en un espacio af´ın, entonces s(u) tambi´en es un punto del espacio af´ın. Por esta raz´on, los ci se denominan puntos de control de s(u). Es m´as, el spline yace en la c´apsula convexa de los puntos de control, lo cual
  • 84. 5.5. El teorema fundamental 65 implica que n i=0 1 · Nn i (u) = 1 para u ∈ [an, an+1) , los B-splines forman una partici´on de la unidad. La Figura 5.6 ilustra la inter- pretaci´on geom´etrica del algoritmo de de Boor dada por Gordon y Riesenfeld en 1974, [Gordon Riesenfeld ’74]. Figura 5.6: Combinaciones convexas del algoritmo de de Boor para n = 3. Observaci´on 2: Para u ∈ IR, el algoritmo de de Boor aplicado a los pun- tos c0 0, . . . , c0 n calcula el polinomio sn(u), el cual coincide con s(u) sobre el intervalo internodal [an, an+1). 5.5 El teorema fundamental Los polinomios sim´etricos nos permitir´an considerar el algoritmo de de Boor en un contexto m´as amplio. Sea s(u) = i ciNn i (u) un spline de grado n sobre los nodos ai, y sea si[u1 . . . un] la forma polar que coincide sobre su diagonal con s(u) sobre [ai, ai+1). Entonces tenemos una versi´on m´as general del teorema fundamental de 3.2:
  • 85. 66 5. Representaci´on por B-splines Los puntos de control de s est´an dados por ci = sj[ai+1 . . . ai+n] , i = j − n, . . . , j . Para la demostraci´on considere pr i = sj[ai+1 . . . ai+n−r u r. . . u] , y u = (1 − α)ai + αai+n−r+1 . Entonces, como sj es multiaf´ın y sim´etrico se tiene que pr i = (1 − α)pr−1 i−1 + α pr−1 i , α = αn−r i = u − ai ai+n−r+1 − ai , y en particular p0 i = sj[ai+1 . . . ai+n] y pn j = sj(u) . Para u ∈ [aj, aj+1) esta construcci´on coincide con el algoritmo de de Boor y puede utilizarse para calcular cualquier polinomio, sj[u . . . u] de grado n. Por lo tanto, cualquier polinomio de grado n puede expresarse, sobre [aj, aj+1) como una combinaci´on lineal de B-splines Nn j−n(u), . . . , Nn j (u). Contando dimensiones se verifica que la expresi´on es ´unica, lo que prueba la aseveraci´on. 3 Figura 5.7: El teorema fundamental para un spline c´ubico . Observaci´on 3: En la demostraci´on se verific´o que los B-splines Nn 0 (u), . . . , Nn n (u) forman una base para el espacio vectorial de todos los polinomios de grado menor o igual que n. Este resultado es de [Curry Schoenberg ’66]. Observaci´on 4: El “segmento” si del spline determina los puntos de control ci−n, . . . , ci. Rec´ıprocamente, todo punto cj est´a determinado por cualquiera de los “segmentos” sj, . . . , sj+n, esto es, se tiene ci = si[ai+1 . . . ai+n] = · · · = si+n[ai+1 . . . ai+n] .
  • 86. 5.6. Derivadas y suavidad 67 Observaci´on 5: La prueba anterior muestra que el polinomio sim´etrico sn[u1 . . . un] se puede calcular a trav´es de la versi´on m´as general del algoritmo de de Boor. Es suficiente sustituir en la recursi´on α(u) por α(ur) = ur − ai ai+n−r+1 − ai . Si m, de las n variables ui, . . . , un coinciden con nodos, entonces se requiere s´olo n−m pasos recursivos para calcular sj[u1 . . . , un]. Este c´alculo se puede organizar en un esquema triangular de 1 + 2 + . . . + (n − m + 1) puntos. 5.6 Derivadas y suavidad Debido a que los B-splines forman una base, vea la Observaci´on 3, la derivada de un segmento poli´nomico sn se puede escribir como s′ n(u) = n i=1 diNn−1 i (u) , u ∈ [an, an+1) , donde los vectores di a determinar, se pueden expresar f´acilmente en t´erminos de los ci. De hecho denotemos por s′ n[u2 . . . un] el polinomio sim´etrico de s′ n(u) y sea ∆ = ai+n − ai la longitud del soporte del B-spline Nn−1 i (u). Entonces se desprende del teorema fundamental y de 3.9 que di = s′ n[ai+1 . . . ai+n−1] = n ∆ sn[∆ ai+1 . . . ai+n−1] = n ai+n − ai (ci − ci−1) . Como los di no dependen del intervalo internodal [an, an+1), la derivada del spline s evaluada en cualquier u ∈ IR se puede expresar como (1) s′ (u) = i n ai+n − ai ∇ciNn−1 i (u) , donde ∇ci = ci − ci−1 denota la primera diferencia hacia atr´as. De manera similar se pueden obtener representaciones B-spline de derivadas de s(u) de orden superior. Esto es tambi´en ´util para verificar las propiedades de suavidad de los B-splines. Observe primero que un spline s de grado n es continuo en cualquier nodo de multiplicidad n. De hecho si a0 a1 = · · · = an an+1, entonces la
  • 87. 68 5. Representaci´on por B-splines Observaci´on 4 de 5.5 implica que s0(a1) = s0[a1 . . . an] = c0 = sn[a1 . . . an] = sn(an) . Por lo tanto, si a1 es un nodo de multiplicidad r, entonces la derivada n − r de s en a1 es continua. En otras palabras, un B-spline satisface las propiedades de suavidad dadas en 5.1. 5.7 Propiedades de los B-splines En esta secci´on resumimos las propiedades m´as importantes de los B-splines. • Los B-splines de grado n definidos sobre una secuencia de nodos dada, que no se anulan sobre un intervalo internodal, son linealmente independientes sobre este intervalo. • Contando dimensiones se verifica que los B-splines Nn 0 , . . . , Nn m con nodos a0, . . . , am+n+1 forman una base para todos los splines de grado n con soporte en el intervalo [a0, am+n+1] y este conjunto de nodos. • An´alogamente, los B-splines Nn 0 , . . . , Nn m con nodos a0, . . . , am+n+1 restringidos al intervalo [an, am+1) forman una base para todos los splines de grado n restringidos a este intervalo. • Los B-splines forman una partici´on de la unidad, m i=0 Nn i (u) = 1, para todo u ∈ [an, am+1) . • Un segmento de spline s[an, am+1] de grado n con nodos extremos de multiplicidad n (a0 =)a1 = . . . = an y am+1 = . . . = am+n(= am+n+1) tienen los mismos puntos extremos y rectas tangentes en esos puntos que sus pol´ıgonos de control. • Los nodos extremos a0 y am+n+1 no influyen sobre Nn 0 y Nn m sobre el intervalo [an, am+1]. • Los B-splines son positivos en el interior de su soporte Nn i (u) 0 para u ∈ (ai, ai+n+1) .
  • 88. 5.8. Conversi´on a la representaci´on B-spline 69 • Los B-splines tienen soporte compacto suppNn i = [ai, ai+n+1] . • Los B-splines satisfacen la recursi´on de de Boor, Mansfield y Cox donde αn−1 i = (u − ai)/(ai+n − ai) representa el par´ametro local sobre el soporte de Nn−1 i . • La derivada de un B-spline est´a dada por d du Nn i (u) = n ai+n − ai Nn−1 i (u) − n ai+n+1 − ai+1 Nn−1 i+1 (u) . • La representaci´on en t´erminos de B-splines de una curva spline es invariante bajo aplicaciones afines. • Un segmento sj[aj, aj+1] de un spline de grado n yace en la c´apsula convexa de sus n + 1 puntos de control cj−n, ..., cj. sj(u) = j i=j−n ciNn i (u) , u ∈ [aj, aj+1) , • Existe una f´ormula de elevaci´on de grado. Esta se presenta en 6.5. La prpopiedad m´as importante desde el punto de vista pr´actico es la de control local. Un punto de control s´olo interviene en los intervalos en que la funci´on base asociada tiene soporte, o sea, en los intervalos en que el punto aparece en el algoritmo de de Boor. El vector de nodos con multiplicidd n en los nodos extremos, es muy im- portante por ser pr´acticamente el ´unico empleado en los programas de CAD comerciales, para curvas no cerradas. As´ı la curva en los puntos extremos disfruta de las deseables propiedades del modelo de B´ezier: pasa por dichos puntos, es tangente en ellos al pol´ıgono de control, la curvatura s´olo depende de los tres puntos extremos, etc. Con este tipo de vector de nodos el B-spline es una verdadera generalizaci´on intuitiva de las curvas de B´ezier. Y si no hay nodos internos se tiene una curva de B´ezier. Vea la Observaci´on 1. 5.8 Conversi´on a la representaci´on B-spline Dado que cualquier polinomio de grado n se puede considerar como un spline de grado ≥ n sobre cualquier secuencia de nodos, en particular podemos expresar los monomios como combinaciones lineales de B-splines sobre una
  • 89. 70 5. Representaci´on por B-splines secuencia de nodos (ai) prefijada. Para esto recordemos de 3.1 que los monomios An j (u) = n j uj tienen forma polar An j [u1 . . . un] = i ... k ui j . . . uk . Entonces resulta del teorema fundamental 5.5 que An j (u) = i αjiNn i (u) , donde αji = An j [ai+1 . . . ai+n], y en consecuencia a(u) = a0An 0 (u) + · · · + anAn n(u) = i (a0α0i + · · · anαni)Nn i (u) , lo cual generaliza la identidad de Marsden. Ver Ejercicio 4. En particular para la funci´on identidad u = 1 n An 1 (u) = i γiNn i (u) , donde γi = α1i/n = (ai+1 + · · · + ai+n)/n. Los γi se denominan abscisas de Greville [Greville ’67]. Observaci´on 6: Las abscisas de Greville aparecen de forma natural como los puntos de control del gr´afico de una funci´on spline s(u) = i ciNn i . De hecho, el gr´afico s(u) = [u s(u)]t tiene puntos de control ci = [γi ci]t . La Figura 5.8 muestra un ejemplo, s(u) = N3 2 (u). Otros ejemplos se presentan en la Figura 5.1. 5.9 El algoritmo de de Boor extendido La expansi´on de Taylor de un polinomio sn(u) determinado por un segmento de spline sn(u) = n i=0 ciNn i (u) , u ∈ [an, an+1) , puede calcularse para cualquier u ∈ IR, usando las ideas presentadas en 2.6 para curvas de B´ezier.
  • 90. 5.9. El algoritmo de de Boor extendido 71 Figura 5.8: Puntos de control del B-spline c´ubico N3 2 (u). Sea sn[u1 . . . un] la forma polar de sn y considere los puntos y los vectores cr,i,k = sn[ε r. . . ε ai+1 . . . ai+n−r−k u k. . . u] donde ε denota la direcci´on 1 − 0, para i = r + k, . . . , n. Entonces se tiene dr dur sn(u) = n! (n − r)! cr,n,n−r = n! (n − r)! n i=r cr,i,0Nn−r i (u) y la expansi´on de Taylor sn(u + h) = n r=0 cr,n,n−r n r hr . Los puntos y vectores crik pueden organizarse en un esquema tetra´edrico ilustrado en la Figura 5.9 para n = 2, donde ε4 significa sn[ε a4], etc. Este esquema fu´e considerado por primera vez por Sablonniere en 1978 [Sablonniere ’78] y consta de n+2 3 subtetraedros que contienen los puntos de control dados ci = c0,i,0 en la arista “izquierda” y los multiplos (n − r)! n! s(r) n (u) de las derivadas en el lado opuesto. Cualesquiera dos puntos de los cuatro de un subtetraedro pueden calcularse a partir de los otros dos. Las reglas para realizar estos c´alculos se desprenden directamente de las propiedades de los polinomios sim´etricos multiafines. Por ejemplo, en la cara “izquierda” se tiene cr+1,i,k = 1 ai+n−r−k − ai (cr,i,k − cr,i−1,k) ,
  • 91. 72 5. Representaci´on por B-splines Figura 5.9: El algoritmo de de Boor extendido. en la cara de “atr´as” cr,i,k+1 = (1 − α)cr,i−1,k + α cr,i,k , α = u − ai ai+n−r−k − ai , en la cara de “abajo” (2) cr,i,k = cr,i,k+1 + (ai+n−r−k − u)cr+1,i,k , y en la cara de la “derecha” (3) cr,i−1,k = cr,i,k+1 + (ai − u)cr+1,i,k . Observaci´on 7: Las f´ormulas anteriores se pueden usar para ir de la repre- sentaci´on B-spline a la forma monomial y viceversa. Observaci´on 8: Para obtener las derivadas a partir de los puntos de control o viceversa es suficiente conocer solamente las caras izquierda y derecha del arreglo tetra´edrico, [Lee ’82, Boehm ’84b]. Observaci´on 9: Si se calcula primero la cara de atr´as y luego la cara de abajo (o arriba) del tetraedro, es necesario usar la f´ormula (2)(o (3)) para determinar cr+1,i,k (o cr,i−1,k). Sin embargo, esto es imposible si u = ai+n−r−k (o u = a1). Por lo tanto las derivadas del polinomio sn no se pueden calcular de esta manera para u = an+1, . . . , a2n (o u = a0, . . . , an−1). 5.10 Conversi´on entre las representaciones de de Boor y de B´ezier Tambi´en existe un algoritmo tetra´edrico para convertir la representaci´on B-spline en la representaci´on de B´ezier y viceversa [Boehm ’77, Sablonniere ’78].
  • 92. 5.10. Conversi´on entre las representaciones de de Boor y de B´ezier 73 Este se puede derivar de manera similar al algoritmo de 5.9. Sea la notaci´on como en 5.9 y qrik = sn[a r. . . a ai+1 . . . ai+n−r−k b k. . . b] para i = r + k, . . . , n. Entonces los puntos de control del spline est´an dados por ci = q0,i,0 y los puntos de B´ezier del polinomio sn sobre [a, b] estan dados bj = qn−j,n,j . Como antes, los puntos qrik se pueden organizar en un esquema teatr´edrico tal como se ilustra en la Figura 5.10 para n = 2, donde a3, ab, etc. denotan q1,2,0, q1,0,1, etc. Figura 5.10: Conversi´on entre las representaciones de B´ezier y de de Boor. Aqu´ı la cara izquierda se calcula con la regla qr+1,i,k = (1 − α)qr,i−1,k + α qr,i,k , α = a − ai ai+n−r−k − ai , y la cara de abajo por qr,i,k+1 = (1 − γ)qr+1,i,k + γ qr,i,k , γ = b − a ai+n−r−k − a . Rec´ıprocamente, los puntos de control de la representaci´on B-spline se cal- culan a partir de los de B´ezier de la siguiente manera. Primero despejamos qr,i−1,k y qrik de las f´ormulas anteriores. Luego aplicamos las f´ormulas para calcular los puntos de la cara de abajo y luego de la cara izquierda.
  • 93. 74 5. Representaci´on por B-splines 5.11 B-splines como diferencias divididas La definici´on cl´asica de B-spline usa diferencias divididas, t´ecnica que ha sido explotada sistem´aticamente para el desarrollo de la teor´ıa de los splines de una variable [de Boor ’78]. En particular las diferencias divididas fueron usadas por de Boor, Cox, y Mansfield en 1971 para obtener la relaci´on de recurrencia que satisfacen los B-splines. Usando la f´ormula de la derivada (1) de 5.6 mostraremos que los B-splines son diferencias divididas de la funci´on potencial truncada: f(a) = (a − u)n + := (a − u)n si a u 0 si a ≤ u . Vea la Figura 5.11. N´otese que f es una funci´on de a, u es un par´ametro fijo. Figura 5.11: Funci´on potencial truncada. Usando la notaci´on de las diferencias divididas dada en 4.3, se obtiene el B-spline Nn 0 sobre los nodos a0, . . . , an+1 se puede escribir Nn 0 (u) = (an+1 − a0)[a0 . . . an+1](a − u)n + . Este hecho se puede probar por inducci´on sobre n. Para n = 0 la identi- dad se verifica directamente. Para el paso inductivo, recordemos de 4.3 que [a0 . . . an+1]f(a) es el coeficiente del t´ermino de mayor grado del polinomio de grado (n + 1) que interpola f(a) en a0, . . . , an+1. Por lo tanto podemos sustituir f(a) por la funci´on cero si u ≥ an+1 y por el monomio (a − n)n de grado n en a, si u a0. Esto significa que nuestra identidad se verifica para u a0 y u ≥ an+1. Entonces, es suficiente demostrar que se satisface la derivada de la identidad de la tesis del teorema. N´otese que la diferencia dividida es una combinaci´on lineal de la funci´on potencial y sus derivadas. Por lo tanto la anterior diferen- cia dividida es diferenciable en todo u excepto en los nodos de multiplicidad n + 1. Esto sin embargo no causa ning´un problema debido a que a lo sumo existe un nodo de multiplicidad n + 1.
  • 94. 5.12. Ejercicios 75 Usando la definici´on recursiva de las diferencias divididas, la hip´otesis de inducci´on y la f´ormula de la derivada para B-splines obtenemos d du (an+1 − a0)[a0 . . . an+1](a − u)n + = −n(an+1 − a0)[a0 . . . an+1](a − u)n−1 + = n([a0 . . . an](a − u)n−1 + − [a1 . . . an+1](a − u)n−1 + ) = n an − a0 Nn−1 0 − n an+1 − a1 Nn−1 1 = d du Nn 0 (u) , lo cual prueba nuestra aseveraci´on. 3 5.12 Ejercicios 1 Considere un spline s(u) c´ubico C2 sobre la secuencia de nodos simples a0, . . . , am. Muestre que cualquier funci´on C2 f(u) = s(u) que interpola s en todos los nodos y la derivada en u = a0 y u = am tiene mayor energ´ıa que s, es decir, am a0 |f′′ (u)|2 du am a0 |s′′ (u)|2 du . Para la soluci´on puede consultar cualquier libro de an´alisis num´erico, por ejemplo [Boehm Prautzsch ’93, p. 125f]. 2 Dado un spline s(u) = m i=0 ciNn i (u) sobre la secuencia de nodos a0, . . . , am+n+1, muestre que am+n+1 a0 s(u)du = m i=0 ai+n+1 − ai n + 1 ci . 3 Bosqueje los B-splines c´ubicos sobre las siguientes secuencias de no- dos: 0, 0, 0, 0, 1; 0, 0, 0, 1, 2; 0, 0, 1, 2, 3 y 0, 1, 2, 3, 4. Despliege sus pol´ıgonos de B´ezier y calcule las ordenadas de los puntos de B´ezier. 4 Use polinomios sim´etricos para probar la identidad de Marsden (u − a)n = i (ai+1 − a) . . . (ai+n − a)Nn i (u) . 5 Use la f´ormula para la derivada de un B-spline para deducir por inducci´on, la f´ormula de recursi´on de de Boor, Mansfield y Cox.
  • 95. 76 5. Representaci´on por B-splines 6 Use la regla de Leibniz para el producto de dos funciones f = gh, [ai . . . ai+k]f = i+k r=i ([ai . . . ar]g)([ar . . . ai+k]h) , para obtener la recursi´on de de Boor, Mansfield y Cox. V´ease tambi´en [de Boor ’72]. 7 Sea s(u) = 3 i=0 ciN3 i el spline definido sobre los nodos 0, 1, 2, . . . , 7 dado por c0, . . . , c3 = 4, 7, −2, 1. a) Bosqueje s[3, 4] y su pol´ıgono de control. b) Calcule s, s′ , s′′ , s′′′ en u = 3. c) Calcule la representaci´on monomial de s(u) sobre el intervalo [3, 4]. d) Calcule la representaci´on de B´ezier de s(u) sobre [3, 4]. 8 Demuestre que si un polinomio sim´etrico y a multiaf´ın puede calcularse a partir de n + 1 puntos p[ai,1 . . . ai,n], i = 0, . . . , n, por combinaciones afines como en el algoritmo de de Boor, entonces existen n´umeros reales a1, . . . , a2n tales que ai,j = ai+j.
  • 96. 6 T´ecnicas de B-splines 6.1 Inserci´on de nodos — 6.2 El algoritmo de Oslo — 6.3 Convergencia por inserci´on de nodos — 6.4 Un algoritmo para la elevaci´on de grado — 6.5 Una f´ormula de elevaci´on de grado — 6.6 Convergencia por elevaci´on de grado — 6.7 Interpolaci´on — 6.8 Interpolaci´on con splines c´ubicos — 6.9 Ejercicios La mayor´ıa de los algoritmos para curvas de B´ezier tienen una generalizaci´on para splines. Un ejemplo es la t´ecnica de inserci´on de nodos, la cual puede emplearse para la elevaci´on de grado, para la implementaci´on del algoritmo de Boor y tambi´en en el proceso de subdivisi´on. En particular, el algoritmo de de Casteljau puede interpretarse como un caso de inserci´on de nodos m´ultiples. 6.1 Inserci´on de nodos Considere un spline, como en 5.7 s(u) = i ciNn i (u) sobre la secuencia de nodos (ai). Sea (ˆaj) un refinamiento de (ai), esto es, la secuencia de nodos (ˆaj) contiene a (ai), como una subsecuencia. V´ease la Figura 6.1. a1 ˆa1 = ˆa2 a2 ˆa3 a3 ˆa4 a4 ˆa6ˆa5 ................................................ inicial refinada Figura 6.1: Refinamiento de una secuencia de nodos. Sea ˆNj(u) el B-spline de grado n sobre ˆaj, . . . , ˆaj+n+1, entonces s(u) se puede rescribir como s(u) = j ˆcj ˆNn j (u) .
  • 97. 78 6. T´ecnicas de B-splines La mejor manera de calcular los ˆcj es a trav´es de la inserci´on repetida de nodos simples, esto es: se inserta un nodo en cada paso [Boehm ’80]. Supongamos entonces que (ˆaj) se obtiene a partir de (ai) por inserci´on de un s´olo nodo ˆa. Desplazando el ´ındice de ser necesario, podemos suponer que ˆa = ˆan+1 y an ≤ ˆa an+1. Como consecuencia inmediata del teorema fundamental de 5.5 se tiene ˆcj =    cj para j ≤ 0 cj−1 · (1 − αj) + cj · αj para j = 1, 2, . . . , n cj−1 para j ≥ n + 1 , donde αj = ˆa − aj aj+n − aj es la coordenada local de ˆa con respecto al soporte [aj, aj+n] de ˆNn j . La Figura 6.2 muestra una ilustraci´on para n = 3. Figura 6.2: Inserci´on de un nuevo nodo. Comparando el proceso de inserci´on de nodos con el algoritmo de de Boor de 5.4, se observa que los nuevos puntos de control c1, . . . , cn son los puntos c1 1, . . . , c1 n que aparecen en la segunda columna del arreglo triangular de de Boor [Boehm ’80]. Es m´as, los puntos c1 1, . . . , cr r, . . . , cr n, . . . , c1 n del esquema de de Boor coinciden con los nuevos puntos de control de s cuando ˆa es insertado r veces.
  • 98. 6.2. El algoritmo de Oslo 79 En particular, para r = n el algoritmo de de Boor coincide con la inserci´on repetida n veces del nodo ˆa. Observaci´on 1: Si todos los nodos (ˆai) en la secuencia refinada tienen multiplicidad n, entonces el pol´ıgono de control ci representa el pol´ıgono de B´ezier de s. Esto es consecuencia de la Observaci´on 1 de 5.3. Por lo tanto, si se incrementa hasta n la multiplicidad de cada nodo de un spline, se genera la representaci´on de B´ezier del spline. Esto fu´e observado por primera vez por Cohen [Cohen et al. ’80]. Observaci´on 2: Un B-spline se puede expresar como una combinaci´on lineal de B-splines sobre una secuencia de nodos refinada (ˆaj). La f´ormula correspondiente Nn i (u) = j αij ˆNn j (u) fue dada por de Boor [de Boor ’76b]. Los coeficientes αij se denominan B- splines discretos con nodos ˆaj. Esta denominaci´on fue acu˜nada por Schu- maker [Schumaker ’73] para el caso en que los ˆaj son nodos equidistantes. Observaci´on 3: En particular, si s(u) = Nn j (u) es un B-spline, entonces el proceso anterior de inserci´on de nodos implica la siguiente identidad Nn j (u) =    ˆNn j (u) para j ≤ 0 αj ˆNn j (u) + (1 − αj+1) ˆNn j+1(u) para j = 1, . . . , n . ˆNn j+1 para j ≥ n + 1 Esta identidad representa la eliminaci´on de nodos para B-splines [Boehm ’80]. 6.2 El algoritmo de Oslo Aunque usualmente la inserci´on repetida de nodos simples es en general el mejor m´etodo [Lyche ’93] para calcular los puntos de control con respecto a cualquier refinamiento(ˆaj) de (ai), tambi´en se puede calcular cada punto cj a trav´es de la generalizaci´on del algoritmo de de Boor considerada en la Observaci´on 5 de 5.5. Para calcular cj se requiere alg´un intervalo internodal [ak, ak+1] cuya inter- secci´on con el soporte [ˆaj, ˆaj+n+1] de ˆNn j sea no vac´ıa, tal como se ilustra en la Figura 6.3. Entonces cada punto de control ˆcj = sk[ˆaj+1 . . . ˆaj+n] puede calcularse usando el algoritmo generalizado de de Boor. Esta relaci´on de recurrencia para cj fue descubierta por Cohen, Lyche y Riesenfeld en Oslo en 1980, y se denomina el algoritmo de Oslo [Cohen et al. ’80]. Note
  • 99. 80 6. T´ecnicas de B-splines que las combinaciones afines en el algoritmo de Oslo en general pueden ser no convexas. En consecuencia se requieren mejoras adicionales para evitar combinaciones no convexas. Figura 6.3: Elecci´on de ak para la construcci´on de cj. 6.3 Convergencia por inserci´on de nodos En esta secci´on generalizamos las ideas presentadas en 3.3. Considere el spline s(u) = i ciNn i (u) sobre la secuencia de nodos (ai). Entonces a trav´es de un proceso de inserci´on de nodos que finalmente se hacen densos, la secuencia de los correspondientes pol´ıgonos de control converge al spline s. La velocidad de convergencia es cuadr´atica con relaci´on al m´aximo de las distancias internodales. Sea [a, b] un intervalo, h = max{∆ai|[ai, ai+1] ⊂ [a, b]}, y sean γi = (ai+1 + · · · + ai+n)/n las abscisas de Greville. Entonces se tiene max s(γi) − ci = O(h2 ) , donde el m´aximo se toma sobre todos los i tales que [ai+1, ai+n] ⊂ [a, b]. Para la demostraci´on [Schaback ’93] consideramos un punto de control ci = sr[ai+1 . . . ai+n], donde sr es el polinomio sim´etrico de s restringido al intervalo internodal [ar, ar+1) que contiene a γi. Como ∂ ∂u1 sr[u . . . u] = · · · = ∂ ∂un sr[u . . . u] la expansi´on de Taylor de sr alrededor de [γi . . . γi] tiene la forma ci = sr[γi . . . γi] + i+n j=i+1 (aj − γi) ∂ ∂u1 sr[γi . . . γi] + O(h2 ) = s(γi) + O(h2 ) , lo cual prueba la aseveraci´on. 3
  • 100. 6.4. Un algoritmo para la elevaci´on de grado 81 6.4 Un algoritmo para la elevaci´on de grado Todo spline de grado n s(u) = i ciNn i (u) sobre una secuencia de nodos (ai) tambi´en puede rescribirse en t´erminos de B-splines Nn+1 i de grado n + 1, s(u) = i di ˆNn+1 i (u) sobre la secuencia de nodos (ˆai) obtenida a partir de (ai) elevando la multi- plicidad de cada nodo en uno, tal como se ilustra en la Figura 6.4. Figura 6.4: Secuencia de nodos para la elevaci´on de grado. El teorema fundamental de 5.5 y la f´ormula (2) de la Secci´on 3.11 implican que dj = sr[ˆaj+1 . . . ˆaj+n+1] = 1 n + 1 n+1 k=1 sr[ˆaj+1 . . . ˆa∗ k . . . ˆaj+n+1] donde sr[u1 . . . ur] y sr[u1 . . . un+1] representan las formas polares en n y n + 1 variables, respectivamente, de un segmento polin´omico del spline s(u) que depende de dj. Cada punto sr[ˆaj+1 . . . ˆa∗ k . . . ˆaj+n] se puede calcular por medio del algoritmo de de Boor generalizado en la Observaci´on 5 de la Secci´on 5.5, requiri´endose de la inserci´on de a lo sumo [(n − 1)/2] nodos. Para el caso de un spline c´ubico uniforme, este algoritmo fue descrito por primera vez en [Ramshaw ’87, pp. 109f] para dos segmentos y en [Seidel ’89] para cinco segmentos. Observaci´on 4: El n´umero de operaciones para este algoritmo es de orden n2 por cada punto de control ˆci. Es posible reorganizarlo con m´as eficiencia resultando de orden n, ver [Prautzsch Piper ’91, Liu ’97, Trump ’01]. Observaci´on 5: En [Prautzsch ’84a, Cohen et al. ’85, Piegl Tiller ’94] se pueden encontrar otros algoritmos de orden n2 .
  • 101. 82 6. T´ecnicas de B-splines 6.5 Una f´ormula de elevaci´on de grado Un B-spline de grado n se puede expresar en t´erminos de B-splines de grado n + 1. Denotemos por Nn (u|ai . . . ai+n+1) un B-spline de grado n sobre los nodos ai, . . . , ai+n+1. Con esta notaci´on se tiene la f´ormula (1) Nn (u|a0 . . . an+1) = 1 n + 1 n+1 i=0 Nn+1 (u|a0 . . . ai ai . . . an+1) , la cual fue descubierta por C. A. Micchelli [Micchelli ’79]. La Figura 6.5 ilustra el ejemplo para n = 1 N1 (u|abc) = 1 3 (N2 (u|aabc) + N2 (u|abbc) + N2 (u|abcc)) . Figura 6.5: F´ormula de elevaci´on de grado. Para la demostraci´on empleamos la t´ecnica de [Lee ’94] y utilizamos dife- rencias divididas. Si f(a) = (a − u)n+1 + la f´ormula de elevaci´on de grado se expresa como [a0 . . . an+1]f′ = n+1 i=0 [a0 . . . ai ai . . . an+1]f . Esta f´ormula es v´alida para cualquier funci´on diferenciable f, lo cual veri- ficamos por inducci´on. Para n = −1 la f´ormula es v´alida por definici´on de diferencias divididas [a0]f′ = f′ (a0) = [a0 a0]f . Para n ≥ 0 usamos la relaci´on de recurrencia para diferencias divididas (vea
  • 102. 6.6. Convergencia por elevaci´on de grado 83 4.3), la hip´otesis de inducci´on y luego otra vez esta relaci´on: [a0 . . . an+1]f′ = 1 an+1 − a0 ([a1 . . . an+1]f′ − [a0 . . . an]f′ ) = 1 an+1 − a0 n i=1 ([a1 . . . ai ai . . . an+1]f − [a0 . . . ai ai . . . an]f) + [a1 . . . an+1 an+1]f − [a0 . . . an+1]f + [a0 . . . an+1]f − [a0 a0 . . . an]f = n+1 i=0 [a0 . . . ai ai . . . an+1]f . 3 6.6 Convergencia por elevaci´on de grado Una repetida elevaci´on de grado genera una secuencia de pol´ıgonos de con- trol que converge al spline. Considere un spline s(u) de grado n, cuya repre- sentaci´on de grado m s(u) = ciNm i (u) , m n , sobre la secuencia de los nodos ai ha sido generada por elevaci´on de grado. Los soportes de los Nm i tienen longitud no mayor que h := sup |ai+n+1 − ai|. Sean γi := 1 m (ai+1 + · · · + ai+m) las abscisas de Greville, entonces si h y todas las derivadas de s son acotadas, se tiene sup ci − s(γi) = O(1/m) . Demostraci´on: Procedemos como en 6.3 y consideramos un punto de con- trol, por ejemplo c0 = s[a1 . . . am], donde s[u1 . . . um] denota la forma polar de s sobre un intervalo internodal adecuado. Por la Observaci´on 9 en 3.9, ∂k ∂ui1 . . . ∂uik s[γ0 . . . γ0] = εi m . . . (m − k + 1) s(k) (γ0) , donde εi = 1 si todas las coordenadas de i = (i1, . . . , ik) son distintas y εi = 0 en cualquier otro caso. Entonces la expansi´on de Tylor de s[a1 . . . am] alrededor de [γ0 . . . γ0] est´a dada por c0 = s(γ0) + n k=1 m i1=1 . . . m ik=1 εi k! (ai1 − γ0) . . . (aik − γ0) m . . . (m − k + 1) s(k) (γ0) .
  • 103. 84 6. T´ecnicas de B-splines Utilizando el hecho que εi = 0 para mk −(m . . . (m−k+1))´ındices i distintos y teniendo en cuenta que m i1=1 . . . m ik=1(ai1 − γ0) . . . (aik − γ0) = 0 se obtiene c0 − s(γ0) ≤ n k=2 hk k! mk − (m . . . (m − k + 1)) m . . . (m − k + 1) sup sk (u) , lo que finaliza la demostraci´on. 3 6.7 Interpolaci´on Los splines se utilizan frecuentemente para resolver problemas de interpo- laci´on. En particular es de inter´es la unicidad del interpolante. Sean Nn 0 , . . . , Nn m B-splines de grado n sobre la secuencia de nodos a0, . . . , am+n+1 y sean p0, . . . , pm puntos que deben ser interpolados en las abscisas u0 . . . um. Si deseamos hallar un spline s = m i=0 ciNn i tal que s(uj) = m i=0 ciNn i (uj) = pj , tenemos que resolver el siguiente sistema lineal (2)     Nn 0 (u0) · · · Nn m(u0) ... ... Nn 0 (um)· · · Nn m(um)         ct 0 ... ct m     =     pt 0 ... pt m     , que abreviamos: NC = P. N´otese que este sistema lineal consiste de va- rios sistemas, que pueden ser resueltos independientemente, uno para cada columna de C. La matriz N se denomina matriz de colocaci´on. El Teorema Schoenberg-Whitney de 1953 establece cuando el problema de interpolaci´on tiene soluci´on ´unica [Schoenberg Whitney ’53] La matriz N es invertible si y s´olo si tiene diagonal positiva, i.e. Nn i (ui) = 0 para todo i. Note que si las Nn i son continuas entonces la condici´on Nn i (ui) = 0 es equiva- lente a que ui ∈ (ai, ai+n+1). Para probar el teorema, nos basamos en [Powell ’81]. Sea Nn i (ui) = 0 para alg´un i y supongamos que ai+n+1 ≤ ui. Entonces Nn 0 (uj) = . . . = Nn i (uj) = 0 para todo j ≥ i ,
  • 104. 6.7. Interpolaci´on 85 N = @ @ @ @ @@ @ @ @ @ @@ i i .0 · · · 0 ... ... 0 · · · 0 utilizando un razonamiento de algebra lineal se tiene que N es singular. An´alogamente N es tambi´en singular si ui ≤ ai. Para el rec´ıproco, supongamos que N es singular y sea c una columna soluci´on no trivial del sistema Nc = o . Supongamos primero que ninguna secuencia de n + 1 coordenadas consecu- tivas de c consiste de ceros. Entonces la propiedad de variaci´on decreciente (vea el Ejercicio 4), implica que el spline m i=0 ciNn i tiene a lo sumo m ceros en (a0, am+n+1) si a0 an−1 o en [a0, am+n+1] si a0 = . . . = an−1. Por lo tanto por lo menos un ui yace fuera del soporte del correspondiente B-spline Nn i . Si cr = · · · = cr+n = 0 , entonces se pueden considerar los splines r−1 i=0 ciNn i y m i=r+n+1 ciNn i los cuales son cero en u0, . . . , ur−1 y en ur+n+1, . . . , um, respectivamente. Observaci´on 6: Una soluci´on del anterior sistema NC = P podr´ıa no ser afinmente invariante. La invariancia af´ın se satisface si N es regular y si cada una de las fila suma uno, esto es, si Ne = e, donde e = [1 . . . 1]t . La condici´on Ne = e implica que e = N−1 e, lo cual significa que los puntos ci dados por C = N−1 P son combinaciones afines de los pi. La condici´on sobre las filas se satisface si an ≤ ui am+1, Observaci´on 7: Se dice que la matrix N es totalmente positiva, vea [Karlin ’68, de Boor ’76a].
  • 105. 86 6. T´ecnicas de B-splines Figura 6.6: Donde N0, . . . , Nm suman uno. 6.8 Interpolaci´on con splines c´ubicos La matriz de colocaci´on se puede calcular f´acilmente para el caso c´ubico, n = 3, sobre los nodos ai = i. El B-spline N3 0 (u) con su pol´ıgono de control se muestra en la Figura 6.7. Figura 6.7: El B-spline c´ubico N3 0 (u) con nodos 0,1,2,3,4. Escogiendo las abscisas, ui = 2, 3, 4, . . . , (m+1), (m+2) el sistema lineal (2) se puede escribir 1 6           4 1 1 4 1 · · · 1 4 1 1 4                     ct 0 ct 1 · · · ct m−1 ct m           =           pt 0 pt 1 · · · pt m−1 pt m           . Note sin embargo que los elementos de la primera y ´ultima fila no suman 1. Por lo tanto, una mejor escogencia de las abscisas de interpolaci´on, que conduzca a un interpolante invariante respecto a transformaciones afines, es la siguiente: ui = 3, (3 + 1 2 ), 4, 5, . . . , m, (m + 1 2 ), (m + 1) .
  • 106. 6.8. Interpolaci´on con splines c´ubicos 87 El sistema lineal (2) en este caso est´a dado por: 1 6               1 4 1 a b b a 1 4 1 · · · 1 4 1 a b b a 1 4 1                             ct 0 ct 1 ct 2 · · · ct m−2 ct m−1 ct m               =               pt 0 pt 1 pt 2 · · · pt m−2 pt m−1 pt m               , donde a = 1/8 y b = 23/8, como se desprende de la Figura 6.7. Otra alternativa podr´ıa ser interpolar los puntos pi en ui = i + 2 para i = 1, . . . , m − 1 y derivadas prefijadas a y b en u1 y um+1, respectivamente. El sistema lineal que resulta es 1 6           −3 0 3 1 4 1 · · · 1 4 1 −3 0 3                     ct 0 ct 1 · · · ct m−1 ct m           =           at pt 1 · · · pt m−1 bt           . Esta soluci´on define un spline con derivadas prescritas en los extremos y se denomina spline empotrado. La Figura 6.8 ilustra un ejemplo. Figura 6.8: Spline empotrado c´ubico. En algunas aplicaciones son de inter´es los splines peri´odicos s(u) = i ciN3 i (u) = s(u + m). Entonces ci+m = ci y se tiene un sistema lineal
  • 107. 88 6. T´ecnicas de B-splines c´ıclico 1 6           4 1 1 1 4 1 · · · 1 4 1 1 1 4                     ct 1 · · · ct m           =           pt 1 · · · pt m           . La Figura 6.9 presenta un ejemplo. Figura 6.9: Spline c´ubico peri´odico. 6.9 Ejercicios 1 Desarrolle un algoritmo de intersecci´on para curvas splines, generalizando el presentado en 3.7. 2 Considere un spline c´ubico plano s(u) = 3 i=0 ciN3 i (u) sobre los nodos 0, 1, . . . , 7 para u ∈ [3, 4]. ¿Para qu´e posiciones de c3 respecto a c0, c1 y c2 el segmento s[3, 4] de este spline tiene una c´uspide? V´ease tambi´en el Ejercicio 7 de 2.10. 3 Pruebe que los B-splines tambi´en verifican la propiedad de variaci´on de- creciente, introducida en 3.8. 4 Demuestre a partir de la propiedad de variaci´on decreciente que una funci´on spline s(u) = m i=0 ciNn i es id´enticamente igual a cero en alg´un intervalo internodal (ai, ai+1), para i ∈ {0, . . . , m + n}, o tiene a lo sumo m + 1 ceros en el intervalo I. Donde I est´a definido como: I = (a0, am+n+1) si a0 = . . . = an−1 e I = (a0, . . . , an+m+1) en caso contrario, vea [Schumaker ’81, Teorema 4.76].
  • 108. 6.9. Ejercicios 89 5 Considere las representaciones de B´ezier de grado n y de grado m de una curva polin´omica b(u) = n i=0 biBn i (u) = m i=0 ciBm i (u), donde n m. Sean Nn 0 , . . . , Nn n y Mn 0 , . . . , Mn m los B-splines de grado n sobre los nodos: 0, 1, . . . , n, m + 1, m + 2, . . . , m + n + 1 y 0, 1, 2, . . . , m + n + 1, respectivamente. Demuestre n i=0 biNn i = m i=0 ciMn i , es decir, una representaci´on de B´ezier de grado mayor puede ser calculada a partir de la de grado menor por inserci´on de nodos [Trump Prautzsch ’96]. 6 Determine y dibuje los puntos de B´ezier de los splines de la Figuras 6.8 y 6.9. 7 Sea a0, . . . , a4 una secuencia de nodos y sea mi el n´umero de nodos que coinciden con ai. Para cada posible secuencia m0, . . . , m4 considere la secuencia de nodos a0, . . . , a4 y dibuje los puntos de B´ezier del B-spline c´ubico correspondiente. 8 Describa un algoritmo de elevaci´on de grado para splines que utilice poli- nomios sim´etricos. V´ease tambi´en 3.11. 9 Sea s(u) un spline funcional que interpola los valores p0, . . . , pm. Si alguna de las filas de la matriz de colocaci´on N no suma uno entonces el spline que interpola qi = pi + h difiere de s(u) + h. 10 Use la identidad (u1 − u2)[u1u2u3 . . . un]f + (u2 − u0)[u0u2u3 . . . un]f + (u0 − u1)[u0u1u3 . . . un]f = 0 para diferencias divididas para obtener las f´ormulas de eliminaci´on y de inserci´on de nodos [Boehm ’80].
  • 110. 7 Curvas suaves 7.1 Contacto de orden r — 7.2 Parametrizaci´on por longitud de arco — 7.3 Gamma splines — 7.4 B-splines gamma — 7.5 Nu-splines — 7.6 El marco de Frenet — 7.7 Continuidad de Frenet — 7.8 Osculantes y polinomios sim´etricos — 7.9 Interpretaci´on geom´etrica del teorema fundamental — 7.10 Splines con matrices de conexi´on arbitrarias — 7.11 Inserci´on de nodos — 7.12 Bases de splines — 7.13 Ejercicios Hay varias maneras de definir continuidad geom´etrica. La condici´on de Cr - continuidad de St¨ark establece, desde el punto de vista de construcci´on, el criterio m´as simple para continuidad geom´etrica de curvas construidas con segmentos de B´ezier. Un criterio m´as general es el contacto GCr de orden r. Una curva es GCr si admite una parametrizaci´on r-veces diferenciable. Una noci´on todav´ıa m´as general, denominada continuidad de Frenet se basa en invariantes geom´etricos de orden superior tales como curvaturas, torsi´on, etc. Los polinomios sim´etricos proveen una herramienta elegante para el estudio de la continuidad geom´etrica de curvas polin´omicas a trazos. La continuidad Cr es un concepto cl´asico que permite un esquema sencillo (este es el caso de los B-spline) para construir curvas Cr . Adem´as, es la definici´on adecuada cuando la parametrizaci´on de la curva es relevante, como en el caso de: construcci´on de superficies que interpolen curvas y la animaci´on de objetos a lo largo de trayectorias, en que el par´ametro corresponde al tiempo. Un ejemplo es la parametrizaci´on de trayectorias para m´aquinas de control num´erico. Sin embargo, no es la definici´on adecuada, por ser innecesariamente restrictiva, si estamos interesados s´olo en la forma de la curva (el lugar geom´etrico que define), pues la continuidad Cr depende de la parametrizaci´on. Lo anterior justifica la introducci´on del contacto GCr el cual es independiente de la parametrizaci´on y es ´util para la modelaci´on de formas. Una aplicaci´on pr´actica de la continuidad de Frenet es la definici´on de orientaciones de s´olidos r´ıgidos mediante el triedro de Frenet asociado a una trayectoria. Si se desean aceleraciones continuas basta con continuidad F3 en la base de Frenet.
  • 111. 92 7. Curvas suaves 7.1 Contacto de orden r Considere dos curvas p(s) y q(t), r veces diferenciables en s = t = 0. Decimos que p y q tienen contacto de orden r en 0 si ˙q(0) = o y si existe una reparametrizaci´on s(t) con s(0) = 0 tal que p(t) y q(t) = q(s(t)) tienen las mismas derivadas hasta orden r en t = 0. El contacto de orden r tambi´en se denomina conexi´on general Cr y se denota por GCr . Como en casos anteriores denotamos las derivadas con respecto a s y t con punto y ap´ostrofe, respectivamente. Por la regla de la cadena, el contacto de orden r en s = t = 0 significa: p = q p′ ˙s = ˙q p′ ¨s + p′′ ˙s2 = ¨q p′ ˙¨s + 3p′′ ˙s¨s + p′′′ ˙s3 = ˙¨q . ... ... Usando notaci´on matricial [p p′ . . . p(r) ]               1 0 0 0 · · · 0 α β γ · · · α2 3αβ · · · α3 ... αr               = [q ˙q . . . q(r) ] o en forma abreviada PC = Q , donde α = ˙s = 0, β = ¨s, γ = ˙¨s , etc. Las matrices P y Q′ se denominan jets de orden r de p y q en t = 0 y s = 0, respectivamente. La matriz C se denomina la matriz de conexi´on de orden r. En particular, sean p y q curvas polin´omicas de grado n ≥ r con puntos de B´ezier pi y qi, i = 0, . . . , n, respectivamente. Entonces 2.4 implica que los r-jets P y Q en pn y q0 est´an determinados por los ´ultimos y primeros r + 1 puntos B´ezier, respectivamente. El rec´ıproco tambi´en es cierto. Por consiguiente el contacto de orden r se puede expresar en t´erminos de los puntos de B´ezier como [pn . . . pn−r]C = [q0 . . . qr] ,
  • 112. 7.1. Contacto de orden r 93 donde C es una matriz triangular superior con elementos en la diagonal cii = (−α)i = 0, i = 0, . . . , r. N´otese que C depende de n. Observaci´on 1: Dada una reparametrizaci´on s(t) siempre existe una repara- metrizaci´on polin´omica, equivalente hasta la derivada r-´esima: s(t) = st + ¨s 2! t2 + · · · + (r) s r! tr . En particular, cualquier conexi´on GC1 se puede trasformar en una conexi´on C1 usando el cambio de par´ametro s = αt. Observaci´on 2: Similarmente, una conexi´on GC2 puede trasformarse en una conexi´on C2 simple por medio de la trasformaci´on cuadr´atica s = αt + (β/2)t2 . N´otese que la conexi´on C2 simple tambi´en se puede obtener apli- cando una trasformaci´on proyectiva, vea por ejemplo [Degen ’88]. s = α2 t α − (β/2)t . Observaci´on 3: Si s = t, entonces ¨s = · · · = (r) s = 0. Por lo tanto obtenemos la condici´on de St¨ark tal como se ilustra en la Figura 7.1 para r = n = 3 con los puntos de B´ezier pi y qj de p(s) y q(t) definidas sobre [−1, 0] y [0, 1], respectivamente Figura 7.1: Contacto C3 de St¨ark. Observaci´on 4: Cuando se modifica β = ¨s entonces q2 se mantiene a lo largo de una paralela a la tangente que pasa por q0 y q1 como se ilustra en la Figura 7.2. Entonces p y q tienen contacto GC2 en pn = q0 si las distancias g y h de pn−2 y q2 a la tangente q0q1 satisfacen g : h = 1 : α2 , vea [Farin ’82, Boehm ’85]. Observaci´on 5: Para contactos de orden superior se tiene una situaci´on similar: si modificamos (n) s entonces qn se mueve a lo largo de una paralela a la tangente q0q1.
  • 113. 94 7. Curvas suaves Figura 7.2: Contacto GC2 de Farin. 7.2 Parametrizaci´on por longitud de arco Sea x(t) una parametrizaci´on diferenciable de la curva x. Entonces s(t) = t 0 ˙x dt es la longitud de arco del segmento x[0, t] y x′ = 1 , donde x′ = d ds x(t(s)) denota la derivada de x con respecto a la longitud de arco y t(s) es la inversa de s(t). Adem´as, si x(t) es regular, es decir, ˙x = o, entonces la longitud de arco s(t), su inversa t(s) y x(s) = x(t(s)) son diferenciables hasta el mismo orden que x(t), pues ˙s = ˙x . En otras palabras, la parametrizaci´on con respecto a la cual una curva alcanza su m´axima suavidad es la longitud de arco. Por lo tanto dos curvas regulares p(s) y q(s) parametrizadas por longitud de arco tienen contacto de orden en r en s = 0 si x(s) = p(s) si s ≤ 0 q(s) si s 0 es r veces diferenciable en s = 0. En consecuencia la matriz de una conexi´on de dos curvas parametrizadas por longitud de arco es la identidad. 7.3 Gamma splines Sea s(u) una curva c´ubica por trozos consistente de m segmentos con conexi´on GC2 . Denotamos por b3i, . . . , b3i+3 a los puntos de B´ezier del segmento i-
  • 114. 7.3. Gamma splines 95 ´esimo, es decir, s(u) = 3 j=0 b3i+jB3 j (t) , i = 0, . . . , m − 1 , donde u = ai(1 − t) + ai+1t y t ∈ [0, 1]. Supondremos en las pr´oximas tres secciones sobre γ-splines y ν-splines que los nodos ai se han escogido de manera tal que s(u) es continuamente dife- renciable, esto es: s′ (ai−) = s′ (ai+), o sea (b3i+1 − b3i)∆ai−1 = (b3i − b3i−1)∆ai donde ∆j = aj+1 − aj, tal como se ilustra en la Figura 3.8. Como los segmentos de s tienen contacto GC2 , los cuatro puntos b3i−2, b3i−1, b3i+1, b3i+2 son coplanares, para todo i. Denotamos por ci y di los v´ertices exteriores de este cuadril´atero, tal como se ilustra en la Figura 7.3 para i = 1. El cuadril´atero se denomina A-marco generalizado o γ-A-marco. Figura 7.3: A-marco generalizado. La Figura 7.2 indica que existe un n´umero γ distinto de cero, tal que ε = γ∆0 y δ = γ∆1 . Una curva c´ubica por trozos que satisface las condiciones de conexi´on GC2 con γ finito se denomina un γ-spline. Por lo tanto, un γ-spline est´a definido por puntos de control ci, n´umeros γi = 0 asociados y nodos ai [Boehm ’85]. La construcci´on de su representaci´on de B´ezier se ilustra en la Figura 7.4. Note que los γi podr´ıan ser negativos. Observaci´on 6: La raz´on λ : µ en la Figura 7.3 coincide con (∆2 0 −∆2 1) : ∆2 1. Los puntos c1 o d1 yacen en el infinito (o en la recta ideal), es decir, est´an
  • 115. 96 7. Curvas suaves Figura 7.4: Un γ-spline. infinitamente distantes si γ = ∞ o µ = ∞, respectivamente. N´otese adem´as que la raz´on λ : µ no depende de γ. Observaci´on 7: En la Secci´on 7.7, verificaremos que una curva GC2 tiene curvatura continua. Observaci´on 8: Un γ-spline con todos los γ´s iguales a 1 es un spline c´ubico C2 , tal como se discuti´o en 5.1. Ver la Figura 5.2. 7.4 B-splines gamma Un γ-spline s(u) depende afinmente de sus puntos de control ci. Por lo tanto se puede escribir como una combinaci´on af´ın de estos s(u) = i ciMi(u) , donde los Mi(u) forman una base de γ-splines con nodos ai, . . . , ai+3 y valores γ asociados γi, . . . , γi+3. Las ordenadas de B´ezier de Mi se pueden obtener por medio de la construcci´on de 7.3 en dimensi´on uno donde ci = 1 y todos los dem´as cj son iguales a cero. Las abscisas de B´ezier subdividen uniformente los intervalos internodales, como se muestra en la Observaci´on 10 de 2.8. La construcci´on del γ-B-spline M2 se ilustra en la Figura 7.5.
  • 116. 7.5. Nu-splines 97 Figura 7.5: Un γ-B-spline. Observaci´on 9: Los γ-B-splines son no negativos s´olo si todos los γ’s son positivos. Si alg´un γi es negativo, entonces obtenemos γ-B-splines con valores negativos y un γ-spline construido con tales γ-B-splines en general no yace en la c´apsula convexa de sus puntos de control ci. Observaci´on 10: De manera similar se pueden construir splines cu´articos con torsi´on continua, ver [Boehm ’87]. En t´erminos pr´acticos si γi tiende a cero entonces la curva es atraida hacia el punto Ci. 7.5 Nu-splines Como un γ-spline s(u) es GC2 , entonces de acuerdo con 7.1, existen cons- tantes νi tales que (1) s′′ (ai+) = s′′ (ai−) + νis′ (ai−) . En particular para cualquier j tenemos M′′ j (ai+) = M′′ j (ai−) + νiM′ j(ai−) . Usando la representaci´on de B´ezier de los Mi es f´acil calcular los νi [Boehm ’85]: νi = 2 1 ∆ai−1 + 1 ∆ai 1 γi − 1 . Los splines c´ubicos GC2 que satisfacen la condici´on (1) se denominan ν- splines. Los coeficientes νi se denominan tensiones. Los γ-spline fueron introducidos por Nielson en 1974 [Nielson ’74], para interpolar puntos s(ai) en el plano, por medio de curvas cuyo ajuste se pueda controlar.
  • 117. 98 7. Curvas suaves 7.6 El marco de Frenet Una definici´on de continuidad menos restrictiva que el contacto GCr , adem´as v´alida en espacios de dimensi´on arbitraria, se basa en el marco de Frenet. Sea x(s) una curva regular en IRd parametrizada por longitud de arco y supongamos que sus derivadas hasta orden d son linealmente independientes. En consecuencia, la curva x no est´a contenida en ning´un subespacio af´ın de IRd . El marco de Frenet de x(s) es el sistema ortonormal de orientaci´on positiva f1, . . . , fd obtenido de x′ , . . . , x(d) por el proceso de Gram-Schmidt de manera tal que ft i x(i) 0 para cada i = 1, . . . , d − 1. El vector f1 = x′ es el vector tangente de x. Para d = 3 f2 se denomina el vector normal y f3 el vector binormal de x. La Figura 7.6 ilustra esta definici´on. Figura 7.6: El marco de Frenet. La derivada del marco de Frenet, la cual mide el cambio local de la curva con respecto a la longitud de arco, est´a dada por las f´ormulas de Frenet [f′ 1 . . . f′ d] = [f1 . . . fd]          0 −κ1 κ1 0 −κ2 κ2 0 ... −κd−1 κd−1 0          , donde los κi est´an dados por, κ1 = ft 2x′′ κ1κ2 = ft 3x′′′ κ1κ2κ3 = ft 4x′′′′ etc.
  • 118. 7.7. Continuidad de Frenet 99 Vea por ejemplo [Carmo ’76]. Los κi son diferentes de cero y tambi´en se pueden calcular utilizando las siguientes f´ormulas κ1 = vol2[x′ x′′ ] κ2 1κ2 = vol3[x′ x′′ x′′′ ] κ3 1κ2 2κ3 = vol4[x′ x′′ x′′′ x′′′′ ] etc. Los escalares κi se denominan curvaturas y son invariantes geom´etricos de la curva x, es decir, s´olo dependen de su forma. La primera de ellas, κ1 es la curvatura usual, y la segunda κ2 es la torsi´on de x. V´ease los Ejercicios 1, 2 y 3 para una interpretaci´on geom´etrica de κ1 y κ2. 7.7 Continuidad de Frenet Una curva continua x(s) en IRd se dice Frenet continua de orden r si los primeros r vectores f1, . . . , fr del marco de Frenet y las primeras r − 1 curvaturas κ1, . . . , κr−1 de x son continuas. La continuidad de Frenet de orden r, est´a definida s´olo para r ≤ d. Sean x′ −, . . . , x (r) − y x′ +, . . . , x (r) + las derivadas por la izquierda y por la derecha de x en s = s0. Entonces se tiene: la curva x parametrizada por su longitud de arco s es Frenet con- tinua de orden r en s = s0 si y s´olo si (2) [x′ − . . . x (r) − ]C = [x′ + . . . x (r) + ] , donde C es una matriz de conexi´on triangular superior cuya dia- gonal consta de 1′ s. Demostraci´on: Sean [f1 . . . fr]− y [f1 . . . fr]+ las matrices formadas por los vectores de Frenet, por la izquierda y por la derecha, respectivamente. Anal´ogamente, sean κ− i , y κ+ i las curvaturas por la izquierda y por la derecha de x en s0. Se desprende de 7.6 que [x′ − . . . x (r) − ] = [f1 . . . fr]−U− , donde U− es una matriz triangular superior cuya diagonal es 1, κ− 1 , . . . , (κ− 1 . . . κ− r−1) . Para las derivadas por la derecha se satisface una relaci´on similar. Por lo tanto la ecuaci´on (2) se satisface si y s´olo si (3) [f1 . . . fr]−U−CU−1 + = [f1 . . . fr]+ ,
  • 119. 100 7. Curvas suaves donde U−CU−1 + es triangular superior con diagonal 1, (κ− 1 /κ+ 1 ), . . . , (κ− 1 . . . κ− r−1/κ+ 1 . . . κ+ r−1). Como los vectores de Frenet son ortogonales entonces (3) se satisface si y s´olo si U−CU−1 + es la matriz identidad. Luego (3) y (2) son ciertas si y s´olo si las curvaturas y los vectores de Frenet son continuos. Esto termina la demostraci´on. 3 De acuerdo a 7.1, los r-jets de una curva con respecto a dos parametriza- ciones distintas est´an relacionados por una matriz cuya diagonal es de la forma α0 , α1 , . . . , αr , con α = 0. Por lo tanto reparametrizando la curva podemos rescribir la condici´on (2) de la siguiente manera. Sea x(t) una parametrizaci´on de la curva x con derivadas linealmente indepedientes hasta orden r por la derecha y por la izquierda en un punto t = t0. Entonces: La curva x(t) es Frenet continua hasta orden r en t = t0 si y s´olo si [˙x− . . . x (r) − ]¯C = [˙x+ . . . x (r) + ] , donde C es una matriz triangular superior cuya diagonal es de la forma α, α2 , . . . , αr con α = 0. Observaci´on 11: El contacto de orden r implica continuidad de Frenet de orden r. El rec´ıproco es cierto en general s´olo para r ≤ 2. Observaci´on 12: Una curva plana en IR3 tiene torsi´on cero. Observaci´on 13: Las curvaturas κi son invariantes euclideanos, es decir, se preservan bajo rotaciones, reflexiones en planos y traslaciones. Note sin embargo que la continuidad de Frenet es invariante desde el punto de vista af´ın, de hecho es invariante por transformaciones proyectivas. Observaci´on 14: El contacto de orden r es invariante bajo proyecciones. Sin embargo, la continuidad de Frenet de orden r se preserva bajo proyecciones s´olo si las derivadas hasta orden r de la curva proyectada son linealmente independientes. Observaci´on 15: Considere las curvas polin´omicas p(t) y q(t) en IRd tales que p(0) = q(0) y −αp′ (0) = q′ (0) , con α = 0. Sean p0, . . . , pn y q0, . . . , qn puntos de B´ezier p y q sobre [0, 1]. Entonces p y q tienen los mismos marcos de Frenet y curvaturas en t = 0 si los subespacios generados por p0, . . . , pi−1 dividen el segmento pi y qi en la raz´on 1 : (α)i , si i es par y −1 : γi para i impar, ver [Boehm ’87]. La Figura 7.7 ilustra la situaci´on para d = 3.
  • 120. 7.8. Osculantes y polinomios sim´etricos 101 Figura 7.7: Continuidad de Frenet: visi´on de Boehm. 7.8 Osculantes y polinomios sim´etricos Para los splines Frenet continuos tambi´en existen pol´ıgonos de control y un algoritmo de inserci´on de nodos, como para el caso de los Cr -splines simples. Ambos pueden deducirse a partir de los polinomios sim´etricos y del teorema fundamental de 5.5, como mostraremos a continuaci´on. Sea p(u) una curva polin´omica de grado n. Entonces pa(u) = p(u) + 1 n (a − u)p′ (u) es una curva polin´omica de grado n − 1 en u. Esta curva se denomina el primer osculante de p en el nodo a. La Figura 7.8 ilustra esta definici´on. El segundo osculante de p se obtiene tomando el primer osculante de pa. De manera similar se pueden construir osculantes de grado m´as elevado, tomando osculantes sucesivos de p. El i-´esimo osculante de p en los nodos a1, . . . , ai se puede escribir pa1 ... ai = (pa1 )a2 ... ai . Los osculantes tienen las siguientes propiedades. V´ease tambi´en el Ejercicio 7. • La diagonal del n-´esimo osculante de una curva polin´omica de grado n coincide con ´esta, ´esto es pa n...a = p(a) . • Los osculantes son sim´etricos con respecto a los nodos pab(u) = pba(u) .
  • 121. 102 7. Curvas suaves Figura 7.8: Primer osculante de una curva. • Los osculantes son afines con respecto a sus nodos. Para a = (1 − α)c + αd se tiene pa = (1 − α) · pc + α · pd . Debido a 3.1 estas tres propiedades caracterizan el n-´esimo osculante de p como el polinomio sim´etrico multiaf´ın de p, esto es: pu1 ... un = p[u1 . . . un] . Supongamos que p′ , . . . , p(n) son linealmente independientes, entonces p, p′ , . . . , p(i) generan un subespacio de dimensi´on r que denotamos por Pr u, v´ease tambi´en el Ejercicio 10. Este subespacio se denomina el r-´esimo subespacio osculador de p en u. De 3.9 se desprende p(r) a (a) = n − r n p(r) (a) . Note que p y su primer osculante tienen el mismo r-´esimo subespacio oscu- lador en u = a para r = 0, . . . , n − 1. 7.9 Interpretaci´on geom´etrica del teorema fundamental Sea s(u) = ciNn i un spline con nodos simples ai, i ∈ Z, y sea sj el polinomio que coincide con s sobre el intervalo internodal [aj, aj+1]. Recuerde del teorema fundamental 5.5 que ci = sj [ai+1 . . . ai+n] = sj ai+1 ... ai+n
  • 122. 7.9. Interpretaci´on geom´etrica del teorema fundamental 103 para j = i, . . . , i + n. Sea Sk j el k-´esimo plano osculador en s en aj. Como el primer osculante sj aj genera el subespacio Sn−1 j y como los osculantes son sim´etricos en sus nodos, obtenemos la siguiente interpretaci´on del teorema fundamental: El punto de control ci yace en los subespacios osculadores Sn−1 i+1 , . . . , Sn−1 i+n . Es m´as cualesquiera n subespacios osculadores consecutivos Sn−1 i+1 , . . . , Sn−1 i+n se intersecan precisamente en el punto de control ci, si todos los Sn j generados por los segmentos sj son n-dimensionales De hecho, cualesquiera n+1 puntos de control consecutivos cj−n, . . . , cj gene- ran Sn j . Por lo tanto son independientes lo cual implica que las intersecciones Sn−1 i+1 ∩ . . . ∩ Sn−1 i+k est´an generadas por ci−n+k, . . . , ci. En particular observe que, los n+1 planos osculadores Sn−1 i , . . . , Sn−1 i+n tienen intersecci´on vac´ıa. Observaci´on 16: Esta interpretaci´on geom´etrica del teorema fundamental, es tambi´en v´alida en el caso de nodos multiples si interpretamos la inter- secci´on Sn−1 j ∩ k. . . ∩Sn−1 j como el (n − k)-´esimo subespacio osculador de Sn−k j . Observaci´on 17: Sea p(u) una curva polin´omica n-dimensional (es decir, que no yace en ning´un subespacio propio) y Pk u su k-´esimo subspacio oscu- lador en u. Como p(u) es un spline sobre cualquier secuencia de nodos con segmentos n-dimensionales, entonces para cualquier m ≤ n + 1 los subespa- cios osculantes Pn−1 a1 , . . . , Pn−1 am los cuales podr´ıan coincidir, se intersecan en un espacio de dimensi´on n−m. De lo contrario, n+1 subespacios osculadores no tendr´ıan intersecci´on vac´ıa. Observaci´on 18: Por la Observaci´on 17 existen a lo sumo m subespacios os- culadores Pn−1 a1 , . . . , Pn−1 am posiblemente coincidentes, cuya intersecci´on con- tiene un subespacio de dimensi´on n − m Observaci´on 19: Es m´as, se puede demostrar que la intersecci´on de cualquier espacio osculador Pn−r u con un subespacio m-dimensional tiene dimensi´on m − r, excepto para un n´umero finito de n’s, vea [Prautzsch ’02]. Observaci´on 20: Vea [Pottmann ’93, Mazure Pottmann ’96] para una extensi´on del tratamiento geom´etrico de B-splines a los splines de Tcheby- cheff. Observaci´on 21: Los puntos de B´ezier bi de una curva c´ubica p(u) que
  • 123. 104 7. Curvas suaves genera IR3 est´an dados por los osculantes de orden 3, vea la Figura 7.9, b0 = p000 = P0 0 , b1 = p001 = P1 0 ∩ P2 1 , b2 = p011 = P2 0 ∩ P1 1 y b3 = p111 = P0 1 . Figura 7.9: Subespacios osculadores y el pol´ıgono de B´ezier 7.10 Splines con matrices de conexi´on arbitraria Sean ai nodos simples, esto es que satisfacen ai ai+1 para todo i, y sea s(u) una curva continua que es polin´omica sobre cada intervalo internodal [ai, ai+1]. Supongamos adem´as que las derivadas por la izquierda y por la derecha de s(u) en cada nodo y hasta grado n−1 est´an relacionadas por una matriz de conexi´on no singular arbitraria. Entonces la curva s tiene un plano osculador (n − 1)-dimensional en cada nodo ai, que denotamos por Si o Sai ¡Sin embargo, en general, s no es Frenet continua! Supondremos adem´as que cada segmento polin´omico de s genera el espacio n-dimensional e introducimos la notaci´on s[ai+1 . . . ai+n] = Si+1 ∩ · · · ∩ Si+n para la intersecci´on de n subespacios osculadores en nodos consecutivos. Por la Observaci´on 18 de 7.9 se tiene que dos subespacios osculadores con- secutivos Sj+1 y Sj+2 se intersecan en un subespacio de Sj+2 de dimensi´on n − 2. Entonces aplicando sucesivamente la Observaci´on 19 de 7.9, se tiene que m subespacios osculadores consecutivos Sj+1, . . . , Sj+m se intersecan en un subespacio (n − m)-dimensional de Sj+m. Por lo tanto, en general, s[ai+1 . . . ai+n] es un punto. Sin embargo este punto podr´ıa estar en el infinito, v´ease el Ejercicio 9.
  • 124. 7.11. Inserci´on de nodos 105 Como s es tambi´en un spline sobre cualquier secuencia de nodos m´as fina, la definici´on de s[ai+1 . . . ai+n] se puede extender a cualquier secuencia de nodos consecutivos x1, . . . , xn de un refinamiento de la secuencia (ai). La funci´on de n variables s[x1 . . . xn] tiene las siguientes tres propiedades, que se desprenden directamente de la definici´on: • s[x1 . . . xn] coincide con s(u) sobre la diagonal, esto es s[u . . . u] = s(u) . • s[x1 . . . xn] es sim´etrica, es decir, si (y1, . . . , yn) es una permutaci´on de (x1, . . . , xn) entonces s[y1 . . . yn] = s[x1 . . . xn] . • s[x1 . . . xn] es una funci´on racional por trozos. Si, por ejemplo x2, . . . , xn est´an fijos entonces s[x x2 . . . xn] yace sobre la recta Sx2 ∩ · · · ∩ Sxn . Generalizando la nomenclatura del teorema 5.5 los puntos ci = s[ai+1 . . . ai+n] se denominan tambi´en puntos de control de s [Seidel ’92]. Observaci´on 22: Si las matrices de conexi´on son totalmente positivas, en- tonces cualesquiera n subespacios osculantes consecutivos Si+1, . . . , Si+n se intersecan en un punto, vea [Dyn Micchelli ’88]. 7.11 Inserci´on de nodos Considere una curva polin´omica por trozos s(u) de grado n sobre la secuencia de nodos ai como en 7.10 tales que cualesquiera n subespacios osculantes consecutivos Sj+1, . . . , Sj+n se intersecan en un punto. Sea ˆa ∈ [aj, aj+1) un nuevo nodo y sean ˆai =    ai para i ≤ j ˆa para i = j + 1 ai−1 para i ≥ j + 2 , los nodos de la secuencia refinada. Usando las propiedades de los osculantes generalizados, s[x1 . . . xn], se pueden calcular los nuevos puntos de control ˆci = s[ˆai+1 . . . ˆai+n] a partir de los controles iniciales ci = s[ai+1 . . . ai+n]. De hecho, de 7.10 resulta: ˆci =    ci para i ≤ j − n ci−1(1 − αi) + ciαi para i = j − n + 1, . . . , j ci−1 para i ≥ j + 1 ,
  • 125. 106 7. Curvas suaves donde αi es una funci´on racional por trozos de ˆa. V´ease el Ejercicio 6. En particular, si insertamos el nodo ˆa n veces entonces se obtiene un algoritmo similar al algoritmo de de Boor para el c´alculo de s[ˆa . . . ˆa] = s(ˆa). La ´unica diferencia, es que en general los pesos αi no dependen linealmente de ˆa. Observe que este algoritmo de de Boor generalizado funciona solamente cuando todas las intersecciones s[aj+1 . . . aj+k ˆa n−k. . . ˆa] = Sj+1 ∩ . . . ∩Sj+k ∩ (k-´esimo subespacio osculante en ˆa), requeridas para el c´alculo de s[ˆa . . . ˆa], son puntos. Sin embargo, tal como se desprende de la Observaci´on 18, estas intersecciones pueden no ser puntos en a lo sumo un n´umero finito de nodos ˆa. Observaci´on 23: Los puntos de control ci, i = 0, . . . , m, definen el spline s(u) para todo u ∈ [an, am+1]. Por lo tanto, si consideramos s solamente sobre [an, am+1], es conveniente suponer nodos de multiplicidad n en los extremos. a0 = · · · = an−1 y am+1 = · · · = am+n+1 . 7.12 Bases de splines Hasta ahora hemos supuesto que la curva s(u) tiene derivadas independien- tes hasta orden n − 1. Esto sin embargo no es necesario para que est´en bien definidos los puntos de control y para que exista un algoritmo de inserci´on de nodos. Sea a = (a0, . . . , am) una secuencia de nodos simples y C = (C1, . . . , Cm−1) una secuencia de matrices (n−1)×(n−1) no singulares. Una curva polin´omica por trozos s(u) se denomina un spline de grado n sobre a y C si es polin´omica de grado n sobre cada intervalo internodal (ai, ai+1), i = 0, . . . , m − 1, y si para cada u = a1, . . . , am−1, las derivadas por la izquierda y por la derecha est´an relacionadas por [s (1) − . . . s (n−1) − ]Ci = [s (1) + . . . s (n−1) + ] . Para fijar ideas suponderemoas que s yace en 3D. Dada la secuencia de nodos a0, . . . , am y la secuencia de matrices no singu- lares C1, . . . , Cm−1 para cualesquiera m+n puntos b0, . . . , bn, b2n, . . . , bmn, que generan un espacio de dimensi´on m + n, se puede construir un spline de grado n, que tiene derivadas continuas hasta grado n − 1. Este spline se denomina una curva normal para el espacio de los splines en 3D de grado n, sobre la secuencia de nodos a y matrices de conexi´on C. La curva normal la denotamos por snorm y los puntos de B´ezier de sus seg- mentos polin´omicos son b0, b1, . . . , bn; bn+1, . . . , b2n, etc. Los puntos de
  • 126. 7.13. Ejercicios 107 B´ezier (tales como bn+1, bn+2, . . . , b2n+1, . . . ) est´an determinados por las condiciones de conexi´on dadas por las matrices de conexi´on C. Cualquier spline de grado n, sobre a y C es la imagen por una aplicaci´on af´ın del espacio n + m dimensional en 3D. H.P. Seidel se refiere a la curva normal como spline universal en [Seidel ’92]. Las im´agenes de los puntos de control de snorm son los puntos de control de s. Esto entonces demuestra que para cualquier spline s sobre a y C hay un pol´ıgono de control y que existe un algoritmo de inserci´on de nodos. Los pesos αi de 7.11 dependen solamente de a, C y de ˆa, pero no de cada spline en particular. Es m´as, las curvas normales sobre a y C con puntos de control 0, . . . , 0, 1, 0, . . . , 0 forman una base para el espacio de splines sobre a y C. El algoritmo de de Boor generalizado implica que estos splines tienen igual soporte que los B-splines ordinarios sobre a. Observaci´on 24: En los casos que no se pueda definir los puntos de con- trol de un spline normal sobre a y C, por interseci´on de los n subespacios osculantes, podemos perturbar los nodos ai de manera tal que los osculantes en cada uno de los n nodos consecutivos se intersecten en exactamente un punto. V´ease la Observaci´on 18 de 7.9. Vea tambi´en los Ejercicios 13 - 15. 7.13 Ejercicios 1 Considere la curva x(t) con curvatura κ(t) = 0. Muestre que los c´ırculos tangentes a x con contacto de orden 2 tiene radio 1/κ. Estos c´ırculos se denommnan osculadores y sus centros son los centros de curvatura. 2 Considere una curva x(s) parametrizada por longitud de arco. Su vector tangente t(s) describe una curva sobre la esfera unitaria. La longitud de arco de la curva t, que denotamos por α(s), representa cuanto se han desviado los ´angulos de la curva en tiempo s con respecto a los valores angulares iniciales en s = 0. Demuestre que la curvatura κ de x es igual a la derivada de t respecto a s, es decir, α′ = κ. 3 Demuestre que la torsi´on de una curva en IR3 coincide con la velocidad angular del vector binormal con respecto a s. 4 Convierta un ν-spline a su representaci´on γ-spline, o sea, exprese los γi en t´erminos de los νi, vea 7.5. 5 Un γ-spline (ν-spline) sobre los nodos a0, . . . , am+2 con par´ametros γ1, γ2, . . . , γm+1 (ν1, , . . . , νm+1) es tambi´en un γ-spline (ν-spline) sobre una secuencia de nodos refinada ˆa0 = a0, . . . , ˆai = ai, ˆai+1, ˆai+2 = ai+1 , . . . , ˆam+3 = am+2 con par´ametros ˆγ1, . . . , ˆγm+2 (ˆν1, . . . , ˆνm+2). Ex- prese los valores ˆγi (ˆνi) en funci´on de los γi (νi) respectivamente.
  • 127. 108 7. Curvas suaves 6 En 7.3 mostramos como se puede obtener el pol´ıgono de control de un γ-spline s(u) a partir de su pol´ıgono de B´ezier. Subdivida el pol´ıgono de B´ezier de un segmento de s(u) y construya el pol´ıgono de control correspondiente de este segmento spline. Exprese los nuevos puntos de control como combinaciones afines de los puntos de control dados, cf. [Boehm ’85]. 7 Verifique que los osculantes son afines y sim´etricos en t´erminos de sus nodos. 8 Considere el γ-spline s(u) = s(u+4) sobre los nodos 0, 1, 2, 3, 4 con puntos de control [1 1]t , [−1 1]t , [−1 −1]t , [1 −1]t y par´ametros γ = γ1 = γ2 = γ3 = γ4. ¿Para qu´e valor de γ s(u) interpola un c´ırculo de radio ρ √ 2 centrado en el origen para u = 1, 2, 3, 4? ¿Para qu´e γ, s(u) interpola a este c´ırculo en u = 1/2, 3/2, 5/2, 7/2 ? 9 Encuentre dos c´ubicas p(u) y q(u) con el mismo marco de Frenet en u = 0 tales que sus planos osculadores en u = 1 son paralelos pero diferentes. 10 Sea p(u) una curva polin´omica de grado n que genere IRn . Demuestre que cada i-´esimo subespacio osculador de p tiene dimensi´on i para i = 0, 1, . . . , n. 11 Encuentre un spline c´ubico que consista de segmentos planos y con nodos simples tales que cada uno de sus puntos de control es intersecci´on de 3 planos osculadores consecutivos S2 j . 12 Sea p(u) una curva de grado n que genera IRn y sea Pk u su k-´esimo subespacio osculador en u. Demuestre que cualquier intersecci´on Pn−i a ∩ Pn−j b converge a Pn−i+j a , cuando b tiende a a. 13 Considere el espacio de splines c´ubicos sobre Z con matrices de conexi´on Ci = −1 0 0 1 para i = 1, . . . , m y Ci = 1 0 0 1 para todos los dem´as no- dos. Muestre que tres planos osculadores en nodos consecutivos pueden intersecarse en una recta. 14 Encuentre los spline base (en el sentido de 7.12) del espacio de splines c´ubicos del Ejercicio 13. Trate de que en su base haya el mayor n´umero posible de B-splines. 15 Construya una base para el espacio de splines c´ubicos del Ejercicio 13, cuyos elementos tengan soporte m´ınimo.
  • 128. 8 Subdivisi´on uniforme 8.1 B-splines uniformes — 8.2 Subdivisi´on uniforme — 8.3 Subdivisi´on iterada — 8.4 La matriz de subdivisi´on — 8.5 Derivadas — 8.6 Subdivisi´on estacionaria — 8.7 Teoremas de convergencia — 8.8 C´alculo del esquema de diferencias — 8.9 El esquema de los cuatro puntos — 8.10 An´alisis del esquema de los cuatro puntos — 8.11 Ejercicios Los splines se simplifican mucho si los nodos son simples y est´an uniforme- mente espaciados. En este caso dos B-splines de un mismo grado difieren por una traslaci´on, lo cual permite una evaluaci´on eficiente por medio de un m´etodo matricial o a trav´es de una tabla de valores precalculados. Por esta raz´on, se han ideado algoritmos simples para convertir una representaci´on B-spline arbitraria en una representaci´on B-spline sobre una secuencia de nodos m´as fina pero satisfaciendo la condici´on de estar uniformemente espa- ciados. Estos algoritmos son prototipos de toda una clase de algoritmos que se denominan algoritmos de subdivisi´on estacionaria. 8.1 B-splines uniformes Los B-splines sobre la secuencia de nodos Z se pueden definir como en 5.3 y tambi´en por convoluci´on, usando la f´ormula de la derivada de 5.7. Sea N0 (u) = 1 para 0 ≤ u 1 0 en caso contrario el B-spline constante por trozos sobre los nodos 0 y 1, vea la Figura 5.4. Usando la f´ormula de la derivada de un B-spline Nn (u) de grado n sobre los nodos 0, 1, 2, . . . , n + 1 se obtiene por la recursi´on Nj (u) = u 0 (Nj−1 (v) − Nj−1 (v − 1))dv , j = 1, . . . , n , que se puede rescribir Nj (u) = 1 0 Nj−1 (u − t)dt
  • 129. 110 8. Subdivisi´on uniforme o tambi´en Nj (u) = IR Nj−1 (u − t)N0 (t)dt = Nj−1 ∗ N0 la cual se denomina convoluci´on de Nj−1 con N0 . La Figura 8.1 ilustra esta construcci´on recursiva. En lo que sigue consideramos los trasladados Nn (u − i) y los denotamos como en los Cap´ıtulos 5 y 6: Nn i (u) = Nn (u − i) . Figura 8.1: Construcci´on del B-spline uniforme N2 (u). 8.2 Subdivisi´on uniforme La combinaci´on af´ın de puntos ci ponderados sn (u) = ciNn i (u) con B-splines uniformes sobre Z se denomina un spline uniforme sobre Z. Subdivisi´on uniforme es el c´alculo de la representaci´on B-spline de sn (u) sobre la secuencia refinada de nodos 1 2 Z. Para esta representaci´on introducimos los B-splines escalados Mn (u) = Nn (2u) y sus trasladados Mn i (u) = Mn (u − i/2) = Nn (2u − i), vea la Figura 8.2. La construcci´on de la representaci´on sobre la secuencia refinada sn (u) = bn i Mn i (u)
  • 130. 8.2. Subdivisi´on uniforme 111 Figura 8.2: Escalamiento de un B-spline uniforme. no es dif´ıcil. Para n = 0 se tiene sn (u) = ciN0 i (u) = ci(M0 2i(u) + M0 2i+1(u)) y por lo tanto b0 2i = b0 2i+1 = ci . Para n = j + 1 0 la recursi´on para los B-splines uniformes implica lo siguiente: sn (u) = ciNj+1 i (u) = IR ciNj i (u − t)N0 (t)dt = IR bj i Mj i (u − t)[M0 0 (t) + M0 1 (t)]dt = 1 2 bj i [Mj+1 i (u) + Mj+1 i+1 (u)] = 1 2 (bj i−1 + bj i )Mj+1 i (u) y por lo tanto bj+1 i = 1 2 (bj i−1 + bj i ) . Este c´alculo recursivo de los bn i se denomina el algoritmo de Lane y Riesenfeld [Lane Riesenfeld ’80]. Dado un pol´ıgono de control primero se duplican todos los puntos de control y posteriormente se construyen los pol´ıgonos conectando los puntos medios repetidamente. La Figura 8.3 ilustra esta construcci´on para n = 3. Los puntos negros corres- ponden al pol´ıgono original, los cuales se duplican. La secuencia de c´ırculos en el cuadro superior derecho de la Figura 8.3, denota el pol´ıgono para n = 1.
  • 131. 112 8. Subdivisi´on uniforme Figura 8.3: Subdivisi´on uniforme. En los dos cuadros inferiores los c´ırculos peque˜nos siempre indican v´ertices del pol´ıgono previo. Observaci´on 1: La construcci´on anterior para n = 2 se denomina el al- goritmo de Chaikin aunque fue estudiado anteriormente por de Rham [Rham ’47]. Observaci´on 2: Se tiene sn+1 (u) = u u−1 sn (t)dt = sn ∗ N0 = s0 ∗ Nn . 8.3 Subdivisi´on iterada El algoritmo de la subdivisi´on uniforme se puede describir de una manera m´as compacta utilizando una notaci´on matricial. Sea C = [ . . . c−1 c0 c1 . . . ] y Bn = [ . . . bn −1 bn 0 bn 1 . . . ]
  • 132. 8.3. Subdivisi´on iterada 113 las matrices formadas por los puntos de control de un spline uniforme sn de grado n sobre Z y 1 2 Z, respectivamente. Entonces el procedimiento de Lane-Riesenfeld dado en 8.2, puede rescribirse B0 = CD y Bj+1 = BjM , j = 0, . . . , n − 1 , donde D y M son las matrices bi-infinitas D =     · · 1 1 1 1 · ·     y M = 1/2        · · 1 1 1 1 · ·        . La multiplicaci´on por D corresponde duplicar cada punto de control y la multiplicaci´on por M equivale al c´alculo de los punto medios de pares con- secutivos de puntos de control. Entonces la matriz Sn = DMn , representa el operador de subdivisi´on para los splines uniformes de grado n. El proceso de subdivisi´on se puede repetir. Aplicando Sn = DMn dos veces, se obtiene el pol´ıgono de control del spline sn sobre 1 4 Z. Esto significa sn (u) = ciNn i (u) = bn i Nn i (2u) = an i Nn i (4u) , donde [ . . . a−1 a0 a1 . . . ] = CSnSn . Observaci´on 3: En 6.3 se demostr´o que la secuencia de los pol´ıgonos de control Ck = CSk n del spline sn sobre 2−n Z converge a sn cuando k tiende a infinito.
  • 133. 114 8. Subdivisi´on uniforme 8.4 La matriz de subdivisi´on La matriz de subdivisi´on S1 = D ˙M para los splines lineales por trozos se obtiene directamente de la Figura 8.3 S1 = 1 2     · · · 1 2 1 1 2 1 · · ·     . Similarmente la matriz de subdivisi´on S2 para splines cuadr´aticos por trozos (algoritmo de Chaikin) resulta S2 = 1 4     · · · · 1 3 3 1 1 3 3 1 · · · ·     y en general la matriz Sn es de la forma Sn =     . . . a0 a1 . . . an+1 a0 a1 . . . an+1 . . .     , donde ai es el coeficiente binomial ai = 2−n n + 1 i . Otra derivaci´on de Sn est´a dada en la Observaci´on 5 de 8.8. La multiplicaci´on del pol´ıgono de control C por la matriz de subdivisi´on Sn nos conduce a las ecuaciones de refinamiento bn 2i = j cja2i−2j y bn 2i+1 = j cja2i+1−2j, las cuales se pueden combinar en una sola expresi´on. bn i = j cjai−2j . 8.5 Derivadas La derivada de un spline s(u) = ciNn i (u) sobre Z tiene una forma particu- larmente simple. Especializando la identidad (1) de 5.6 obtenemos s′ (u) = ∇ciNn−1 i (u) ,
  • 134. 8.6. Subdivisi´on estacionaria 115 donde ∇ci = ci − ci−1 denota la diferencia hacia atr´as. Entonces la derivada s′ est´a controlada por el pol´ıgono de diferencias ∇C = [ . . . ∇ci . . . ] obtenido del pol´ıgono de control C = [ . . . ci . . . ] de s. Es m´as, sean Ck = [ . . . ck i . . . ] = C(Sn)k los pol´ıgonos de control obtenidos de C por subdivisi´on k veces. Entonces las representaciones de s y de su derivada, ambos sobre 2−k Z, son s(u) = ck i Nn i (2k u) y s′ (u) = 2k (∇ck i )Nn−1 i (2k u) . Por lo tanto, subdividiendo s′ obtenemos los pol´ıgonos diferencia ∇Ck 2k ∇Ck = (∇C)(Sn−1)k . Entonces, 1 2 Sn−1 aplica ∇Ck en ∇Ck+1. Por esta raz´on 1 2 Sn−1 se denomina la matriz del esquema de diferencias asociada con el esquema de subdivisi´on representado por Sn. 8.6 Subdivisi´on estacionaria Generalizando 8.4 podemos considerar una matriz de subdivisi´on bi-infinita de la forma S =     . . . . . . α−1 α0 α1 . . . . . . α−1 α0 α1 . . . . . .     , donde los elementos αi son n´umeros arbitrarios que satisfacen i αi = i α2i+1 = 1 y s´olo un n´umero finito de los αi son diferentes de cero. Iterando la subdivisi´on se obtiene la siguiente secuencia de pol´ıgonos de con- trol Ck = [ . . . ck i . . . ] = CSk . Esta secuencia converge uniformemente a una curva continua c(u) si sup i ck i − c(2−k i) −→ k→∞ 0 . La convergencia uniforme de los pol´ıgonos Ck a c(u), sobre cada compacto implica que los splines constantes por trozos ck(u) = i ck i N1 i (u)
  • 135. 116 8. Subdivisi´on uniforme tambi´en convergen a c(u), que es uniformemente continua sobre intervalos compactos. Una condici´on necesaria y suficiente para la convergencia uniforme fue dada en [Dyn et al. ’91] y [Micchelli Prautzsch ’87]. Los pol´ıgonos de control Ck convergen uniformemente a una curva uniformemente continua c(u) si y s´olo si los pol´ıgonos diferencia ∇ck convergen uniformemente a cero. La prueba de este hecho est´a en 15.3. V´ease tambi´en los Ejercicios 3 y 4. 8.7 Teoremas de convergencia Consideremos ahora una secuencia Ck = [ . . . ck i . . . ] de pol´ıgonos arbitrarios, no necesariamente obtenidos por subdivisi´on y supongamos que la secuencia de pol´ıgonos 2k ∇2 Ck, las segundas diferencias divididas, converge uniforme- mente a cero. Entonces por 8.6, los pol´ıgonos primera diferencia dividida 2k ∇Ck convergen uniformemente a una curva uniformemente continua, d(u). Por lo tanto, las primeras diferencias ∇Ck convergen uniformemente a cero y los pol´ıgonos Ck, a una curva uniformemente continua c. Este hecho implica que el spline constante por trozos dk(u) = 2k ∇ck i N0 i (2k u) y que los splines lineales por trozos ck(u) = ck i N1 i (2k u) convergen uniformemente a d(u) y c(u), respectivamente. Como ck(u) = ck −1 + u 0 dk(t) dt , y como integraci´on y convergencia uniforme conmutan, resulta c(u) = c(0) + u 0 d(t) dt . En consecuencia c es diferenciable y c′ (u) = d(u). Una aplicaci´on repetida de este resultado resulta en el siguiente teorema general: Si la secuencia de pol´ıgonos 2kr ∇r+1 Ck converge uniformemente a cero cuando k tiende a infinito, entonces c es una curva Cr . Adem´as para todo i = 0, . . . , r, los pol´ıgonos 2ki ∇i Ck convergen uniformemente a las derivadas ci de una curva c, r veces conti- nuamente diferenciable.
  • 136. 8.8. C´alculo del esquema de diferencias 117 8.8 C´alculo del esquema de diferencias Para utilizar los resultados de 8.7 debemos calcular los pol´ıgonos diferencia ∇Ck. Sea C = [ . . . ci . . . ] un pol´ıgono de control y S la matriz de subdi- visi´on como en 8.6. Tal como se explic´o en 8.4, los v´ertices bi del pol´ıgono subdividido B = CS se calcula usando la ecuaci´on de refinamiento bi = j cjαi−2j . Multiplicando por el monomio zi y sumando sobre i obtenemos el polinomio de Laurent i bizi = i j cjαi−2jz2j zi−2j = j cjz2j k αkzk , el cual se puede expresar de manera compacta como: b(z) = c(z2 ) · α(z) . El factor α(z) = k αkzk no depende de C y se denomina el polinomio caracter´ıstico del esquema de subdivisi´on S. Note que cada esquema de subdivisi´on tiene un ´unico polinomio caracter´ıstico y viceversa. La representaci´on de esquemas de subdivisi´on por polinomios caracter´ısticos permite obtener f´acilmente sus esquemas de diferencias asociados: Multipli- cando las diferencias ∇bi por zi y sumando sobre i obtenemos el polinomio de Laurent ∇b(z) = i ∇bizi = b(z)(1 − z) . Sustituyendo la ecuaci´on para b(z) se tiene ∇b(z) = c(z2 )α(z)(1 − z) = ∇c(z2 )α(z) 1 − z 1 − z2 = ∇c(z2 ) α(z) 1 + z . La suposici´on α2i = α2i+1 = 1 establecida en 8.5 es equivalente a α(−1) = 0 y α(1) = 2. Por lo tanto (1 + z) es un factor de α(z), lo cual implica que β(z) = α(z) 1 + z .
  • 137. 118 8. Subdivisi´on uniforme es el polinomio caracter´ıstico del esquema de diferencias asociado con S. Observaci´on 4: La matriz de subdivisi´on D para un spline constante por trozos sobre Z dada en 8.3, tiene polinomio caracter´ıstico σ0(z) = (1 + z) . Observaci´on 5: La matriz 1 2 Sn−1 definida en 8.4 representa el esquema de diferencias correspondiente al algoritmo de subdivisi´on para splines de grado n sobre Z, vea 8.5. Por lo tanto el polinomio caracter´ıstico σn(z) de Sn est´a dado por σn = 1 2 (1 + z)σn−1(z) = 1 4 (1 + z)2 σn−2(z) ... = 2−n (1 + z)n σ0(z) = 2−n (1 + z)n+1 , lo cual prueba de manera distinta la identidad ai = 2−n n+1 i de 8.4. 8.9 El esquema de los cuatro puntos Como un ejemplo de los resultados anteriores presentamos el esquema de los cuatro puntos de Dyn, Gregory y Levin [Dyn et al. ’87]. Dado un pol´ıgono P0 = [ . . . p0 i . . . ] se construye una secuencia de pol´ıgonos Pk = [ . . . pk i . . . ] de la forma pk+1 2i−1 = pk i+2 pk+1 2i = −ωpk i−3 + (1/2 + ω)pk i−2 + (1/2 + ω)pk i−1 − ωpk i , donde ω es un par´ametro de dise˜no para controlar la forma de la curva. La construcci´on correspondiente se ilustra en la Figura 8.4. Note que cada pol´ıgono Pk+1 obtenido por medio del esquema de los cuatro puntos, interpola al polinomio previo Pk. Los algoritmos de subdivisi´on con esta propiedad tambi´en se denominan esquemas iterativos interpolantes. Observaci´on 6: Sea p(u) una curva c´ubica y sea P0 = [ . . . p0 i . . . ] el pol´ıgono dado por p0 i = p(i), i ∈ Z. Si ω = 1/16 entonces todos los pol´ıgonos Pk obtenidos a trav´es del esquema de los cuatro puntos tambi´en
  • 138. 8.10. An´alisis del esquema de los cuatro puntos 119 Figura 8.4: Esquema de los cuatro puntos - construcci´on de pk+1 6 . yacen sobre la c´ubica, concretamente pk i+1 = p(1 + i/2k ). .Entonces el esquema de los cuatro puntos tiene precisi´on c´ubica para ω = 1/16. Observaci´on 7: Usando la interpolaci´on polin´omica de grado 2k − 1 en abscisas equidistantes, se pueden construir esquemas de 2k puntos con pre- cisi´on polinomial de grado 2k − 1. V´ease [Kobbelt ’94]. 8.10 An´alisis del esquema de los cuatro puntos Por inspecci´on de la definici´on del esquema de los cuatro puntos se obtiene su polinomio caracter´ıstico α(z) = −ω + (1/2 + ω)z2 + z3 + (1/2 + ω)z4 − ωz6 = (1 + z)β(z) , donde β(z) = −ω + ωz + 1/2z2 + 1/2z3 + ωz4 − ωz5 es el polinomio caracter´ıstico del esquema de diferencias. Entonces se tiene ∇pk+1 2i = − ω∇pk i + 1/2∇pk i+1 + ω∇pk i+2 ≤ (1/2 + 2|ω|) sup i ∇pk i y similarmente ∇pk+1 2i+1 ≤ (1/2 + 2|ω|) sup i ∇pk i . Por lo tanto, para |ω| 1/4 los pol´ıgonos de diferencias ∇Pk convergen a cero y los pol´ıgonos Pk convergen a una curva continua. Es m´as, de acuerdo
  • 139. 120 8. Subdivisi´on uniforme a 8.7 la diferenciabilidad depende de las segundas diferencias 2k ∇2 Pk. De 8.8 se desprende que el esquema de diferencias asociado tiene el polinomio caracter´ıstico γ(z) = 2β(z) 1 + z = −ω + 2ωz + (1/2 − 2ω)z2 + 2ωz3 − ωz4 . Como previamente, en este caso tambi´en se puede demostrar que 2k ∇2 Pk tiende a cero si 0 ω 1/8. Por lo tanto en este caso el esquema de los cuatro puntos produce interpolantes C1 . Observaci´on 8: Se puede demostrar [Dyn et al. ’91] que el esquema de los cuatro puntos produce interpolantes C1 si 0 ω ( √ 5 − 1)/8 ≈ 0.15. Sin embargo, en general no produce curvas C2 . Observaci´on 9: El esquema de 2k puntos de Kobbelt produce interpolantes Ck−1 [Kobbelt ’94] 8.11 Ejercicios 1 El B-spline uniforme Nn se puede obtener como una convoluci´on de N0 n veces, Nn = N0 ∗ n. . . ∗N0 . 2 Use la relaci´on de recurrencia para B-splines uniformes de 8.1 para demostrar i Nn i = 1, i (i + n + 1 2 )Nn i (u) = u, y IR Nn i = 1 . 3 Use la notaci´on de 8.6 para demostrar que ck+1 2i −ck i y ck+1 2i+1 −1/2(ck i + ck i+1) est´an acotados por alg´un m´ultiplo de supi ck i · i |αi|. 4 Deduzca del Ejercicio 3 que la curva lineal por trozos ck i N1 i (2−k u) converge uniformemente si las diferencias ∇ck i convergen uniformemente a cero. 5 Sea Sk la matriz del algoritmo de subdivisi´on de splines uniformes de grado k dada en 8.4 y considere la secuencia de pol´ıgonos Ck = Ck−1Sk, k = 1, 2, 3, . . . , donde C0 = [ . . . ci . . . ] es un pol´ıgono de control arbitrario. Demuestre que los pol´ıgonos Ck convergen a una curva C∞ , [Rvachev ’90].
  • 140. 8.11. Ejercicios 121 6 Considere los splines uniformes sn = ciNn i (u) de grado n sobre Z. Para cualquier entero r ∈ IN sea sn = bn i Nn i (ru) la representaci´on correspondiente sobre 1 r Z. Demuestre que los puntos de control bn i se pueden calcular a trav´es de la relaci´on de recurrencia. b0 ri = · · · = b0 ri+r−1 = ci bn+1 i = 1 r (bn i−r+1 + · · · + bn i ). 7 Considere dos matrices de subdivisi´on R y S con polinomios caracter´ısticos α(z) y (1+z)α(z)/2. Dado el pol´ıgono C suponga que los pol´ıgonos CRk convergen a una curva c(u). Demuestre que los pol´ıgonos CSk convergen a la curva d(u) = u u−1 c(u)du.
  • 144. 9 Superficies producto tensorial 9.1 Productos tensoriales — 9.2 Superficie producto tensorial de B´ezier — 9.3 Formas polares del producto tensorial de B´ezier — 9.4 Conversi´on entre las formas monomial y de B´ezier — 9.5 Algoritmo de de Casteljau — 9.6 Derivadas — 9.7 Conexiones simples Cr — 9.8 Interpolaci´on bic´ubica C1 por trozos — 9.9 Superficies de topolog´ıa arbitraria — 9.10 Parametrizaci´on singular — 9.11 Splines bic´ubicos C1 de topolog´ıa arbitraria — 9.12 Ejercicios La manera m´as sencilla de construir una superficie consiste en barrer una curva en el espacio, por ejemplo en la representaci´on de B´ezier. Los puntos de control de esta curva se mueven a su vez siguiendo curvas de B´ezier, cuyos puntos de control definen la superficie. La representaci´on de la superficie por medio de estos puntos de control tiene propiedades similares a la representaci´on de B´ezier univariada. Por esta raz´on se puede trabajar con estas superficies aplicando los algoritmos para curvas. Tambi´en, se pueden construir vol´umenes multidimensionales barriendo una superficie o un volumen en el espacio de manera que sus puntos de control se mueven a lo largo de diversas curvas. An´alogamente se obtienen mallas de control con propiedades similares de las de representaciones de curvas. 9.1 Productos tensoriales Para mostrar como se construye una superficie producto tensorial a partir de curvas, sean A0(u), . . . , Am(u) y B0(v), . . . , Bn(v) dos conjuntos de funciones independientes y consideramos la curva p(u) = m i=0 aiAi(u) ,
  • 145. 126 9. Superficies producto tensorial Cada uno de los puntos de control de esta curva yace sobre una curva de B´ezier ai = ai(v) = n j=0 bijBj(v) . La superficie p dada por p(u, v) = i j bijAi(u)Bj(v) . se denomina superficie producto tensorial Es f´acil ver que los productos AiBj tambi´en son linealmente independientes. Observaci´on 1: El producto de dos funciones es una funci´on producto tensorial especial i aiAi(u) · j bjBj(v) = i j aibjAi(u)Bj(v) . Observaci´on 2: La expresi´on uv + (1 − u)(1 − v) es una funci´on producto tensorial. N´otese sin embargo que esta expresi´on no es el producto tensorial de una funci´on de u y una funci´on de v, vea la Figura 9.1. Figura 9.1: La funci´on uv + (1 − u)(1 − v). Observaci´on 3: Sean Ai(u) y Bj(v) los polinomios de Lagrange, ver 4.2, con nodos u0, . . . , um y v0, . . . , vn definidos por Ai(uk) = δi,k y Bj(vl) = δj,l tal como la ilustra en la Figura 9.2. Entonces la superficie producto tensorial p(u, v) = i j pijAi(u)Bj(v) se denomina superficie de Lagrange. Esta superficie interpola los puntos pij, como ilustra la Figura 9.3.
  • 146. 9.2. Superficies producto tensorial de B´ezier 127 Figura 9.2: Polinomios de Lagrange. Figura 9.3: Superficie de interpolaci´on. 9.2 Superficies producto tensorial de B´ezier En esta secci´on veremos como extender a las superficies tensoriales de B´ezier las t´ecnicas desarrolladas para curvas. Esto tambi´en facilitar´a la extensi´on de las t´ecnicas de B-splines al caso de superficies. Una superficie polin´omica b(u) = b(u, v) es de grado m = (m, n) si es de grados m y n en u y v, respectivamente. La pareja de transformaciones afines u = c1(1 − s) + d1s, v = c2(1 − t) + d2t mantiene invariante el grado de b, es decir, b(s, t) = b(u(s, t)) es tambi´en de grado m en s = (s, t). El polinomio b(s, t) se puede considerar como un polinomio de grado n en t cuyos coeficientes son polinomios de grado m en s. Entonces b(s, t) tiene la representaci´on de B´ezier b(s, t) = i bi(t)Bm i (s) = i j bijBm i (s)Bn j (t) , o en notaci´on m´as compacta b(s) = i biBm i (s) , donde i = (i, j).
  • 147. 128 9. Superficies producto tensorial Los coeficientes bi se denominan los puntos de B´ezier de b(u) sobre el intervalo [c, d] = [c1, d1] × [c2, d2]. Cuando estos puntos se conectan como indica la Figura 9.4 nos referimos a la configuraci´on resultante como la malla de B´ezier de b. La variable s se denomina par´ametro local y u es el par´ametro global. Figura 9.4: Una malla de B´ezier. Como en el caso de las curvas, las superfices tensoriales de B´ezier heredan las propiedades de los polonomios de Bernstein. • La simetr´ıa de los polinomios de Bernstein implica b(u) = i,j bijBm ij (s) = i,j bm−i,jBm i,j(¯s) , donde ¯s = (1 − s, t), etc. La utilidad pr´actica de la simetr´ıa consiste en que para parametrizar el mismo parche tomando como origen otro v´ertice, simplemente se invierte el orden de todas las filas o columnas, o de ambas. Como una curva pasa por su primer y ´ultimo punto de B´ezier, se tiene que • el borde de la malla de B´ezier determina las cuatro curvas frontera del parche b[c, d]. Por ejemplo, se tiene b(c1, v) = j b0jBn j (v) . En particular, resulta que • las cuatro esquinas del parche y de su malla B´ezier coinciden, esto es: b(c1, d1) = b00, b(c1, d2) = b0n , etc.
  • 148. 9.2. Superficies producto tensorial de B´ezier 129 Como los polinomios de Bernstein suman uno, • sus productos tambi´en forman una partici´on de la unidad, i Bm i = j 1 · Bn j = 1 . • Por lo tanto b(u) es una combinaci´on af´ın de sus puntos de B´ezier y la representaci´on de B´ezier afinmente invariante . Como los polinomios de Bernstein son no negativos en [0, 1], se tiene que • para todo u ∈ [c, d], b(u) es una combinaci´on convexa de los bi. Por lo tanto • el parche b[c, d] est´a contenido en la c´apsula convexa de sus puntos de B´ezier. Observaci´on 4: Usando la propiedad de la c´apsula convexa para cada com- ponente se obtiene una caja de acotaci´on para el parche b[c, d], b(u) ∈ [min i bi, max i bi] para u ∈ [c, d] , donde minbi es el punto cuya primera coordenada es el m´ınimo de las primeras coordenadas de los bi; y de modo similar se definen las dem´as coordenadas de minbi. La definici´on de maxbi es an´aloga. Ver la Figura 9.5. Figura 9.5: La caja de acotaci´on.
  • 149. 130 9. Superficies producto tensorial 9.3 Formas polares del producto tensorial Sean A0(u), . . . , Am(u) y B0(v), . . . , Bn(v) bases para los espacios vectoriales de polinomios, hasta grado m y n, respectivamente. Denotamos por Ai[u1 . . . um] y Bj[v1 . . . vn] las formas polares correspondientes. Entonces la superficie producto tensorial b(u, v) = i j bijAi(u)Bj(v) tiene forma polar tensorial b[u1 . . . um, v1 . . . vn] = i j bijAi[u1 . . . um]Bj[v1 . . . vn] . Esta forma polar satisface las siguientes tres propiedades. • b[u1, . . . , um, v1, . . . , vn] coincide con b(u, v) sobre su diagonal, esto es b[u, . . . , u, v, . . . , v] = b(u, v) • b[u1, . . . , um, v1, . . . , vn] es sim´etrica en las variables ui y en las varia- bles vj, esto es b[s1 . . . sm, t1 . . . tn] = b[u1 . . . um, v1 . . . vn] para cualesquiera permutaciones (s1, . . . , sm) y (t1, . . . , tn) de (u1, . . . , um) y (v1, . . . , vn), respectivamente. • b[u1, . . . , um, v1, . . . , vn] es af´ın en cada una de las variables. Los puntos de B´ezier de b(u, v) sobre un intervalo [a, b] × [c, d] se pueden obtener directamente del teorema fundamental 3.2. Para cualquier u fijo, el polinomio b(v) = b(u, v) tiene puntos de B´ezier bj(u) = b[u m. . . u, c n−j . . . c d j . . . d] , j = 0, . . . , n , y para cada j, el polinomio bj(u) tiene puntos de B´ezier bij = b[a m−i. . . a b i. . . b, c n−j . . . c d j . . . d] . Entonces hemos demostrado la siguiente versi´on del teorema fundamental
  • 150. 9.4. Conversi´on entre las formas monomial y de B´ezier 131 El polinomio b(u, v) del producto tensorial cuya forma polar es b[u1, . . . , um, v1, . . . , vn] tiene puntos de B´ezier bij = b[a n−i. . . a b i. . . b, c m−j . . . c d j . . . d] sobre el intervalo [a, b] × [c, d]. La forma polar b[u1, . . . , um, v1, . . . , vn] del producto tensorial se puede cal- cular utilizando la generalizaci´on del algoritmo de de Casteljau a partir de los puntos bj(u) = b[u1 . . . um, c m−j . . . c d j . . . d] , j = 0, . . . , m , y ´estos a su vez, se pueden determinar a partir de los bij. Como los puntos de B´ezier son ´unicos, el polinomio b(u, v) de un producto tensorial de grado ≤ (m, n) tiene una ´unica forma polar b[u1, . . . , um, v1, . . . , vn]. 9.4 Conversi´on entre las formas monomial y de B´ezier La forma monomial de una superficie tensorial polin´omica b(u, v) = m k=0 n l=0 akl m k n l uk vl se puede expresar en forma abreviada usando la siguiente notaci´on vectorial b(u) = m k=0 ak m k uk , donde u = (u, v), k = (k, l) y m = (m, n). Convertir b(u) de la forma monomial a la forma de B´ezier sobre [0, 1]x[0, 1] resulta sencillo. Aplicando dos veces la f´ormula de conversi´on de 2.8 se obtiene b(u) = m i=0 biBm i (u) , donde bi = i k=0 i k ak . Similarmente, aplicando dos veces la expresi´on de 2.9 se obtiene la f´ormula para convertir de la representaci´on de B´ezier a la monomial ak = k i=0 (−1)k+l−i−j k i bi .
  • 151. 132 9. Superficies producto tensorial Observaci´on 5: Si b(u) si es un polinomio bilineal, es decir, una aplicaci´on bi-af´ın, entonces ak = 0 para todo k ≤ (1, 1). Por lo tanto, los puntos de B´ezier de b(u) est´an dados por bij = a00 + ia10 + ja01 + ija11 = b(i/m, j/n) . Esta propiedad se denomina precisi´on bilineal de la representaci´on de B´ezier. Figura 9.6: Malla de B´ezier uniforme bilineal. 9.5 Algoritmo de de Casteljau Una superficie polin´omica en la representaci´on de B´ezier es, b(u) = i biBm i (s) , y se puede evaluar en s = (s, t) aplicando el algoritmo de la Casteljau para curvas, (m + 2) o (n + 2) veces. Esto conduce al siguiente algoritmo para superficies: Use el algoritmo de de Casteljau para calcular 1. los puntos bi = n j=0 bijBn j (t) y 2. el punto b(u) de la superficie dado por m i=0 biBm i (s) . Observaci´on 6: Por ejemplo, considere el polinomio b(s, t) = bijB3,2 ij (s, t) cuya matriz de B´ezier aparece en la esquina superior izquierda de la Figura 9.7. Esta Figura ilustra el algoritmo mostrando los 8 = 4 · 2 pa- sos de de Casteljau para t = 1/2 y tres pasos para s = 2/3 en la ´ultima fila. Cada flecha corresponde a un paso.
  • 152. 9.6. Derivadas 133 Figura 9.7: Evaluaci´on de un producto tensorial con el algoritmo de de Casteljau. Observaci´on 7: Tambi´en podemos aplicar el algoritmo de de Casteljau B´ezier primero a la filas de B´ezier para s = 2/3 y posteriormente a las columnas para t = 1/2 tal y como se ilustra con las matrices y flechas a trazos. Es m´as, se puede alternar arbitrariamente las operaciones sobre filas y columnas, como se ilustra en la Figura 9.7 con matrices y flechas punteadas, lo cual es importante pues el corte del algoritmo var´ıa si m es distinto de n. Observaci´on 8: La propiedad de subdivisi´on del algoritmo de de Casteljau descrita en 3.3 muestra que los puntos de B´ezier de b(s, t) sobre [0, 1] × [0, t] y [0, 1] × [t, 1] son ciertos B´ezier puntos intermedios calculados con este algoritmo. Observaci´on 9: El polinomio b(u, v) definido en la Figura 9.8 tiene matrices de B´ezier   0 0 0 6 9 1 0 7 10 1 1 10   y   10 1 1 10 11 1 2 13 4 0 4 18   . sobre [0, 1] × [0, 1/2] y [0, 1] × [1/2, 1], respectivamente. 9.6 Derivadas Las derivadas de una superficie tensorial tambi´en se pueden obtener usando los algoritmos para curvas. La primera derivada parcial de una superficie b(s) = biBm i (s) , tiene la representaci´on de B´ezier bs = ∂ ∂s b = m ∆10 biBm−1,n i (s) ,
  • 153. 134 9. Superficies producto tensorial Figura 9.8: Evaluaci´on usando el algoritmo de de Casteljau alternando s y t. donde ∆10 bi = bi+1,j − bi,j, vea la Figura 9.9. Figura 9.9: Los puntos de B´ezier ∆10 bi de la derivada bu. Derivando repetidamente se obtiene la f´ormula general ∂q+r ∂sq∂tr b = m! (m − q)! ∆q biBm−q i , donde ∆qr = ∆10 ∆q−1,r = ∆01 ∆q,r−1 y m! = m!n! y q = (q, r). En particular, se tiene que b00, b10, b01 generan el plano tangente de b en (u, v) = (0, 0) y que la torsi´on cruzada est´a dada por bst(0, 0) = mn∆11 b00 = mn(b11 − b10 − b01 + b00) , vea la Figura 9.10. Observaci´on 10: Por la simetr´ıa de los polinomios de Bernstein la propiedad anterior es tambi´en v´alida en las otras tres esquinas del parche definido sobre [0, 1]x[0, 1].
  • 154. 9.7. Conexiones simples Cr 135 Figura 9.10: La torsi´on cruzada ∆11 b00. 9.7 Conexiones simples Cr El teorema de St¨ark de 3.10 conduce tambi´en a una condici´on necesaria y suficiente para garantizar la conexi´on Cr de dos parches b(u) y c(u) da- dos por mallas de B´ezier b0, . . . , bm y c0, . . . , cm sobre [u0, u1] × [v0, v1] y [u1, u2] × [v0, v1], respectivamente: Las derivadas de b y c coinciden hasta orden r sobre u = u1 si y s´olo si los puntos bm−r,j, . . . , bmj = c0j, . . . , crj forman el pol´ıgono de B´ezier compuesto de una curva de grado r sobre [u0, u1, u2] para todo j = 0, . . . , n. La Figura 9.11 ilustra una conexi´on C1 simple para m = 3, n = 3 y donde ∆i = ∆ui. Figura 9.11: Conexi´on C1 de dos parches bic´ubicos.
  • 155. 136 9. Superficies producto tensorial 9.8 Interpolaci´on C1 bic´ubica por trozos Los esquemas de interpolaci´on para curvas tambi´en se pueden extender f´acil- mente a productos tensoriales. Ilustramos este proceso para el caso de inter- polaci´on c´ubica discutida en 4.5. Dados (m + 1) × (n + 1) puntos pij a interpolar que corresponden a los valores de los par´ametros (ui, vj), para i = 0, . . . , m y j = 0, . . . , n, nuestro objetivo es construir una superficie producto tensorial, s(u, v) bic´ubica C1 por trozos tal que s(ui, vj) = pij. En concreto, para cada (i, j) construimos puntos de B´ezier b3i,3j, . . . , b3i+3,3j+3 que definen el segmento de s sobre [ui, ui+1] × [vj, vj+1]. Sea P = [pij] la matrix (m + 1) × (n + 1) formada por los puntos de interpo- laci´on. N´otese que los elementos de P son puntos y no escalares. Sean S y T las matrices (m + 1) × (3m + 1) y (n + 1) × (3n + 1) de los esquemas de inter- polaci´on lineales sobre las abscisas u0, . . . , um y v0, . . . , vn, respectivamente, tal como se describe en la Observaci´on 9 de 4.5. Entonces la interpolaci´on tensorial basada en las matrices S y T se describe en dos pasos. 1 Interpole cada columna de P, calculando A = St P. 2 Interpole cada fila de A, calculando B = AT. Entonces los puntos de B´ezier buscados son los elementos de la matriz B = [bij] = St PT. La Figura 9.12 presenta una ilustraci´on. Note que la interpolaci´on de las filas y de las columnas es intercambiable. Esto es, por interpolaci´on de filas se obtiene Ct = PT y por interpolaci´on de columnas resulta entonces B = St C = St PT. Claramente s(ui, vj) = b3i,3j = pi,j y si S y T generan interpoladores C1 , s(u, v) es diferenciable en u, y como los pasos 1 y 2 conmutan, tambi´en es diferenciable respecto a v. Observaci´on 11: Una aproximaci´on a la superficie se puede obtener de manera an´aloga al presentado en 4.6 para curvas. 9.9 Superficies de topolog´ıa arbitraria La interpolaci´on proporcionada por superficies producto tensorial es excelente para interpolar los v´ertices de una malla rectangular, en cada nodo de la malla inciden exactamente 4 cuadril´ateros. Sin embargo no toda superficie se puede descomponer en parches rectangulares, tal que sus fronteras formen una malla regular. Esto se ilustra en la Figura 9.13.
  • 156. 9.10. Parametrizaci´on singular 137 Figura 9.12: Esquema de interpolaci´on del producto tensorial. En estos casos, una soluci´on es refinar la malla y transformarla en una malla no regular de cuadril´ateros, como en la Figura 9.14. A´un as´ı, resulta complicado construir una superficie C1 con trozos rectangu- lares que formen una malla arbitraria. Las construcciones dadas en 9.7 s´olo permiten conectar tetraedros de parches en v´ertices interiores. Una mane- ra de resolver este problema ser´a estudiada en los cap´ıtulos 13 y 14. Otra opci´on consiste en la utilizaci´on de parametrizaciones singulares, las cuales consideraremos en el resto de este cap´ıtulo. 9.10 Parametrizaci´on singular Considere un parche de B´ezier b(u, v) = bijBmn ij (u, v) , con una singularidad en (u, v) = o, esto es, con b00 = b10 = b01 = b11 tal como se ilustra en la Figura 9.15 para m = n = 3. Las derivadas parciales bu y bv son cero en (u, v) = (0, 0), o sea, la parametriza- ci´on de b es singular en (0, 0) y la expansi´on de Taylor de b alrededor (0, 0) es de la forma b(u, v) = aijui vj , donde a10 = a01 = a11 = o. En general, el plano tangente de b en (0, 0) no
  • 157. 138 9. Superficies producto tensorial Figura 9.13: Malla no regular. Figura 9.14: Dos posibles conversiones a mallas de cuadril´ateros. est´a definido. Sin embargo, si b00, b20, b02 son independientes y coplanares con b21 y b12, si adem´as b21 yace al mismo lado de la tangente b00b20 que b02 y si b12 yace al mismo lado de la tangente b00b02 que b20, entonces b(u, v) admite una parametrizaci´on regular en una vecindad de (0, 0). En particular, en este caso b(u, v) tiene un plano tangente bien definido [Reif ’93, Teorema 3.3]. 9.11 Splines bic´ubicos C1 de topolog´ıa arbitraria En general, es posible construir superficies de B´ezier bic´ubicas, C1 por trozos, de topolog´ıa arbitraria, si trabajamos con parches regulares m´as los parches singulares descritos en 9.10, [Reif ’93]. Cualesquiera dos parches adyacentes tendr´an conexi´on C1 simple, pero algunos de los parches ser´an singulares. En primer lugar describiremos la construcci´on de este tipo de spline y posteri- ormente utilizaremos esta t´ecnica para el caso de una malla de cuadril´ateros con topolog´ıa arbitraria.
  • 158. 9.11. Splines bic´ubicos C1 de topolog´ıa arbitraria 139 Figura 9.15: Una malla de B´ezier singular. Una superficie bic´ubica con conexiones C1 est´a determinada por los puntos de B´ezier internos de cada parche, marcados con c´ırculos ◦ en la Figura 9.16. Los puntos de B´ezier de la frontera se denotan por y • calculados como el punto medio del segmento que une los puntos de B´ezier adyacentes. N´otese que los puntos de B´ezier interiores vecinos a una esquina compartida por tres o m´as de cuatro parches deben coincidir, para que las conexiones a lo largo de las curvas que emanan de este punto sean C1 . Un punto que tiene esta propiedad se llama v´ertice extraordinario. Los parches ubicados alrededor de un v´ertice extraordinario tienen un mismo plano tangente en ese punto solamente si los puntos de B´ezier interiores conectados por l´ıneas punteadas en la Figura 9.16 son coplanares y si satisfacen las condiciones dadas en 9.10. Figura 9.16: Un spline C1 bic´ubico.
  • 159. 140 9. Superficies producto tensorial Observaci´on 12: La condici´on de coplanaridad mencionada anteriormente puede ser satisfecha, en general, solamente si cada parche b tiene a lo sumo un v´ertice extraordinario. Esta hip´otesis siempre se cumplir´a si cada parche se subdivide en cuatro subparches. Observaci´on 13: Los puntos de B´ezier interiores ◦ determinan el spline completamente, pero deben satisfacer ciertas restricciones para garantizar que la superficie sea C1 . A dichos puntos Reif los denomina puntos de cuasi control. Observaci´on 14: Reif tambi´en ha propuesto una aplicaci´on proyectiva que convierte mallas de control arbitrarias en mallas de cuasi control que satis- facen las condiciones de arriba, vea el Ejercicio 6. En 14.6. presentamos un m´etodo m´as general. 9.12 Ejercicios 1 Generalice el algoritmo de generaci´on de curvas de 3.5 a superficies pro- ducto tensorial. 2 Generalice el algoritmo de generaci´on de curvas por diferencias hacia adelante presentado en 3.6 a superficies producto tensorial. 3 Generalice el algoritmo de intersecci´on de curvas de 3.7 a productos ten- soriales. 4 Implemente un esquema de interpolaci´on basado en los splines C1 bic´ubicos de 9.11 para interpolar los v´ertices de una malla arbitraria de cuadril´ateros. 5 La subdivisi´on de cada parche bic´ubico del spline C1 de 9.10 en cuatro subparches sobre [0, 1/2]2 , . . . , [1/2, 1]2 corresponde a un refinamiento de la malla de cuasi control, vea la Observaci´on 13. Desarrolle esta cons- trucci´on. 6 Considere 2n vectores c1, . . . , c2n que generan IR3 y sea ci = cos(iπ n ). Demuestre que los vectores d1, . . . , d2n dados por [d1 . . . d2n] = [c1 . . . c2n]      c0 c1 . . . c2n−1 c−1 c0 . . . c2n−2 ... ... ... ... c1−2n c2−2n . . . c0      son coplanares. 7 Extienda la interpolaci´on de Hermite para curvas, discutida en 4.4, al caso de las superficies tensoriales en su representaci´on de B´ezier.
  • 160. 10 Representaciones de B´ezier de parches triangulares 10.1 Polinomios de Bernstein multivariados — 10.2 Simples de B´ezier — 10.3 Precisi´on lineal — 10.4 El algoritmo de de Casteljau — 10.5 Derivadas — 10.6 Convexidad de superficies funcionales — 10.7 Limitaciones de la convexidad — 10.8 Ejercicios La representaci´on de B´ezier sobre tri´angulos es la generalizaci´on natural de la representaci´on de B´ezier univariada y es ´util particularmente en el caso de datos dispersos. Con la excepci´on de la propiedad de variaci´on decreciente, b´asicamente todas las propiedades pueden ser generalizadas. Conociendo la representaci´on de B´ezier sobre un tri´angulo, los resultados se pueden extender f´acilmente a dimensi´on mayor obteni´endose la representaci´on de B´ezier sobre un simplex multidimensional, v´ease el Cap´ıtulo 19. 10.1 Polinomios de Bernstein multivariados Debido a su simetr´ıa, la mejor descripci´on de los polinomios de Bernstein es en coordenadas baric´entricas. Sea A un tri´angulo con v´ertices a0, a1, a2 en IR2 y sea Ù = [u v w]t las coordenadas baric´entricas de un punto x ∈ IR2 con respecto a A. Entonces escribimos x = AÙ = a0u + a1v + a2w, vea 1.2. Procediendo como en 2.1, el c´alculo de la expansi´on trinomial 1 = (u + v + w)n = i,j,k n! i!j!k! ui vj wk , donde 0 ≤ i, j, k, i + j + k = n, conduce a los polinomios de Bernstein de grado n Bn ijk(u, v, w) = n! i!j!k! ui vj wk , estos se pueden abreviar como B = Bn (Ù) = n Ù ,
  • 161. 142 10. Representaciones de B´ezier de parches triangulares donde = (i, j, k) ∈ {0, 1, . . . , n}3 y | | = i+j +k = n. La Figura 10.1 ilustra dos ejemplos y la Figura 10.2 provee el listado can´onico de los polinomios de Bernstein de grado n = 3. Figura 10.1: Dos polinomios de Bernstein de grado 2. B300 B210 B120 B030 B201 B111 B021 B102 B012 B003 uuu 3u2 v 3uv2 vvv 3u2 w 6uvw 3v2 w 3uw2 3vw2 www Figura 10.2: Los polinomios de Bernstein c´ubicos ordenados can´onicamente. N´otese que s´olo dos de las tres variables de los Bn (Ù) son independientes. Como es usual Ù representa par´ametro local con respecto a A y x es el par´ametro global. Estas definiciones se pueden generalizar a un simplex A de dimensi´on d 1. Los correspondientes polinomios de Bernstein multivariados se definen de manera an´aloga Bn (Ù) = n Ù = n! i0! . . . id! ui0 0 . . . uid d , donde = (i0, . . . , id) ∈ {0, 1, . . . , n}d+1 , | | = i0 + · · · + id = n, y Ù = (u0, . . . , ud) son coordenadas baric´entricas de un punto x respecto a A. Los polinomios de Bernstein en dimensi´on d verifican las propiedades siguientes: • Los polinomos de Bernstein de grado n son linealmente indepen- dientes. Esto se puede verificar dividiendo b Ù = 0
  • 162. 10.2. Simples de B´ezier 143 por un 0 , lo cual conduce a b vi1 1 . . . vid d = 0 , donde vk = uk/u0. Como los monomios son linealmente independientes se tiene que todos los b son cero, lo cual termina la verificaci´on. Existen n+d d polinomios de Bernstein de grado n. En consecuencia dichos polinomios • forman una base para el espacio de polinomios de grado total ≤ n, sobre d variables. • son sim´etricos, esto es, Bn (Ù) = Bn π( )(π(Ù)) para cualquier per- mutaci´on π. • sus ra´ıces yacen sobre las caras del simplex A. En particular Bn ( k) = 1 0 para ik = n ik n , donde 0, . . . , d son las columnas de la matriz identidad de dimensi´on d + 1. • forman una partici´on de la unidad Bn (Ù) ≡ 1 . • son positivos para Ù Ó, lo cual es la raz´on porque usualmente se trabaja con polinomios de Bernstein definidos sobre su simplex de referencia A. • satisfacen la relaci´on de recurrencia Bn (Ù) = u0Bn−1 − 0 + · · · + udBn−1 − d , donde B0 Ó = 1 y Bn = 0 si tiene alguna coordenada negativa y | − j| = n−1. 10.2 Simples de B´ezier Como los polinomios de Bernstein forman una base, toda superficie polin´omica b(x) tiene una ´unica representaci´on de B´ezier, b(x) = b Bn (Ù) ,
  • 163. 144 10. Representaciones de B´ezier de parches triangulares Figura 10.3: La malla de B´ezier de una superficie c´ubica. con respecto a un simplex de referencia a0 . . . ad. Los coeficientes b se denominan puntos de B´ezier de b y son los v´ertices de la malla de B´ezier de b(x) sobre el simplex A, vea la Figura 10.3, donde d = 2 y n = 3. Las propiedades de simetr´ıa de los polinomios de Bernstein se traducen en propiedades correspondientes para las representaciones de B´ezier de superfi- cies: • Los puntos bπ( ) son los puntos de B´ezier de b con respecto a π−1 (a0 . . . ad), para cualquier permutaci´on π. • Los puntos de B´ezier de b(Ü) restringido a cualquier cara de di- mensi´on inferior de A coincide con la “cara” de la malla de B´ezier. Por ejemplo para cualquier δ d b(x) = bi0 ... iδ0 ... 0Bn i0 ... iδ (Ú) , donde Ú son las coordenadas baric´entricas de x con respecto a a0 . . . aδ. En particular, en los v´ertices del simple a0 . . . ad se tiene b(a0) = bn0 ... 0 , . . . , b(ad) = b0 ... 0n , y que n(bn−1,1,0,...,0 − bn,0,...,0) es la derivada direccional de b respecto a a1 − a0 en a0. Como los polinomios de Bernstein suman uno, • b(x) es una combinaci´on af´ın de sus puntos de B´ezier. En consecuencia, • la representaci´on de B´ezier es invariante por transformaciones afines.
  • 164. 10.3. Precisi´on lineal 145 Como los polinomios de Bernstein son no negativos sobre el simplex de refe- rencia, • b(x) es una combinaci´on convexa para todo Ù ≥ Ó. Por lo tanto, • la superficie b(A) yace en la c´apsula convexa de sus puntos de control. 10.3 Precisi´on lineal Todo polinomio lineal b(Ù) = u0p0 + · · · + udpd = PÙ , 1 = u0 + · · · + ud , admite la siguiente representaci´on de B´ezier de grado n 1. b(Ù) = [u0p0 + · · · + udpd] Bn−1 (Ù) = b Bn (Ù) , los puntos b = [i0p0 + · · · + idpd]/n = P /n son los v´ertices del refinamiento uniforme del simplex p0 . . . pd, vea la Figura 10.4. Figura 10.4: Partici´on uniforme del tri´angulo pqr. Observaci´on 1: La evaluaci´on de un polinomio lineal b(Ù) en los puntos b resulta en sus puntos de B´ezier, b( /n) = b o b(Ù) = b( /n)Bn (Ù) .
  • 165. 146 10. Representaciones de B´ezier de parches triangulares Esta propiedad de la representaci´on de B´ezier se denomina precisi´on lineal. Observaci´on 2: Como consecuencia de la Observaci´on 1, la superficie fun- cional b(x) = x b(x) , donde b(x) = b Bn , tiene puntos de B´ezier [at b ]t , donde na = [a0 . . . ad] , como se ilustra en la Figura 10.5. Los b se denominan los ordenadas de B´ezier y las a las abscisas de B´ezier de b(x). Figura 10.5: Una funci´on cuadr´atica con su poliedro de B´ezier. 10.4 El algoritmo de de Casteljau Un simplex de B´ezier b = b Bn se puede evaluar f´acilmente usando una generalizaci´on del algoritmo de de Casteljau. Usando repetidamente las rela- ciones de recurrencia de los polinomios de Bernstein, tal como se hizo para curvas, primero se obtiene b(x) = | |=n b Bn (Ù) = | |=n−1 b Bn−1 (Ù) y posteriormente, despu´es de n − 2 pasos b(x) = | |=0 b B0 (Ù) = b000 , donde b = [b + 0 . . . b i+ d ]Ù . La Figura 10.6 ilustra un ejemplo. Los puntos intermedios b , | | ≤ n del algoritmo de de Casteljau, en su or- denaci´on can´onica, forman un esquema tetra´edrico. Si x yace en un simplex A, entonces todos los pasos del algoritmo de de Casteljau son combinaciones convexas, lo cual garantiza su estabilidad num´erica.
  • 166. 10.5. Derivadas 147 Figura 10.6: La construcci´on de de Casteljau. 10.5 Derivadas Las derivadas parciales de un polinomio de Bernstein son f´aciles de calcular. Sean u0, . . . , ud las variables independientes. Entonces se obtiene ∂ ∂uj Bn = nBn−1 − j , etc., donde B = 0, si tiene una coordenada negativa. A continuaci´on considere una recta x(t) = p + tv , donde v = a0v0 + · · · + advd y v0 + · · · + vd = 0. Esta recta determina la curva b(x(t)) sobre la superficie b(x) = b(Ù) = b Bn (Ù) . Su derivada respecto a t, en t = 0 est´a dada por Dvb(p) = d dt b (x(t)) t=0 = v0 ∂ ∂u0 b + · · · + vd ∂ ∂ud b = n c Bn−1 ,
  • 167. 148 10. Representaciones de B´ezier de parches triangulares donde c = v0b + 0 + · · · + vdb + d , lo cual se abrevia por c = ∆vb tal como se ilustra en la Figura 10.7. Figura 10.7: Las diferencias c . De manera similar se pueden calcular derivadas de orden superior. Una derivada direccional r-´esima Dv1 . . . Dvr b tiene coeficientes de B´ezier ∆v1 . . . ∆vr b , donde | | = n − r. El operador diferencia ∆v conmuta con los pasos del algoritmo de de Casteljau debido a que tomar combinaciones afines es una operaci´on conmutativa, vea 2.6. Por lo tanto podemos calcular la derivada r-´esima, realizando n − r pasos de de Casteljau seguidos por r pasos de diferencias. En particular, se obtiene que los puntos bguatda.com/cmx.p10...0, . . . , bguatda.com/cmx.p0...01 calculados en el pen´ultimo paso de de Casteljau generan el plano tangente de b en x. Observaci´on 3: Si d = 2, podemos considerar la malla de B´ezier de un polinomio b(x) = b Bn (Ù) como una funci´on lineal por trozos p(x) sobre a0a1a2. Entonces • La derivada direccional Dvp(x) de la malla de B´ezier contiene los pun- tos de B´ezier de Dvb(x). Este hecho se ilustra en la Figura 10.8 para una superficie funcional. 10.6 Convexidad de superficies funcionales En la presente secci´on nos restringiremos al caso de dos variables. Esto es, d = 2 y Ù = [u, v, w]t . Dada la representaci´on de B´ezier de un polinomio b(x) sobre un tri´angulo a0a1a2, se denomina poliedro de B´ezier de b(x) sobre A al polinomio p(x) a trazos que interpola las ordenadas b en las correspondientes abscisas. Demostraremos que
  • 168. 10.6. Convexidad de superficies funcionales 149 Figura 10.8: La derivada de una malla de B´ezier. si el poliedro de B´ezier p(x) de un polinomio b(x) es convexo, entonces b(x) es tambi´en convexo. El rec´ıproco no es cierto en general. V´ease 3.13, Ejercicio 11. Para la prueba, sea v0 = a2 − a1 , v1 = a0 − a2 , v2 = a1 − a0 tal como se ilustra en la Figura 10.3 y sea bµν = Dvµ Dvν b la segunda derivada de b con respecto a las direcciones vµ y vν, y pµν(x) denotar´a su poliedro de B´ezier. El poliedro de B´ezier p(x) es convexo si y s´olo si cada par de tri´angulos adyacentes forman una funci´on convexa. Esto se satisface precisamente, si p01 ≤ 0, p12 ≤ 0 y p20 ≤ 0 , vea la Figura 10.9. Debido a la propiedad de la c´apsula convexa esto implica que b01 ≤ 0, b12 ≤ 0, y b20 ≤ 0, y tambi´en que b00 = −b01 − b02 ≥ 0 , b11 = −b12 − b10 ≥ 0 , b22 = −b20 − b21 ≥ 0 . Como cada direcci´on v ∈ IR2 se puede expresar como v = αvµ + βvν , donde αβ ≤ 0 y µ, ν ∈ {0, 1, 2} ,
  • 169. 150 10. Representaciones de B´ezier de parches triangulares Figura 10.9: Convexidad de una malla de B´ezier. podemos rescribir la segunda derivada DvDvb como la suma de tres t´erminos no negativos DvDvb = α2 bµµ + 2αβbµν + β2 bνν ≥ 0 , lo cual prueba la convexidad de b. 3 Observaci´on 4: Un pol´ıgono convexo en el plano siempre representa una curva convexa. Para mallas de B´ezier triangulares en el espacio esto no es cierto en general, tal como lo ilustra la Figura 10.10. Figura 10.10: Parche cuadr´atico no-convexo con malla de B´ezier convexa. 10.7 Limitaciones de la convexidad Sabemos que los polinomios funcionales cuyos poliedros de B´ezier son con- vexos tambi´en son convexos. El rec´ıproco, sin embargo, no es cierto en gene- ral. Considere el polinomio cuadr´atico b = 3B200 − B101 + 3B002 , ilustrado junto con su poliedro de B´ezier en la Figura 10.11. Esta malla de B´ezier es claramente no convexa, pero b es convexo. Concre- tamente, las segundas derivadas parciales son b00 = b11 = 6 y b01 = 2.
  • 170. 10.7. Limitaciones de la convexidad 151 Figura 10.11: Un polinomio convexo con malla no convexa. Entonces para cualquier v = αv0 + βv1 = o se tiene DvDvb = α2 b00 + 2αβb01 + β2 b11 = 4(α2 + β2 ) + 2(α + β)2 0 , lo cual significa que b es estrictamente convexo. Note que todos los poliedros de B´ezier de b de grado m´as alto tambi´en son no convexos, pues para cualquier representaci´on de B´ezier de grado n del polinomio constante b01 = 2, las ordenadas de B´ezier son iguales a 2. Este resultado es sorprendente porque los poliedros de B´ezier de b convergen a b cuando n tiende a infinito, vea 11.9. Por lo tanto tenemos una secuencia de funciones no convexas con un l´ımite estrictamente convexo. Otro resultado negativo fue observado por Grandine [Grandine ’89]. Con- sidere un cuadril´atero abdc no convexo tal como se ilustra en la Figura 10.12 y sean b y c dos polinomios con contacto C1 a lo largo del segmento ad. Si b y c tienen mallas de B´ezier convexas sobre adc y abd, respectivamente, entonces tienen que ser lineales sobre ad. Figura 10.12: Dominio cuadrilateral no convexo. Se desprende del contacto C1 que b14 = c14(= Dv1 Dv4 c) sobre ad. Como existen constantes positivas α, β tales que v1 = αv2 + βv4, la convexidad de
  • 171. 152 10. Representaciones de B´ezier de parches triangulares los poliedros de B´ezier implica b11 = αb12 + βb14 ≤ 0 sobre la l´ınea ad y tambi´en que b11 ≥ 0. Entonces b11 = 0, lo que termina la prueba. Este resultado tiene tambi´en una consecuencia sorprendente. Supongamos que b tiene un poliedro de B´ezier convexo sobre abc. Entonces sus poliedros de B´ezier sobre los tri´angulos abd, bcd, y adc no pueden ser todos convexos a menos que b sea lineal sobre las tres rectas ad, bd y cd. Como b es convexo esto implica que b es lineal. Por lo tanto, la subdivisi´on, tal como se describe en 11.3, no preserva convexidad. Sin embargo vea el Ejercicio 1 de 11.12. 10.8 Ejercicios 1 El polinomio de Bernstein Bn (Ù) tiene un ´unico m´aximo sobre su tri´angulo de referencia. Este m´aximo se alcanza en Ù = /n. 2 El operador de Bernstein B asigna a una funci´on f, un polinomio de grado n B[f] = f( /n)Bn (Ù) . Muestre que el operador de Bernstein aplica sobreyectivamente los polinomios de grado m ≤ n sobre polinomios de grado m. 3 Verifique que el monomio uα vβ tiene la representaci´on de B´ezier de grado n ≥ α + β uα vβ = α!β!γ! n! i α j β Bn (u, v, w) , donde w = 1 − u − v, γ = n − α − β y α, β, γ ≥ 0. 4 Calcule la representaci´on de B´ezier sobre el tri´angulo 1 0 0 1 0 0 del poli- nomio en base monomial de grado n b(x, y) = 0≤i+j≤n aijxi yj .
  • 172. 10.8. Ejercicios 153 5 Sea ∆αβ el operador diferencia definido recursivamente por ∆αβ b = ∆α−1,β b + 1− 3 − ∆α−1,β b = ∆α,β−1 b + 2− 3 − ∆α,β−1 b y ∆00 b = b . Demostrar que ∆αβ b00n = α i=0 β j=0 α i β j (−1)α+β−i−j bijk , donde k = n − i − j. 6 Usando la expansi´on de Taylor y el Ejercicio 5 demuestre la siguiente f´ormula de conversi´on de la representaci´on de B´ezier a la monomial b Bn (Ù) = 0≤α+β≤n α i β j (−1)k−γ b n! α!β!γ! uα vβ , donde γ = n − α − β.
  • 174. 11 T´ecnicas de B´ezier para parches triangulares 11.1 Polinomios sim´etricos — 11.2 El teorema fundamental — 11.3 Subdivisi´on y reparametrizaci´on — 11.4 Convergencia bajo subdivisi´on — 11.5 Generaci´on de superficies — 11.6 El polinomio sim´etrico de la derivada — 11.7 Conexiones Cr simples — 11.8 Elevaci´on de grado — 11.9 Convergencia por elevaci´on de grado — 11.10 Conversi´on a la representaci´on tensorial de B´ezier — 11.11 Conversi´on a la representaci´on triangular de B´ezier — 11.12 Ejercicios. Similarmente al caso de una variable, a cada polinomio le corresponde, de manera ´unica, un polinomio sim´etrico multiaf´ın. Usando estos polinomios sim´etricos es f´acil deducir algoritmos para evaluar, elevar de grado, reparametrizar y subdividir representaciones triangulares de superficies de B´ezier. Esto generaliza lo desarrollado para polinomios univariados en el Cap´ıtulo 3. 11.1 Polinomios sim´etricos Cada superficie polin´omica b(x) de grado total ≤ n se puede asociar con un ´unico polinomio sim´etrico n-af´ın b[x1 . . . xn] sobre IR2 que tiene las siguientes propiedades. • b[x1 . . . xn] coincide con b(x)sobre su diagonal, esto es b[x . . . x] = b(x) • b[x1 . . . xn] es sim´etrica en sus variables, esto significa que para cualquier permutaci´on (y1 . . . yn) de (x1 . . . xn) se tiene b[y1 . . . yn] = b[x1 . . . xn] • b[x1 . . . xn] es af´ın en cada variable, es decir, b[(αx+(1−α)y), x2 . . . xn] = αb[x, x2 . . . xn]+(1−α)b[y, x2 . . . xn] .
  • 175. 156 11. T´ecnicas de B´ezier para parches triangulares El polinomio sim´etrico b[x1 . . . xn] tambi´en se denomina la forma polar [Casteljau ’85] o blossom de b(x) [Ramshaw ’87]. Para demostrar que para cada b(x) existe el polinomio sim´etrico es suficiente verificar que ´este existe para todos los elementos de una base de polinomios. Considere una combi- naci´on lineal b(x) = c C (x) de polinomios C (x) de grado n. Sean C [x1 . . . xn] sus polinomios sim´etricos donde = (i, j, k) ≥ O y | | = n, entonces el polinomio sim´etrico de b(x) es b[x1 . . . xn] = c C [x1 . . . xn] , pues satisface las tres propiedades mencionadas anteriormente. Note que la diagonal b[x . . . x] puede tener grado menor que n a pesar de que b[x1 . . . xn] depende de n variables. En el caso que las C sean los monomios An ij(x, y) = n xi yj , se obtienen los polinomios sim´etricos elementales An ij[x1 . . . xn] = α···β γ···δ xα i. . . xβ yγ j . . . yδ , donde xα = (xα, yα) y α, . . . , β, γ, . . . , δ son i + j enteros distintos, entre 1 y n. En el caso de que los C son los polinomios de Bernstein Bn (Ù) = n Ù , se obtienen los polinomios Bn [Ù1 . . . Ùn] = α···β γ···δ ε···ϕ uα i · · · uβ vγ j · · · vδ wε k · · · wϕ , donde uα, vα, wα son las coordenadas de Ùα y (α, . . . , β, γ, . . . , δ, ε, . . . , ϕ) es una permutaci´on de (1, . . . , n). Observaci´on 1: Los polinomios sim´etricos Bn [Ù1 . . . Ùn] satisfacen la relaci´on de recurrencia Bn [Ù1 . . . Ùn] = u1Bn−1 − 1 [Ù2 . . . Ùn]+v1Bn−1 − 2 [Ù2 . . . Ùn]+w1Bn−1 − 3 [Ù2 . . . Ùn] . Observaci´on 2: El vector Ù, de coordenadas baric´entricas, y el vector Ü de coordenadas afines est´an relacionados por x = x(Ù) = [a0a1a2]Ù y Ù = Ù(x) = Ô + [v1, v2]x , donde Ô; v1, v2 denotan las coordenadas afines asociadas al sistema de coor- denadas baric´entricas. Como estas transformaciones son afines, a partir de la forma polar a[x1 . . . xn], dada por las coordenadas afines, se puede construir la forma polar b[Ù1 . . . Ùn] = a[AÙ1 . . . AÙn] y rec´ıprocamente. Esto es, se tiene a[Ü1 . . . Ün] = b[Ù(Ü1) . . . Ù(Ün)].
  • 176. 11.2. El teorema fundamental 157 11.2 El teorema fundamental La unicidad del polinomio sim´etrico y su relaci´on con la representaci´on de B´ezier est´an dadas por el siguiente teorema: Para cada superficie polin´omica b(x) de grado ≤ n existe un ´unico polinomio n-variado, sim´etrico, multiaf´ın b[x1 . . . xn] con diago- nal b[x . . . x] = b(x). Es m´as, los puntos b0 = b[p i. . . p q j . . . q r k. . . r] son los puntos de B´ezier de b(x) sobre pqr. Prueba: Considere los puntos bl = b[p i. . . p q j . . . q r k. . . r x1 l. . . xl] , i + j + k + l = n . Como bn o = b[x1 . . . xn] es sim´etrico y multiaf´ın, este punto se puede calcular a partir de los puntos b0 a trav´es de la siguiente relaci´on de recurrencia (1) bl = ulbl−1 + 1 + vlbl−1 + 2 + wlbl−1 + 3 , donde ul, vl, wl son las coordenadas baric´entricas de xl con respecto a pqr, v´ease la Figura 11.1, donde las aplicaciones multiafines sim´etricas distintas deben diferir en alguno de sus argumentos [p i. . . pq j . . . qr k. . . r]. Es m´as, si todos los xl son iguales a x, entonces la relaci´on de recurrencia anteriror se reduce a la aplicaci´on del algoritmo de Casteljau para el c´alculo de b(x). En consecuencia, como la representaci´on de B´ezier es ´unica, los puntos b0 son los puntos de B´ezier de b(x) sobre pqr y, adicionalmente, puede haber solamente un polinomio sim´etrico y multiaf´ın que coincide con b(x) sobre su diagonal. 3 11.3 Subdivisi´on y reparametrizaci´on La f´ormula recursiva (1) ilustrada en la Figura 11.1 revela una propiedad muy importante del algoritmo de de Casteljau: El c´alculo de b(x) genera tambi´en los puntos de B´ezier b[p i. . . p q j . . . q x k. . . x], b[p i. . . p x j . . . x r k. . . r] , y b[x i. . . x q j . . . q r k. . . r]
  • 177. 158 11. T´ecnicas de B´ezier para parches triangulares Figura 11.1: El algoritmo de de Casteljau generalizado. de b sobre pqx, pxr, y xqr, respectivamente. La Figura 11.2 ilustra un ejemplo para n = 3. N´otese que los puntos b[x1x2x3] est´an etiquetados por sus argumentos x1x2x3. Note que las mallas de B´ezier de b(x) sobre pqx, pxr, y xqr forman parte de una malla compuesta la cual se dobla sobre si misma si x yace fuera de pqr. El c´alculo de esta malla compuesta se denomina subdivisi´on de la malla de B´ezier sobre pqr en x. Dada la malla de B´ezier de una superficie polin´omica b sobre el tri´angulo pqr se puede calcular su malla de B´ezier sobre un tri´angulo cualquiera xyz a trav´es de un proceso de subdivisi´on, vea [Prautzsch ’84a, Boehm et al. ’84]. Primero se subdivide la malla sobre pqr en x, luego se subdivide la malla sobre xqr en y; y finalmente se subdivide, la malla sobre xyr en z, vea la Figura 11.3. La permutaci´on de pqr o de xyz resulta en una subdivisi´on diferente. Es recomendable subdividir siempre en puntos interiores para evitar combina- ciones afines no convexas. La Figura 11.4 ilustra un caso en el cual es imposible evitar combinaciones no convexas con la construcci´on anterior, independientemente como se permuten pqr y xyz. Observaci´on 3: Para la construcci´on anterior se necesitan 3 · n+2 3 = O(n3 ) combinaciones afines Observaci´on 4: Cada punto de B´ezier b[x i. . . x y j . . . y z k. . . z] de b sobre xyz se puede calcular usando el algoritmo de de Casteljau generalizado, vea la Figura 11.2. Las combinaciones afines calculadas por este algoritmo son
  • 178. 11.4. Convergencia bajo subdivisi´on 159 Figura 11.2: Subdivisi´on de una malla de B´ezier. Figura 11.3: Reparametrizaci´on por subdivisi´on repetida. convexas si x, y y z yacen en el tri´angulo pqr. Observaci´on 5: Para calcular la malla de B´ezier sobre xyz por medio de las n+2 2 aplicaciones del algoritmo de de Casteljau se necesitan n+2 2 · n+3 3 = O(n5 ) combinaciones afines. 11.4 Convergencia bajo subdivisi´on La malla de B´ezier de b(x) sobre un tri´angulo pqr es una buena aproximaci´on del parche b si el tri´angulo es suficientemente peque˜no. M´as concretamente, sea pqr un tri´angulo y sea h su di´ametro. Denotemos por i = p i n + q j n + r k n un punto de coordenadas baric´entricas /n. Entonces existe una constante M independiente de pqr tal que max b(i) − b ≤ Mh2 .
  • 179. 160 11. T´ecnicas de B´ezier para parches triangulares Figura 11.4: Tri´angulos de referencia especiales. Para la prueba sea D el diferencial de b[x, i . . . i] = · · · = b[i . . . i, x] en x = i. Expandiendo el polinomio sim´etrico b[x1 . . . xn] alrededor de [i . . . i] se obtiene b = b[i . . . i] + iD[p − i] + jD[q − i] + kD[r − i] + O(h2 ) = b(i) + O(h2 ) , lo cual concluye la prueba. 3 Una aplicaci´on de esta propiedad se presenta en la pr´oxima secci´on 11.5 Generaci´on de superficies Como consecuencia de la Seccion 11.4, la subdivisi´on repetida de una malla de B´ezier produce aproximaciones tan buenas como se requiera de la superficie exacta. Discutimos tres estrategias de subdivisi´on: 1. Repitiendo la subdivisi´on siempre en el centro del tri´angulo de referen- cia, tal como se ilustra en la Figura 11.5 deja invariantes los di´ametros m´aximos de los tri´angulos de referencia. Por lo tanto la secuencia de mallas de B´ezier obtenidas a trav´es de esta estrategia de subdivisi´on no converge a la superficie. Figura 11.5: Subdivisi´on en los centros. 2. La subdivisi´on uniforme de cada tri´angulo de referencia tal como se muestra en las Figuras 11.6 y 11.7 genera una secuencia de B´ezier mallas de B´ezier, que converge a la superficie.
  • 180. 11.6. El polinomio sim´etrico de la derivada 161 Figura 11.6: Subdivisi´on uniforme. Figura 11.7: Subdivisi´on por bisecci´on repetida. 3. La subdivisi´on uniforme de la Figura 11.6 es computacionalmente cos- tosa y usa combinaciones afines, posiblemente no-convexas, v´ease 11.3. Entonces para generar un parche, la mejor estrategia es la ilustrada en la Figura 11.7. Es de bajo coste computacional y para su imple- mentaci´on s´olo se requiere de la evaluaci´on de combinaciones convexas. Comparando con otros m´etodos de generaci´on de superficies se observa que el m´etodo ilustrado en la Figura 11.7 es el m´as r´apido conocido hasta ahora [Peters ’94]. 11.6 El polinomio sim´etrico de la derivada La derivada direccional DÚb(Ù) de una superficie polin´omica en la direcci´on Ú = [v0, v1, v2]t , |Ú| = v0 + v1 + v2 = 0, tambi´en puede escribirse en t´erminos del polinomio sim´etrico b[Ù1 . . . Ùn]. Se desprende de 10.5 o directamente por derivaci´on del polinomio sim´etrico que DÚb(Ù) = n(v0b[ 0Ù . . . Ù] + v1b[ 1Ù . . . Ù] + v2b[ 2Ù . . . Ù]) = nb[ÚÙ . . . Ù] . Claramente, nb[ÚÙ2 . . . Ùn] representa el polinomio sim´etrico (n−1)-af´ın de DÚb(Ù). Note que b[ÚÙ2 . . . Ùn] es af´ın en Ù2, . . . , Ùn y es lineal en Ú.
  • 181. 162 11. T´ecnicas de B´ezier para parches triangulares Repitiendo el proceso de diferenciaci´on, se puede obtener los polinomios sim´etricos de derivadas direccionales de orden superior c(Ù) = DÚr . . . DÚ1 b(Ù) con respecto a r vectores Ú1, . . . , Úr, concretamente, c[Ùr+1 . . . Ùn] = n! (n − r)! b[Ú1 . . . ÚrÙr+1 . . . Ùn] . 11.7 Conexiones Cr simples La subdivisi´on tambi´en es una herramienta ´util para describir ciertas condi- ciones de diferenciabilidad sobre dos superficies polin´omicas b(x) y c(x) a lo largo de su curva com´un en t´erminos de sus puntos de B´ezier b y c sobre pqr y sqr, respectivamente. V´ease la Figura 11.8. Figura 11.8: La conexi´on C1 simple de Sabin. De 10.5 se desprende que las derivadas hasta orden r sobre el segmento qr determinan y son determinadas por los puntos de B´ezier b y c para i = 0, . . . , r. Esto nos lleva a la versi´on de Farin del teorema de St¨ark [Farin ’86, p.98]; v´ease tambi´en [Sabin ’77], p.85. Las derivadas de b y c coinciden hasta orden r sobre qr si y s´olo si las primeras r + 1 filas de los puntos de B´ezier de b y c sobre sqr tambi´en coinciden, lo cual significa que b[s i. . . s q j . . . q r k. . . r] = c , i = 0, . . . , r. Sobre pqr y sqr, el polinomio b[x r. . . x q l. . . q r n−r−l. . . r] tiene puntos de B´ezier b y c , respectivamente, donde i ≤ r, j ≤ l y k ≥ n−r−l. Los puntos pueden calcularse a partir de los usando el algoritmo de de Casteljau , v´ease 11.3 y las Figuras 11.8 y 11.9. Usando el teorema fundamental 11.2, lo anterior se puede rescribir de la siguiente manera
  • 182. 11.8. Elevaci´on de grado 163 Figura 11.9: La conexi´on C2 simple de Farin. Las derivadas de b y c coinciden hasta orden r sobre qr si y s´olo si para todo l = 0, . . . , n − r los polinomios b[x r. . . x q l. . . q r n−r−l. . . r] y c[x r. . . x q l. . . q r n−r−l. . . r] son iguales. Observaci´on 6: Los cuadril´ateros sombreados de las Figuras 11.8 y 11.9 son im´agenes diferentes del cuadril´atero pqrs. En consecuencia, cualesquiera m parches triangulares i (Ü), i = 1 . . . , m, alrededor de un v´ertice com´un tienen una conexi´on C1 simple en ese v´ertice si y s´olo si sus tri´angulos- par´ametros forman un pol´ıgono que es im´agen af´ın del pol´ıgono formado por los respectivos tri´angulos esquinas de las mallas de B´ezier asociadas. Observaci´on 7: Como dos polinomios son iguales si y s´olo si, sus formas polares coinciden, entonces (Ü) y (Ü) tienen las mismas derivadas hasta orden r sobre el segmento qr si y s´olo si sus formas polares satisfacen b[x1 . . . xr q j . . . q r k. . . r] = c[x1 . . . xr q j . . . q r k. . . r] para cualquiera x1, . . . , xr y todo j y k tales que r + j + k = n. Esta condici´on se emplea en [Lai ’91] para caracterizar splines Cr multivariados sobre triangulaciones arbitrarias 11.8 Elevaci´on de grado Una superficie de B´ezier polin´omica de grado n siempre tiene tambi´en una representaci´on de B´ezier de grado m, para cualquier m n. Tal como para el caso de curvas, la conversi´on a una representaci´on de un grado mayor se denomina elevaci´on de grado. Dada una representaci´on de B´ezier de grado n b(x) = b Bn (u) , x = [pqr]Ù ,
  • 183. 164 11. T´ecnicas de B´ezier para parches triangulares de una superficie polin´omica b(Ù) sobre un tri´angulo pqr veremos como se construye la representaci´on de B´ezier de grado n + 1. An´alogamente al caso de curvas presentado en 3.11 utilizamos el polinomio sim´etrico b[x1 . . . xn] de b(x). Es f´acil verificar que c[x0 . . . xn] = 1 n + 1 n l=0 b[x0 . . . x∗ l . . . xn] es multiaf´ın, sim´etrica y coincide con b(x) sobre la diagonal. Entonces por el teorema fundamental de 11.2 se tiene que los puntos b = c[p j0 . . . p q j1 . . . q r j2 . . . r] son los puntos de B´ezier de b(x) sobre pqr en su representaci´on de grado n + 1. b = j0 n + 1 b[p j0−1 . . . p q j1 . . . q r j2 . . . r] + j1 n + 1 b[p j0 . . . p q j1−1 . . . q r j2 . . . r] + j2 n + 1 b[p j0 . . . p q j1 . . . q r j2−1 . . . r] La Figura 11.10 ilustra la construcci´on asociada para n = 2. Figura 11.10: Elevaci´on de grado en uno. 11.9 Convergencia por elevaci´on de grado Repitiendo el proceso de elevaci´on de grado se obtienen representaciones de B´ezier de grado mayor b(x) = d Bm (Ù) , m n .
  • 184. 11.9. Convergencia por elevaci´on de grado 165 Los nuevos puntos de B´ezier d se pueden expresar f´acilmente en t´erminos de los b . Tomando r = m − n, podemos rescribir b(x) = | |=n b Bn · 1 como b(x) = | |=n b Bn · | |=r Br = | |=m   | |=n b β   Bm k , donde β = Bn B − Bm = n r − m . Entonces obtenemos la f´ormula de Zhou d = | |=n b β , Vea[Farin ’86, de Boor ’87]. Sean = (i1, i2, i3) y = (k1, k2, k3). Entonces β se puede escribir n k1 m · · · k1−i1+1 m−i1+1 k2 m−i1 · · · k2−i2+1 m−i1−i2+1 k3 m−i1−i2 · · · k3−i3+1 m−n+1 , de donde concluimos que β ≤ n k1 m + n m − n i1 k2 m + n m − n i2 k3 m + n m − n i3 y β ≥ n k1 m − n m i1 k2 m − n m i2 k3 m − n m i3 . En consecuencia β = Bn ( /m) + O(1/m) y por lo tanto d = b Bn ( /m) + O(1/m) . Por lo tanto podemos concluir que la malla de B´ezier de grado m de b(x) converge a b(x) linealmente cuando m tiende a infinito. Vea [Farin ’79, Trump Prautzsch ’96].
  • 185. 166 11. T´ecnicas de B´ezier para parches triangulares 11.10 Conversi´on a la representaci´on tensorial de B´ezier Sea b(x) un polinomio n-variado y sea b[x1, . . . xn] su forma polar, denota- mos por xst = x(s, t) una aplicaci´on biaf´ın que env´ıa el cuadrado unitario [0, 1]2 sobre un cuadril´atero convexo, vea Figura 11.11. Entonces el polinomio reparametrizado c(s, t) = b(x(s, t)) es un producto tensorial (n, n) en (s, t). La forma polar de este producto tensorial est´a dada por c[s1 . . . sn, t1 . . . tn] = 1 n! τ b[x(s1, τ1) . . . x(sn, τn)] , donde la suma se extiende sobre todas las permutaciones (τ1, . . . , τn) de (t1, . . . , tn). La prueba de ´esto se reduce a verificar que c satisface las tres pro- piedades que caracterizan la forma polar de un polinomio: simetr´ıa, afinidad en cada variable y restricci´on a la diagonal. Figura 11.11: Una reparametrizaci´on biaf´ın. Conociendo la forma polar del producto tensorial se puede aplicar el teorma fundamental 9.3 para obtener los puntos de B´ezier de c(s, t) sobre [0, 1] x [0, 1]. Estos puntos son cij = c[0 n−i. . . 01 i. . . 1, 0 n−j . . . 01 j . . . 1] la cual puede rescribirse como cij = j k=0 βijkb[x00 n+k−i−j . . . x00x01 j−k . . . x01x10 i−k. . . x10x11 k. . . x11] , siendo n!βijk el n´umero de parametrizaciones de (0 n−j . . . 01 j . . . 1) tales que exactamente k 1′ s est´an ubicados en las ´ultimas i posiciones. Luego βijk = 1 n! · j k i . . . (i + 1 − k) · (n − i) . . . (n − i + 1 − j + k) · (n − j)! = k! n! i k j k (n − i)!(n − j)! (n + k − i − j)! .
  • 186. 11.11. Conversi´on a la representaci´on triangular de B´ezier 167 De 11.3 recordamos que los puntos b[x00 . . . x00x01 . . . x01x10 . . . x10x11 . . . x11] resultan de la subdivisi´on de la malla de B´ezier de b(x) sobre x00x01x10 en x11, v´ease tambi´en [DeRose et al. ’93]. 11.11 Conversi´on a la representaci´on triangular de B´ezier Un producto tensorial b(x, y) de grado (m, n) tiene grado total ≤ m + n. Por lo tanto tiene una representaci´on de B´ezier de grado l = m + n sobre cualquier tri´angulo pqr. Para calcular esta representaci´on triangular, sea b[x1 . . . xm, y1 . . . yn] la forma polar del producto tensorial de b(x, y). En- tonces la forma polar (no necesariamente producto tensorial) de b(x) est´a dada por c[x1 . . . xl] = 1 l! b[xi1 . . . xim , yim+1 . . . yil ] donde la suma se extiende por todas las permutaciones (i1 . . . il) de (1 . . . l) y xi = (xi, yi). Claramente, c satisface las tres propiedades que caracterizan la forma polar. Los puntos de B´ezier de b(x) sobre un tri´angulo con v´ertices p = [p1, p2]t , q = [q1, q2]t y r = [r1, r2]t puede obtenerse a trav´es del teorma fundamental 11.2. Estos son los puntos bijk = c[p i. . . pq j . . . qr k. . . r] = α+β+γ=m (α,β,γ)≤(i,j,k) δijk αβγb[p1 α. . . p1q1 β . . . q1r1 γ . . . r1, p2 i−α. . . p2q2 j−β . . . q2r2 k−γ . . . r2] , donde δijk αβγ = i α j β k γ m!n! . De 9.5 obtenemos que los puntos b[p1 . . . p1q1 . . . q1r1 . . . r1, p2 . . . p2q2 . . . q2r2 . . . r2] aparecen en el algoritmo de de Casteljau para el producto tensorial usado para calcular b(r) a partir de los puntos de B´ezier sobre [pqr].
  • 187. 168 11. T´ecnicas de B´ezier para parches triangulares 11.12 Ejercicios 1 Considere un parche funcional con un poliedro de B´ezier convexo. De- muestre que la elevaci´on de grado y la subdivisi´on uniforme de la Figura 11.6 preservan la convexidad del poliedro de B´ezier. 2 Existen parches param´etricos para los cuales la observaci´on del Ejercicio 1 no es v´alida. Produzca un ejemplo. 3 Generalice el algoritmo de intersecci´on de 3.7 para parches triangulares. 4 Sean v1 = q − p y v2 = r − q. Muestre que la malla de B´ezier b sobre pqr es plana si ∆v1 ∆v1 b , ∆v1 ∆v2 b y ∆v2 ∆v1 b son cero. Por lo tanto el m´aximo de estas diferencias es una medida de la planaridad del parche de B´ezier. 5 El almacenamiento digital de mallas de B´ezier requiere cierto cuidado en aras de la eficiencia, tanto desde el punto de vista de utilizaci´on de memoria como de su acceso. Una manera eficiente de almacenar muchas mallas de B´ezier consiste en guardar los puntos bijk , i + j + k = n de cada malla en un arreglo lineal, digamos a[L] = bijk donde L = L(i, j) var´ıa desde 1 hasta n+2 2 . El acceso r´apido se garantiza si la funci´on L se almacena en una matriz L = [Lij]. D´e una f´ormula expl´ıcita para la funci´on L del Ejercicio 5.
  • 188. 12 Interpolaci´on 12.1 Interpolaci´on de Hermite — 12.2 El interpolador de Clough-Tocher — 12.3 El interpolador de Powell-Sabin — 12.4 Superficies de topolog´ıa arbitraria — 12.5 Parametrizaci´on singular — 12.6 Splines C1 de grado cinco de topolog´ıa arbitraria — 12.7 Ejercicios Dados valores y derivadas de una funci´on bivariada es f´acil construir un interpolador polin´omico por trozos usando la representaci´on de B´ezier. Sin embargo no existe una extensi´on a superficies param´etricas arbitrarias, por ejemplo, esferas. Para esto se requieren conexiones Cr m´as generales y/o parametrizaciones singulares. 12.1 Interpolaci´on de Hermite Dada una triangulaci´on T de un dominio poligonal de IR2 se puede construir una funci´on polin´omica por trozos de grado 4r+1 que es r-veces diferenciable e interpola cualesquiera derivadas dadas en los v´ertices de T , hasta orden 2r. La representaci´on de B´ezier es una herramienta muy ´util para describir esta construcci´on. La Figura 12.1 muestra un tri´angulo de la trangulaci´on T y las abscisas de B´ezier del interpolador para este tri´angulo en el caso r = 2, vea 10.3. Hay tres tipos de abscisas de B´ezier: las denotadas por c en las cuales las derivadas est´an prefijadas, aquellas en las cuales las ordenadas son arbitrarias, etiquetadas con c y las abscisas c, c, c cuyas ordenadas dependen de los tri´angulos adyacentes y est´an determinadas por las condiciones de conexi´on Cr .
  • 189. 170 12. Interpolaci´on Figura 12.1: Abscisas de B´ezier para r = 2. 12.2 El interpolador de Clough-Tocher Interpoladores de grado m´as bajo que los presentados en 12.1 se pueden construir para datos correspondientes a topolog´ıas arbitrarias. Sin embargo, ´esto se puede hacer s´olo a expensas de aumentar el n´umero de parches. El interpolador c´ubico C1 polin´omico por trozos que se describe a continuaci´on fue propuesto por Clough y Tocher [Clough Tocher ’65]. Dada una triangulaci´on T de un dominio poligonal en IR2 , subdividimos cada tri´angulo de T en un punto interior en tres microtri´angulos, tal como se ilustra en la Figura 12.2. Para cualesquiera valores y primeras derivadas en los v´ertices de T se puede construir una funci´on C1 que ser´a c´ubica sobre cada microtri´angulo. Figura 12.2: Subdivisi´on de un macrotri´angulo en tres microtri´angulos. La Figura 12.2 ilustra las abscisas de B´ezier de un tal interpolador sobre un tri´angulo de T . Las ordenadas de B´ezier sobre las abscisas c est´an dadas por
  • 190. 12.3. El interpolador de Powell-Sabin 171 los datos de interpolaci´on en los v´ertices. Las ordenadas en las abscisas c, c, c se determinan por las condiciones de conexi´on C1 a lo largo de las aristas de T tal como se describe en 12.1. Las ordenadas en las abscisas c est´an determinadas por las condiciones de conexi´on C1 a trav´es de las aristas de la triangulaci´on refinada. Esto significa que los cuatro puntos correspondientes a cada cuadri´atero sombreado en la Figura 12.2 son coplanares. Observaci´on 1: El interpolador anterior es dos veces diferenciable en los puntos de subdivisi´on. Para una prueba considere el parche cuadr´atico definido por las ordenadas de B´ezier sobre las seis abscisas interiores c, c, c, c de la Figura 12.2. Como las diez ordenadas de B´ezier sobre las diez abscisas interiores c, c, c, c, c de la Figura 12.2 tambi´en constituyen la malla de B´ezier subdividida del parche cuadr´atico, la condici´on de diferenciablidad se deduce del teorema de St¨ark de 11.7. 12.3 El interpolador de Powell-Sabin El problema de interpolaci´on 12.2 tambi´en se puede abordar con un inter- polador C1 cuadr´atico por trozos. Esto, sin embargo, requiere un n´umero a´un mayor de parches [Powell Sabin ’77]. En esta construcci´on cada macrotri´angulo se subdivide en seis microtri´angulos introduciendo puntos interiores c y puntos 3 sobre las aristas, vea la Figura 12.3. Los segmentos que conectan los puntos interiores, de tri´angulos adyacentes deben intersecar las aristas comunes en los puntos 3. Si los puntos c son los incentros de los tri´angulos, entonces los segmentos que conectan los incentros de tri´angulos adyacentes, en efecto, cortan sus aristas comunes en los puntos 3. V´ease tambi´en el Ejercicio 5. Figura 12.3: Abscisas de B´ezier de la subdivisi´on de Powell-Sabin Las ordenadas de B´ezier en las abscisas c est´an determinadas por las condi- ciones de interpolaci´on, las ordenadas denotadas por 3 y c est´an dadas por las condiciones de conexi´on C1 a lo largo de las aristas de subdivisi´on. Las nueve ordenadas de B´ezier que pertenecen al paralelogramo (de l´ıneas
  • 191. 172 12. Interpolaci´on interrumpidas) en la Figura 12.3 yacen sobre una superficie bilineal. Esto implica C1 -continuidad entre macrotri´angulos adyacentes. 12.4 Superficies de topolog´ıa arbitraria Las conexiones Ck simples descritas en 11.7, aunque suficientes para la mod- elaci´on de superficies no param´etricas, no son suficientes para la modelaci´on de superficies suaves arbitrarias. En particular se tiene lo siguiente: usando solamente parches triangulares regulares y conexiones C1 simples, es imposible construir una superficie cer- rada a menos que sea de g´enero uno. La Figura 12.4 muestra ejemplos de superficies cerradas de g´eneros 0, 1, 2 y 3. Figura 12.4: Superficies cerradas de varios g´eneros: 0, 1, 2 y 3. Para la prueba consideramos primero el caso cuando el g´enero es cero y procedemos por reducci´on al absurdo. Considere una superficie cerrada de g´enero 0 compuesta de parches triangulares regulares unidos con conexiones C1 simples. Tal como se ilustra en la Figura 12.5, subdividimos la superficie en dos pedazos, entonces por la Observaci´on 6 de 11.7, cada uno de ´estos se puede escribir en t´erminos de una parametrizaci´on regular C1 sobre un dominio triangulado simplemente conexo. Es m´as, existe una aplicaci´on af´ın que env´ıa todos los tri´angulos frontera del primer dominio sobre tri´angulos que bordean el segundo dominio. Sin embargo, claramente, esto es imposible, lo cual termina la prueba en este caso. Note que al contrario de la situaci´on anterior, un toro o cualquier otra su- perficie de g´enero 1, se puede parametrizar por medio de una aplicaci´on C1 regular sobre un rect´angulo, vea el Ejercicio 1. Finalmente, si una superficie de g´enero n ≥ 2 estuviera compuesta por parches triangulares con conexi´ones C1 simples (vea 11.7), ´esta se podr´ıa
  • 192. 12.5. Parametrizaci´on singular 173 Figura 12.5: Separaci´on de una superficie de g´enero en dos componentes. cortar tal como se ilustra en la Figura 12.4 y podr´ıa parametrizarse sobre un dominio triangulado con 2(n − 1) huecos cuyas fronteras corresponden a los cortes. Tal como en la situaci´on anterior, en estas condiciones tambi´en existe una aplicaci´on af´ın que env´ıa los tri´angulos frontera de un hueco en sus tri´angulos frontera adyacentes del hueco correspondiente. Esto, sin embargo es imposible, por lo cual una superficie de g´enero ≥ 2 tampoco puede estar compuesta de parches triangulares regulares con conexiones simples C1 . 12.5 Parametrizaci´on singular Para modelar superficies suaves de topolog´ıa arbitraria hay que introducir conexiones C1 de tipo general, (las cuales se describen en el Cap´ıtulo 14) o permitir parametrizaciones singulares. Para el caso de parches triangulares se pueden utilizar las singularidades estudiadas en 9.10 para productos ten- soriales. Sin embargo, es suficiente considerar las singularidades m´as d´ebiles ilustradas en la Figura 12.6. La Figura 12.6 muestra parte de la malla de B´ezier de un parche triangular polin´omico b(u, v) = b Bn (u, v, 1 − u − v) , donde b00n = b1,0,n−1 = b0,1,n−1 y b1,1,n−2 = αb2,0,n−2 + βb0,2,n−2 + γb00n
  • 193. 174 12. Interpolaci´on Figura 12.6: Puntos de B´ezier de una parametrizaci´on singular en un v´ertice. con α, β 0 , α+β +γ = 1 y puntos independientes b00n, b2,0,n−2, b0,2,n−2. Las derivadas de b(u, v) en u = (u, v) = (0, 0) se anulan. Sin embargo, existe una reparametrizaci´on u(x) tal que c(x) = b(u(x)), regular en x = u−1 (o). Despu´es de una transformaci´on af´ın se obtiene b00n = 0 , b2,0,n−2 = 2 n(n − 1)   1 0 0   , b0,2,n−2 = 2 n(n − 1)   0 1 0   . Por lo tanto, la expresi´on de Taylor de b(u) en u = (0, 0) es de la forma b(u) = x(u) 0 + d(u) , donde x(u) = u2 + 2αuv v2 + 2βuv = O( u 2 ) y d(u) = O( u 3 ) . Claramente, x e y son estrictamente mon´otonas en u y v para u, v ≥ 0. Por lo tanto x(u) es inyectiva en el dominio u, v ≥ 0. Es m´as, x(u) es regular para u = 0. En consecuencia, c(x) = b(u(x)) es continuamente diferenciable si c(x) tiene parciales continuas. Estas parciales est´an dadas por [cxcy] = [dudv] xu xv yu yv −1 = 1 xuyv − xvyu [dudv] yv −xv −yu xu , lo cual conduce a cx = O( u ) = O( x ) . De manera similar se puede argumentar para dy. Por lo tanto, c(x) y conse- cuentemente tambi´en b(u(x)), son continuamente diferenciables. Observaci´on 2: Si α, β 0 y 4αβ 1, tambi´en se puede demostrar que b(u) tiene un plano tangente continuo [Reif ’95a].
  • 194. 12.6. Splines C1 de grado cinco de topolog´ıa arbitraria 175 12.6 Splines C1 de grado cinco de topolog´ıa arbitraria Para construir superficies C1 de topolog´ıa arbitraria que interpolan planos tangentes prescritos en puntos dados, se pueden utilizar parametrizaciones singulares de parches triangulares. A continuaci´on describimos los ingre- dientes b´asicos para construir estas superficies. Note sin embargo, que esta descripci´on no debe ser considerada como un m´etodo elaborado para la cons- trucci´on. Considere una malla triangular con normales especificadas en cada uno de sus v´ertices, tal como se ilustra en la Figura 12.7. Figura 12.7: Malla triangular con normales en los v´ertices. Para cada cara de la malla se construye un interpolador de grado cinco tal como se ilustra esquem´aticamente en la Figura 12.8. Dado un tri´angulo de la malla cuyos lados est´an dados por l´ıneas gruesas, los puntos de B´ezier esquina c y los puntos de B´ezier adyacentes c (que coinciden con los anteriores) est´an dados por los v´ertices del tri´angulo. El pr´oximo anillo de puntos ∗ y 3 alrededor de cada conjunto de puntos de B´ezier coincidentes se escoge de manera tal que yazcan sobre el plano tangente prescrito en el v´ertice de su esquina y tal que los cuadril´ateros sombreados sean paralelogramos. Los puntos de B´ezier restantes c, c, c se escogen de manera tal que el resto de los cuadril´ateros sombreados sean tambi´en para- lelogramos. 12.7 Ejercicios 1 Construya una superficie cerrada de g´enero 1, es decir, una superficie topol´ogicamente equivalente a un toro, utilizando parches regulares con conexiones C1 simples.
  • 195. 176 12. Interpolaci´on Figura 12.8: La malla de B´ezier de un interpolador de grado cinco con singulari- dades. 2 Muestre que no se puede modelar superficies abiertas C1 cuya frontera tiene menos de tres esquinas, utilizando solamente parches regulares con conexiones simples C1 . La Figura 12.9 muestra dos tales superficies. Figura 12.9: Superficies abiertas sin esquinas y con dos esquinas. 3 Demuestre que se pueden modelar superficies C1 de topolog´ıa arbitraria con parches triangulares cuadr´aticos singulares con conexiones C1 sim- ples. 4 Demuestre que la superficie del Ejercicio 3, en general, podr´ıa contener parches planos. 5 Dada una triangulaci´on de IR2 , conecte los centroides de cada par de tri´angulos adyacentes. Verifique a trav´es de un ejemplo que estos seg- mentos de conexi´on podr´ıan intersecar otros tri´angulos. 6 Refute por medio de un ejemplo, que un elemento de Powell-Sabin tenga un poliedro de B´ezier c´oncavo o convexo si los tres planos tangentes en las esquinas se intersecan encima de un punto interior del tri´angulo
  • 196. 12.7. Ejercicios 177 dominio. V´ease tambi´en [Floater ’97, Carnicer Dahmen ’92, Bangert Prautzsch ’99]. 7 Generalice el esquema de interpolaci´on Powell-Sabin para funciones mul- tivariadas, v´ease tambi´en [Bangert Prautzsch ’99].
  • 198. 13 Construcci´on de superficies suaves 13.1 La conexi´on general C1 — 13.2 Conexi´on de dos parches triangulares c´ubicos — 13.3 Un interpolador triangular G1 — 13.4 El problema del v´ertice compartido — 13.5 El problema de la paridad — 13.6 Ejercicios La conexi´on C1 simple discutida en 11.7 es demasiado restrictiva para la mo- delaci´on de superficies regulares arbitrarias. Por esta raz´on, en esta secci´on, introducimos condiciones m´as generales para la conexi´on C1 de superficies interpolantes construidas con parches triangulares. Estas superficies nos per- mitir´an dise˜nar modelos en 3D de topolog´ıa abitraria. 13.1 La conexi´on general C1 Sean p(x, y) y q(x, y) dos parches regulares C1 que poseen una frontera com´un a lo largo de x = 0, es decir, p(0, y) = q(0, y) para todo y ∈ [0, 1]. La Figura 13.1 provee una ilustraci´on. Note que no se requiere que los parches p y q sean polin´omicos o que sean de tres o cuatro lados. Se dice que p y q tienen una conexi´on general C1 o conexi´on geom´etrica C1 o simplemente una conexi´on G1 a lo largo de x = 0, si sus normales unitarias coinciden sobre la frontera com´un, es decir, si px × py px × py = qx × qy qx × qy para x = 0 . Equivalentemente, la continuidad G1 tambi´en se puede caracterizar requirien- do que existan funciones de conexi´on λ(y), µ(y) y ν(y) tales que para todo x = 0 y todo y (1) λpx = µqx + νqy y λµ 0 , con la posible excepci´on de puntos aislados.
  • 199. 180 13. Construcci´on de superficies suaves Figura 13.1: Dos parches con un borde com´un. En particular, si p y q son polin´omicos y tienen una conexi´on G1 entonces las funciones de conexi´on son polinomios y salvo un factor com´un, se tiene grado λ ≤ grado qx(0, y) + grado qy(0, y) , grado µ ≤ grado px(0, y) + grado qy(0, y) , grado ν ≤ grado px(0, y) + grado qx(0, y) . Para la prueba se calcula el producto vectorial de ambos lados de la ecuaci´on (1) con qx y qy. Se obtiene λpx × qx = νqy × qx y λpx × qy = µqx × qy . Como q es regular, por lo menos una de las coordenadas de [qx x qy], es diferente de cero. Como la ecuaci´on (1) se puede multiplicar por un factor, podemos suponer que λ = [qx × qy]1 . Esto implica µ = [px × qy]1 y ν = −[px × qx]1 , lo cual prueba la aseveraci´on. 3 Observaci´on 1: Frecuentemente, se fija λ = 1, entonces µ y ν son, en general, funciones racionales. Observaci´on 2: La prueba anterior tambi´en es v´alida cuando p y q son funciones racionales. En este caso, las funciones λ, µ y ν son racionales y salvo un factor com´un, satisfacen los estimados de arriba. Observaci´on 3: Cualquier conexi´on G1 se puede convertir en una conexi´on simple C1 , por medio de un cambio de variable. Concretamente, si p y q
  • 200. 13.2. Conexi´on de dos parches triangulares c´ubicos 181 satisfacen la condici´on G1 dada por (1), entonces a(x, y) = p(x, y) y b(x, y) = q(µx, νx + y) tienen una conexi´on C1 simple. V´ease 9.7 y 11.7. Observaci´on 4: El hecho de que dos parches se conecten G1 a lo largo de su frontera com´un no depende de sus parametrizaciones. Sin embargo, las funciones de conexi´on dependen de las parametrizaciones. El grado m´aximo de las funciones de conexi´on es invariante bajo reparametrizaci´on af´ın. 13.2 Conexi´on de dos parches triangulares c´ubicos Considere dos parches triangulares p(Ù) = p B3 (Ù) y q(Ù) = q B3 (Ù) , donde 0 ≤ = (i, j, k), | | = i + j + k = 3 y p = q para i = 0. Esto significa que los parches p y q est´an conectados continuamente a lo largo de u = 0 y que sus planos tangentes coinciden en 1 = (0, 1, 0) y 2 = (0, 0, 1). Esta situaci´on se ilustra en la Figura 13.2. Note que los cuadril´ateros sombreados son planos pero no est´an necesaria- mente en correspondencia af´ın. Figura 13.2: Conexi´on G1 y movimiento de los puntos interiores. En general, los puntos interiores de B´ezier p111 y q111, se pueden mover para lograr una conexi´on G1 a lo largo de u = 0. En particular, en esta secci´on veremos como obtener una conexi´on suave usando funciones de conexi´on λ(v), µ(v) y ν(v), que son lineales. Entonces la condici´on para la conexi´on G1 a lo largo de u = 0 se reduce a una ecuaci´on c´ubica en w = 1 − v. Denotando las derivadas parciales en las direcciones 0 − 2 y 2 − 1, con los sub´ındices 0 y 1, respectivamente, la ecuaci´on c´ubica resulta λp0 = µq0 − νq1 , λµ 0 .
  • 201. 182 13. Construcci´on de superficies suaves En v = 0, las derivadas p0, q0 y q1 son conocidas. Por lo tanto esta ecuaci´on establece un sistema lineal en λ0 = λ(0), µ0 = µ(0) y ν0 = ν(0), el cual tiene una familia a un par´ametro de soluciones. Similarmente tambi´en se tiene una familia monoparam´etrica de soluciones para λ1, µ1 y ν1 en v = 1. Si escogemos soluciones arbitrarias en v = 0 y en v = 1 ´estas determinan las funciones lineales λ, µ y ν. Como una c´ubica est´a determinada por sus valores y los valores de sus derivadas en dos puntos, en nuestro caso, v = 0 y v = 1 y estamos interesados en la expresi´on de su derivada, entonces diferenciamos la condici´on para la conexi´on G1 , a lo largo de u = 0. En consecuencia se obtiene λp01 − µq01 = νq11 + ν′ q1 − λ′ p0 + µ′ q0 . Expresando p01, q01, etc. en t´erminos de los puntos de B´ezier, en 1 obtene- mos las ecuaciones p01 = 6(p003 + p111 − p012 − p102) , q01 = 6(q021 + q111 − q012 − q120) etc. y expresiones similares para p01, q01, etc. en 2. Los puntos q11, q1, q0 y p0 no dependen de p111, q111 en v = 0 y v = 1. Sustituyendo estas expresiones en la derivada de la condici´on G1 , se obtiene una ecuaci´on lineal para p111 y q111: [p111q111] λ0 λ1 −µ0 −µ1 = [w0w1] , donde w0 y w son combinaciones de puntos de B´ezier p y q , con la excepci´on de p111 y q111. Este sistema tiene una soluci´on si la matriz λ0 λ1 −µ0 −µ1 es invertible. Por lo tanto, existe una soluci´on, a menos que λ(y) : µ(y) = constante. Esta ´ultima situaci´on se ilustra en la Figura 13.3 3. Figura 13.3: Configuraci´on cr´ıtica. En efecto, no hay soluci´on si λ(y) : µ(y) = constante, si los dos cuadril´ateros no est´an en correspondencia af´ın y si la frontera com´un p(0, y) = q(0, y) es
  • 202. 13.3. Un interpolador triangular G1 183 una c´ubica regular, es decir, si qy(0, y) es una c´onica que no pasa por el origen. Concretamente, rescribiendo la condici´on G1 como px − µ λ qx = ν λ qy notamos que su lado izquierdo es cuadr´atico y como qy tambi´en es una cuadr´atica sin ra´ıces reales, se tiene que ν/λ tiene que ser constante. Esto, finalmente, contradice la suposici´on de que los cuadril´ateros de la Figura 13.3 est´an en correspondencia af´ın. Si q0,y es cuadr´atica o no regular, se puede verificar que existe una soluci´on con funciones lineales λ, µ y ν. Vea el Ejercicio 3. 13.3 Un interpolador triangular G1 En 1985, Bruce Piper [Piper ’87] introdujo una t´ecnica para construir super- ficies cuadr´aticas G1 que interpolan un conjunto de curvas c´ubicas dispuestas en forma triangular, tal como se ilustra en la Figura 13.4. A continuaci´on presentamos esta construcci´on, pero evitando situaciones cr´ıticas, lo cual per- mite su realizaci´on con parches c´ubicos. Figura 13.4: Una red triangular G1 de curvas c´ubicas. Los “tri´angulos” adyacentes de la red de c´ubicas se comportan tal como se ilustra en la Figura 13.2. Por simplicidad, suponemos que no hay solu- ciones cr´ıticas, tales como las ilustradas en la Figura 13.3. Entonces, cada “tri´angulo” se puede interpolar con un macroparche que consiste de tres parches c´ubicos como se describe a continuaci´on. La Figura 13.5 ilustra es- quem´aticamente la posici´on de los puntos de B´ezier del macroparche.
  • 203. 184 13. Construcci´on de superficies suaves Los puntos de B´ezier c, en la frontera est´an dados por la red de c´ubicas. Los puntos de B´ezier c son los centroides de ternas de puntos vecinos c, tal como se indica en la Figura 13.5. Los puntos de B´ezier c se determinan como en 13.2, de manera que macroparches adyacentes se conecten G1 . Los puntos denotados con son los centroides de las ternas vecinas de puntos c c c. El punto de B´ezier es el centroide del tri´angulo . Entonces los parches adyacentes del macroparche tienen conexiones C1 sim- ples. ´Esto es similar al elemento de Clough-Tocher, v´ease 12.2. Figura 13.5: El macroparche. 13.4 El problema del v´ertice compartido Por medio de su construcci´on, Piper resuelve de manera impl´ıcita una di- ficultad que se presenta cuando se trata de construir una conexi´on G1 con varios parches que comparten un v´ertice. ´Este se denomina problema del v´ertice compartido y consiste en garantizar que todos los parches tengan el mismo plano tangente en el v´ertice com´un. Estas condiciones forman un sistema c´ıclico. Considere n parches (triangulares o cuadrangulares) pi (x, y), i = 1, . . . , n tales que pi (0, z) = pi+1 (z, 0) , donde pn+1 = p1 , tal como se ilustra en la Figura 13.6, y (2) λipi x(0, z) = µipi+1 y (z, 0) + νipi+1 x (z, 0) , con 3n funciones de conexi´on λi(z), µi(z) y νi(z). Para z = 0, estas ecuaciones imponen restricciones sobre la derivada pi x y las funciones de conexi´on.
  • 204. 13.5. El problema de la paridad 185 Figura 13.6: Un v´ertice compartido por n = 6 parches. Tambi´en se tienen condiciones sobre las segundas derivadas, las cuales se obtiene diferenciando las condiciones para la continuidad G1 , dadas por (2), λ′ ipi x + λipi xy = µ′ ipi+1 y + µipi+1 xy + ν′ ipi+1 x + νipi+1 xx , las cuales se denominan restricciones de torsi´on. Para z = 0, estas ecua- ciones forman un sistema lineal c´ıclico. [p1 xy . . . pn xy]      λ1 −µ1 −µ2 λ2 ... −µn λn      = [r1 . . . rn] , donde ri = −λ′ ipi x + µ′ ipi+1 y + ν′ ipi+1 x + νipi+1 xx . Escribimos este ´ultimo sistema de manera abreviada como TA = R. 13.5 El problema de la paridad La matriz c´ıclica A, correspondiente a las restricciones de torsi´on tiene rango n si n es impar, y rango n − 1 si n es par. Por lo tanto A es no singular s´olo para n impar. Se tiene entonces, que las restricciones de torsi´on se pueden satisfacer si el n´umero de parches es impar. Cuando n es par, en general no se puede garantizar que las restricciones puedan ser satisfechas. Para verificar este sorprendente hecho, n´otese que det A = λ1 . . . λn − µ1 . . . µn = Πλi − Πµi . Calculando el producto vectorial de λipi x = µipi+1 y + νipi+1 x ,
  • 205. 186 13. Construcci´on de superficies suaves con pi+1 x = pi x se obtiene λi : µi = [pi+2 x × pi+1 x ] : [pi x × pi+1 x ] , lo cual implica que Πλi : Πµi = (−1)n y, como λi = 0 para todo i, det A = = 0 si n es par = 0 si n s impar . Como la submatriz de A obtenida eliminando la primera fila y la primera columna, tiene rango m´aximo entonces el rango de A es por lo menos n − 1, lo cual termina la verificaci´on. Observaci´on 5: Las restricciones de torsi´on, AT = R, se satisfacen si los datos provienen de parches p1 , . . . , pn que forman una superficie G1 . En particular este es el caso si los pi resultan de reparametrizaciones locales de un parche polin´omico p. Observaci´on 6: Si n = 4 y λ′ i(0) = µ′ i(0) = ν′ i(0) = 0, para i = 1, 2, 3, 4 como se ilustra en la Figura 13.7, entonces las restricciones de torsi´on pueden ser satisfechas, v´ease 9.7. Figura 13.7: Tangentes opuestas iguales. Observaci´on 7: Cuando se subdivide cada parche pi , tal como en la cons- trucci´on de Peters, las restricciones de torsi´on siempre pueden ser satisfechas. V´ease [Peters ’91].
  • 206. 13.6. Ejercicios 187 13.6 Ejercicios 1 Demuestre que el problema de la Secci´on 13.2 siempre se puede resolver si p y q son parches cuadr´aticos. 2 Resuelva el problema de la Secci´on 13.2 para la siguiente configuraci´on de pijk ′ s p201 p111 p012 p300 p210 p120 p030 q300 q210 q120 q030 q201 q111 q012 =   1 1 0    p111     6 1 1     0 0 0     2 0 0     4 0 1     6 0 1     1 −1 0    q111     5 −1/2 1   . 3 Verifique que el problema de la Secci´on 13.2, vea la Figura 13.3, tiene una soluci´on con funciones lineales λ = µ y ν, si q(0, v, 1, −v) es cuadr´atica o no regular. Sugerencia: Si q(0, v, 1, −v) es cuadr´atico escogemos λ = µ = 1. Si q(0, v, 1, −v) = 0 para v = v0, escogemos λ = µ = (v − v0)c1 y ν = vc2, donde las constantes c1 y c2 se eligen de manera que se satisfaga la condici´on G1 para v = 1. 4 Demuestre que las restricciones de torsi´on de 13.4 se satisfacen si y s´olo si s = t1 1 − µ1 · · · µn λ1 · · · λn se puede resolver para t1, donde s = µ1 · · · µn−1 λ1 · · · λn rn + · · · + µ1 λ1λ2 r2 + 1 λ1 r1 . 5 La ecuaci´on s = 0 se puede interpretar como un sistema lineal en ν′ 1(0), ν′ 2(0) y ν1(0). Este sistema tiene una soluci´on ´unica a menos que p2 xx = o. 6 Considere los parches cuadr´aticos p(x, y) = pijB44 ij (x, y) y q(x, y) = qijB44 ij (x, y)
  • 207. 188 13. Construcci´on de superficies suaves tales que las curvas frontera p(x, 0) y q(x, 0) coinciden y son c´ubicas. Vea la Figura 13.8. Y sean λ, µ y ν, funciones de conexi´on de grado 1, 1 y 3, respectivamente, tales que la condici´on de continuidad G1 λpy(x, 0) = µpy(x, 0) + νqx(x, 0) y su derivada con respecto a x, en x = 0 y x = 1, se satisfacen. Figura 13.8: Desplazamiento de los puntos de B´ezier para garantizar la conexi´on G1 para todo x. Demuestre que, en general se pueden ajustar los puntos p21 y q21 de manera que la condici´on G1 se satisfaga para todo x.
  • 208. 14 Construcciones - Gk 14.1 La conexi´on general Ck — 14.2 Conexiones Gk usando curvas tranversales — 14.3 Conexiones Gk usando la regla de la cadena — 14.4 Superficies Gk de topolog´ıa arbitraria — 14.5 Parches suaves de n lados — 14.6 Parches multilaterales en el plano — 14.7 Ejercicios Dos parches se pueden conectar suavemente si cada uno se puede parametrizar de manera tal que todas sus derivadas hasta cierto orden son iguales en cada uno de los puntos de su frontera com´un. Para una reparametrizaci´on arbitraria esta condici´on para una conexi´on suave significa que, en cada punto de la frontera com´un las derivadas de ambos parches est´an relacionadas por una matriz de conexi´on. Esto es an´alogo al caso de las curvas. En este cap´ıtulo consideraremos las condiciones de suavidad y las utilizaremos para construir superficies de topolog´ıa arbitraria con un grado de suavidad prescrito. 14.1 La conexi´on general Ck Sean p y q dos parches regulares con una curva frontera com´un b. Figura 14.1: Una conexi´on general Ck .
  • 209. 190 14. Construcciones - Gk Decimos que p y q tienen una conexi´on general Ck a lo largo de b si para cada b0 de b estos dos parches tienen una conexi´on local Ck simple, repara- metrizando si es necesario. Esto significa que localmente existen reparame- trizaciones regulares u y v tales que p ◦ u y q ◦ v tienen derivadas parciales iguales a lo largo de la curva b hasta orden k. N´otese que es suficiente repara- metrizar uno solo de los parches, digamos q por v ◦ u−1 , vea la Figura 14.2. Una conexi´on general Ck se denomina tambi´en conexi´on Gk . Figura 14.2: La conexi´on general Ck simplificada. Si p y q tienen una conexi´on Gk en un punto b0, de su frontera com´un, entonces se puede construir una parametrizaci´on local Ck proyectando sobre un plano conveniente. Esto se deduce del teorema de la funci´on impl´ıcita. r(x, y) = p ◦ u ◦ φ−1 (x, y) si (x, y) yace en π(p) q ◦ v ◦ ψ−1 (x, y) si (x, y) yace en π(q) . Figura 14.3: Parametrizaci´on por proyecci´on.
  • 210. 14.2. Conexiones Gk usando curvas transversales 191 14.2 Conexiones Gk usando curvas transversales Un m´etodo para verificar si dos parches p y q tienen una conexion Gk a lo largo de su frontera com´un b(t) est´a dado por: Si b(t) es diferenciable, y si para cada b0 en b(t) existe una curva regular c(s) k veces diferenciable que yace en la uni´on de p y q, e intersecta transversalmente la curva b entonces p y q tienen una conexi´on Gk . Probaremos este hecho por inducci´on sobre k. De acuerdo a nuestras hip´otesis, p y q est´an conectados continuamente. Por lo tanto es suficiente verificar la condici´on de conexi´on Gk suponiendo que p y q tienen conexi´on Gk−1 a lo largo de b para k 0. Supongamos que p y q est´an parametrizados localmente alrededor de b0 = b(t0) = c(s0) por una proyecci´on π sobre un plano P, tal como se ilustra en la Figura 14.2. Sin p´erdida de generalidad podemos usar las coordenadas afines x e y con respecto al sistema dado por πb y las derivadas de πb y πc en el punto πb0. Es m´as, sean ¯p = px i...x y j ...y y ¯q = qx i...x y j ...y derivadas parciales de p y q de orden i + j = k − 1. Entonces la hip´otesis de inducci´on implica ¯p(πb(t)) = ¯q(πb(t)) . Derivando esta expresi´on con repsecto a t en t = t0 ¯px(o) = ¯qx(o) . Entonces s´olo queda por verificar ∂k ∂yk [p(o) − q(o)] = o . Como la curva c(s) es k veces continuamente diferenciable obtenemos o = ∂k ∂sk [c(s) − c(s)]s=s0 = ∂k ∂sk [p(πc(s)) − q(πc(s))]s=s0 . Usando la regla de la cadena podemos expresar esta derivada en t´erminos de la derivada de πc y las parciales de p y q. Entonces como πc′ (s0) = (0, 1) y se tiene o = ∂k ∂yk [p(x) − q(x)]x=0 ,
  • 211. 192 14. Construcciones - Gk lo cual concluye la prueba.3 Observaci´on 1: Si la curva b(t) no es diferenciable en t = t0, pero el cociente [b(tn) − b(t0)]/(tn − t0) converge a dos direcciones diferentes, por lo menos para dos secuencias tn → t0, entonces p y q tienen una conexi´on Gk en b(t0) si tienen una conexi´on Gk−1 a lo largo de b(t). 14.3 Conexiones Gk usando la regla de la cadena Sean p(u, v) y q(u, v) dos superficies regulares tales que p(0, y) = q(0, y). En 14.1 vimos que se tiene una conexi´on Gk a lo largo de x = u = 0 si para cada u existe una reparamtrizaci´on local u(x, y) para q tal que las derivadas de p(x, y) y q(u(x, y)) son iguales hasta orden k. De 14.2 se desprende que si todas las parciales de p y q ◦ u con respecto a x son iguales, entonces todas las derivadas cruzadas tambi´en son iguales. Por lo tanto p y q tienen una conexi´on Gk a lo largo de x = u = 0 si y s´olo si existe una apliciaci´on regular Ck u(x, y) = (u(x, y), v(x, y)) tal que para todo (0, y) se tiene p = q px = qu ux + qv vx pxx = quuu2 x + 2quvuxvx + qvvv2 x + quuxx + qvvxx etc. , donde ux 0. N´otese que u(0, y) = (0, y). En paraticular, si p y q son racionales, estas condiciones Gk implican que ux(0, y), vx(0, y), uxx(0, y), . . . son tambi´en funciones racionales. Las condiciones de conexi´on Gk se simplifican si u es lineal en x. En este caso ux s...x es cero para s = 2, . . . , k y se tiene p = q , px = qu α + qv β , pxx = quuα2 + 2quvαβ + qvvβ2 , ... px k...x = i+j=k k i qu i...uv j ...vαi βj ,(1) donde α = α(y) = ux(0, y) y β = β(y) = vx(0, y). Note que el lado derecho de la igualdad representa tambi´en las derivadas de q en la direcci´on [α β]t = ux. Observaci´on 2: Una derivada parcial cruzada px i...xy j ...y se puede expresar en t´erminos de las parciales cruzadas de q hasta orden total i + j y de las
  • 212. 14.4. Superficies Gk de topolog´ıa arbitraria 193 parciales cruzadas de u(x, y) hasta orden (i, j). Por ejemplo pxy = quuuxuy + quv(uxvy + uyvx) + qvvvxvy + quuxy + qvvxy . Observaci´on 3: En particular, si u(x, y) es una dilataci´on en x e y, es decir, u(x, y) = [c1x c2y]t , entonces todas las parciales cruzadas px i...xy j ...y se pueden expresar en t´erminos de las parciales cruzadas de q y u hasta de orden (i, j). 14.4 Superficies Gk de topolog´ıa arbitraria En esta secci´on consideramos la t´ecnica de dise˜no a “mano alzada”. Nues- tra meta es construir superficies que interpolen un conjunto v´ertices ci con contactos prescritos en esos puntos ci por superfices polin´omicas si. Consid- eramos que los ci est´an organizados en una malla de cuadidrl´ateros. La superficie resultante es Gk continua y consiste de parches producto ten- sorial, cada uno definido sobre [0, 1] × [0, 1]. Cada parche correponder´a un´ıvocamente a un cuadril´atero. Por simplicidad suponemos que la malla es orientable y no tiene frontera. Un v´ertice se denomina regular si tiene exactamente cuatro vecinos e irregu- lar si esta condici´on no se cumple. Supondremos adem´as que los v´ertices irregulares est´an aislados, esto significa que los vecinos de cada v´ertice aislado son regulares, vea la Figura 14.4. Figura 14.4: Malla con v´ertices irregulares aislados. Los pasos de la construcci´on son los siguientes: 1. Se reparametrizan las superficies si por rotaciones del dominio.
  • 213. 194 14. Construcciones - Gk 2. Para cualesquiera dos superficies vecinas, si y sj, calculamos un inter- polador de Hermite bij. 3. Para cada cuadril´atero cicjckcl de la malla construimos un parche p que tiene contacto Gk con bij, bjk, bkl y bli a lo largo de sus cuatro curvas frontera. Si todos las v´ertices son regulares p tiene bi-grado 2k + 1 y si no, entonces el bigrado es 2k2 + 2k + 1. A continuaci´on daremos la descripci´on detallada de cada uno de estos pasos. 1. Para cada i, suponemos que si(0, 0) = ci y denotamos por, ν el n´umero de segmentos que confluyen en ci. Rotamos la superficie si por ϕi = 360◦ /ν. Estos producen los polinomios sk i (x) = si(Rk x) , donde R = cos ϕi − sin ϕi sin ϕi cos ϕi . Enumeramos los vecinos de ci en el sentido contrario de las agujas del reloj. Si cj es el k-´esimo vecino, entonces asociamos el polinomio escalado sij(x) = sk i x, y tan(ϕj/2) con la arista dirigida cicj. Esto se ilustra en la Figura 14.5. Figura 14.5: Reparametrizaci´on del dominio por rotaci´on.
  • 214. 14.4. Superficies Gk de topolog´ıa arbitraria 195 2. Para cada arista dirigida cicj se determina un polinomio bij(x) por in- terpolaci´on de Hermite de sij(x) y sji(x). Si ci es regular entonces bij se construye de manera que hasta orden (k, k) sus derivadas en x = (0, 0) coin- cidan con las de sij. Esto se abrevia por bij(x) k,k =x = 0 sij(x) . Si ci es irregular, entonces se requiere C2k -contacto, bij(x) 2k =x = 0 sij(x) y an´alogamente en x = (1, 0), se requiere contacto Ck,k o contacto, C2k de bij(x, y) y sji(1 − x, −y), respectivamente. Esto se ilustra en la Figura 14.6. Figura 14.6: Un polinomio frontera. Los bij se determinan de manera tal que sus derivadas transversales ∂r ∂yr bij(x, 0) , r = 0, . . . , k , tengan grado minimal. Por lo tanto si ci y cj son regulares, entonces bij tiene grado 2k+1 y si ci o cj es irregular, entonces ∂r ∂yr bij tiene grado 3k+1−r. Los puntos de B´ezier de bij se presentan esquem´aticamente en la Figura 14.7 para k = 2, cuando ci es irregular. Los puntos determinados por los C2k -contactos en ci se se˜nalan con tri´angulos △, los puntos determinados por los contactos Ck,k en cj se denotan con cuadrados y los puntos determinados por la condici´on de minimalidad se se˜nalan con c´ırculos ◦. Los puntos etiquetados por “ · ” no son de inter´es. An´alogamente se obtiene un segundo polinomio bji para la arista (orientada al rev´es) cjci. Por construcci´on ambos polinomios tienen contacto simple Ck a lo largo de y = 0, bij(x, y) k =y = 0 bji(1 − x, −y) . Adem´as, tambi´en por construcci´on, los polinomios bij y bik asociados al v´ertice ci tienen contacto Gk,k o G2k en ci.
  • 215. 196 14. Construcciones - Gk Figura 14.7: Esquema de los puntos de B´ezier de un polinomio frontera. 3. Para cualquier cuadril´atero de la malla se construye un parche p(u, v) de la superficie final Gk a partir de los cuatro polinomios asociados a sus aristas. Para cada cicj usamos la reparametrizaci´on xij(u, v) = brsB2k,2k rs (u, v) de bigrado 2k. La malla de B´ezier de la reparametrizaci´on xij se muestra en la Figura 14.8 para k = 2 y ϕ = ϕi = 360◦ /5. Figura 14.8: Reparametrizaci´on xij. En general, si cj es regular, los puntos de B´ezier relevantes de xij est´an dados por brs = cos ϕi sin ϕi B11 01(u, v) + 1 tan ϕi 2 B11 11(u, v) + 0 0 B11 00(u, v) + 1 0 B11 10(u, v) donde (u, v) = 1 2k (r, s) si r, s ≤ k y por brs = 1 2k r s sin ϕi 2 si s ≤ k ≤ r .
  • 216. 14.5. Parches suaves de n lados 197 Los puntos de B´ezier restantes brs, para r k pueden escogerse en forma arbitraria, lo cual se indica por l´ıneas punteadas en la Figura 14.8. Si cj es irregular, xij se obtiene a partir de xji por medio de la transformaci´on xij(u, v) = 1 0 + −1 0 0 1 xji(1 − u, v) . Note que la aplicaci´on xij es la identidad si ci y cj son regulares. Sean c1, c2, c3, c4 los v´ertices de un cuadril´atero (ordenados en el sentido contrario a las agujas de un reloj). Entonces el parche p(u, v) correspondiente de la superficie final Gk se construye de manera que (2) p(u, v)    k =v = 0 b12 ◦ x12(u, v) k =u = 1 b23 ◦ x23(v, 1 − u) k =v = 1 b34 ◦ x34(1 − u, 1 − v) k =u = 0 b41 ◦ x41(1 − v, u) Note que, por construcci´on, las derivadas parciales de p hasta orden (k, k) en los v´ertices est´an bien definidas por estas condiciones. Adem´as recuerde que la r-´esima derivada transversal a la frontera de un polinomio bij es de grado menor o igual que ≤ 3k + 1 − r. Por lo tanto se desprende de (1) en 14.3 que la r-´esima derivada transversal a la curva frontera de p(u, v) es de grado menor o igual que 2kr + 3k + 1 − r ≤ 2k2 + 2k + 1. A lo largo de una arista entre dos v´ertices regulares el grado es m´as bajo, de hecho menor o igual que ≤ 2k + 1. Si todos los v´ertices son regulares, las condiciones (2) definen un ´unico parche p de bigrado 2k + 1. Si uno o dos de los v´ertices son irregulares entonces p ha de tener bigrado 2k2 + 2k + 1 para satisfacer todas las condiciones de frontera (2). Sin embargo en este caso, las condiciones (2) no determinan p completamente: sus 2k2 ×2k2 puntos de B´ezier interiores pueden ser escogidos arbitrariamente. 14.5 Parches suaves de n lados La construcci´on en 14.4 produce una superficie de bigrado 2k2 + 2k + 1. A´un para k = 2, el bigrado resultante: 13, podr´ıa ser demasiado alto en aplicaciones pr´acticas. Concretamente, los costos de almacenamiento son altos y los procesos de evaluaci´on, largos y susceptibles a errores de redondeo.
  • 217. 198 14. Construcciones - Gk Para evitar lo anterior [Prautzsch ’97] introdujo un m´etodo general para cons- truir superficies Gk regulares de bigrado 2(k+1). A continuaci´on presentamos las ideas fundamentales de este m´etodo. Recordemos de 14.4 y 13.4 que la dificultad fundamental para construir una superficie suave con parches rectangulares (o triangulares) consiste en la uni´on de tres o m´as de cuatro parches con un v´ertice com´un. Por lo tanto es de inter´es estudiar parches suaves con n curvas frontera, que puedan ser ajustados con conexiones simples Ck en huecos con n lados. Para construir tales superficies se puede proceder de la manera siguiente. Primero, construimos una reparametrizaci´on del plano x, y con parches planos xi(u), u ∈ [0, 1]2 , i = 1, . . . , 4n, de bigrado k+1 de manera que formen un pol´ıgono curvil´ıneo, tal como se ilustra en la Figura 14.9 para n = 5. Los parches interiores x1, . . . , xn = x1 tienen conexi´on C0 , xi(0, u) = xi+1(u, 0) , mientras que todas las otras conexiones son conexiones simples Ck , es decir, para todo u, v e i = 1, . . . , n se satisfacen las siguientes ecuaciones: xi(u, 1) k = xi+3n(u, 0) , xi(1, v) k = xi+2n(0, v) , xi+3n(1, v) k = xi+n(0, v) , xi+n(u, 0) k = xi+2n(u, 1) , x1+2n(u, 0) k = x4n(0, u) y para i = 2, . . . , n xi+2n(u, 0) k = xi+3n(0, u) . Note que todas la conexiones son G∞ (es decir, Gk , para cualquier k ) pues la superficie yace en el plano. En 14.6 describiremos los parches xi, expl´ıcitamente. Segundo, consideramos cualquier polinomio p(x, y) en IR3 y lo reparametri- zamos a trav´es de las aplicaciones xi. Entonces obtenemos 4n parches pi(u) = p(xi(u)) , i = 1, . . . , 4n , conectados G∞ . Es m´as, dos parches adyacentes pi y pj con i ≥ n o j ≥ n tienen una conexi´on Ck simple. La superficie con n lados que consiste de los parches pi se denomina macro- parche o suscintamente p-parche. El p-parche tiene muchos par´ametros
  • 218. 14.5. Parches suaves de n lados 199 Figura 14.9: Un macroparche plano de n lados, n = 5. libres, o sea que los parches pi pueden ser modificados preservando las cone- xiones Ck simples y las Gk -conexiones. En particular, sea p un polinomio cuadr´atico, entonces el p-parche es de bigrado 2k + 2. Sus puntos de B´ezier se despliegan esquem´aticamente en la Figura 14.10 para k = 1 y n = 5. Los puntos de B´ezier indicados con puntos s´olidos determinan las conexiones Gk entre los n parches interiores y se denominan fijos. Los puntos de B´ezier etiquetados con cuadrados y aquellos sin marcas se denominan libres. Estos pueden ser modificados arbitrariamente. Los dem´as puntos de B´ezier est´an etiquetados con c´ırculos y son dependientes. ´Estos se determinan a partir de la condici´on de que cualesquiera dos parches adya- centes pi y pj para j n, tengan una conexi´on Ck simple . Similarmente, tenemos puntos de B´ezier fijos, libres y dependientes para cualesquiera k y n. En particular, se pueden escoger todos los puntos de B´ezier libres de manera que todas las n fronteras del p-parche y tambi´en sus derivadas transversales hasta orden k (o k + 1) sean polin´omicas y no sola- mente polin´omicas por trozos. En consecuencia dados cualesquiera parches polin´omicos r1, . . . , r2n de bigrado menor o igual 2k + 2 con Ck conexiones, as´ı como se ilustra en la Figura 14.11, existen p-parches de n lados de bigrado 2k + 2 que se ajustan con conexiones Ck al hueco formado por r1, . . . , r2n. Tambi´en es posible escoger los puntos de B´ezier de dos p-parches de manera que tengan cuatro parches polin´omicos en com´un. Por ejemplo, los puntos de B´ezier indicados por cuadrados en la Figura 14.10 pueden escogerse como los puntos de B´ezier fijos del segundo p-parche.
  • 219. 200 14. Construcciones - Gk Figura 14.10: Puntos de B´ezier de un macroparche de 5 lados. Por lo tanto, si cada v´ertice irregular tiene s´olo vecinos regulares, es posible interpolar cualquier malla de cuadril´ateros por medio de parches polin´omicos con conexiones Gk simples y generales. Una cara de la malla de este interpolador corresponde a un parche de bigrado 2k + 1 si todos sus v´ertices son regulares, y corresponde a cuatro parches de bigrado 2k + 2, en caso contrario. En v´ertices regulares, la superficie puede interpolar cualesquiera parciales cruzadas hasta orden (k, k) y en v´ertices extraordinarios hasta orden 2. 14.6 Parches multilaterales en el plano En 14.5 consideramos p-parches planos que consisten de 4n parches x1, . . . , x4n de bigrado k+1 con conexiones simples C0 y Ck , lo cual se ilustra en la Figura 14.9 . En esta secci´on estudiamos los p-parches planos expl´ıcitamente. Estos parches son regulares e inyectivos y no tienen superposici´on. Omitiremos los detalles t´ecnicos de la prueba. La Figura 14.12 muestra los puntos de control de la representaci´on B-spline, de los parches exteriores xn+1, . . . , x4n para k = 4 y n = 5. ´Estos se indican por c´ırculos. El centro de la figura es un punto de control m´ultiple. Los c´ırculos peque˜nos indican algunos de los puntos de control para el caso k = 3
  • 220. 14.6. Parches multilaterales en el plano 201 Figura 14.11: Construyendo un p-parche para un hueco. y n = 5. A continuaci´on especificamos estos parches con mayor precisi´on. Cualesquiera cuatro parches de la frontera xi+n, xi+3n, xi+1+2n, xi+1+n forman una super- ficie B-spline producto tensorial si(u, v) = k+1 r=3 k+1 s=0 ci rsNi(u)Nj(v) , (u, v) ∈ [k − 2, k + 2] × [k + 1, k + 2] donde los Ni denotan los B-splines uniformes de grado k + 1 y nodos i, i + 1, . . . , i + k + 2. Note que las superficies si se superponen en los parches de las esquinas xi+n. Los puntos de control ci 00, . . . , ci k−2,k−2 son todos cero y para k par, los puntos crs, tales que r y s k 2 − 1, est´an dados por ci rs = (r − k 2 + 1) cos ϕi−1 sin ϕi−1 + (s − k 2 + 1) cos ϕi sin ϕi , con ϕi = i · 360◦ /n. Los dem´as puntos de control se definen por la relaci´on ci rs = ci+1 s,k−2−r , −3 ≤ r ≤ k 2 − 1 y k 2 − 1 ≤ s ≤ k + 1 . Los centros de los cuadril´ateros de la malla de control son los puntos de control ci rs para los xi de bigrado impar k. Los n parches interiores x1, . . . , xn tienen contacto Ck con los parches exterio- res xn+1, . . . , x4n. Por lo tanto conocemos todos los puntos de B´ezier con
  • 221. 202 14. Construcciones - Gk Figura 14.12: La malla de control para xn+1, . . . , x4n. la excepci´on de x00, el cual est´a asociado con el polinomio de Bernstein, producto tensorial Bk+1 0 (u) · Bk+1 0 (v). Por razones de simetr´ıa definimos x00 = 0. Observaci´on 4: La escogencia de arriba de los xi no es la ´unica posible. Por ejemplo, la aplicaci´on caracter´ıstica del esquema del punto medio, vea 16.1 y 16.6, provee tambi´en buenos candidatos pra los parches xn+1, . . . , x4n para k = 1 y k = 2. Observaci´on 5: Los parches x1, . . . , xn tienen una singularidad en el origen si cij = o para todo i, j = 0, . . . , k − 1. Con esta reparametrizaci´on la construcci´on de 14.6 resulta en splines Ck parametrizados singularmente, v´ease [Reif ’98]. 14.7 Ejercicios 1 Calcule la derivada ∂i+j ∂xi∂yj q(u(x, y)) en t´erminos de las derivadas parciales de q(u, v) y u(x, y). 2 En 14.4 se supone que cada parche de la superficie Gk que se construye tiene por lo menos dos v´ertices regulares en esquinas opuestas.
  • 222. 14.7. Ejercicios 203 Modifique la construcci´on de manera que esta condici´on no sea necesaria. ¿Cual es el grado de la superficie resultante? 3 Haga una construcci´on similar a la de 14.4 pero consistente de parches triangulares conectados Gk . ¿Cu´al es el m´aximo grado de los parches? 4 Haga una construcci´on similar a la de 14.6, de un p-parche regular que consiste de parches polin´omicos triangulares con conexiones Gk . ¿En este caso cu´al ser´ıa el grado m´aximo de los parches? 5 Desarrolle una construcci´on de un macroparche multilateral plano consis- tente de parches triangulares con conexiones C0 o Ck . Trabaje an´alogamente a 14.6. Demuestre que el grado minimal de un tal macro- parche es 3k/2 + 1. V´ease [Prautzsch Reif ’99].
  • 224. 15 Subdivisi´on estacionaria para mallas regulares 15.1 Esquemas de producto tensorial — 15.2 Subdivisi´on estacionaria en general y m´ascaras — 15.3 Teoremas de convergencia — 15.4 Promedios crecientes — 15.5 C´alculos con esquemas de diferencias — 15.6 C´alculos con esquemas de promedios — 15.7 Subdivisi´on de mallas triangulares — 15.8 Box splines sobre mallas triangulares — 15.9 Subdivisi´on de mallas hexagonales — 15.10 Half-box splines sobre mallas triangulares — 15.11 Ejercicios En el esquema de subdivisi´on una malla de control regular se transforma en otra malla de control regular cuyos v´ertices son combinaciones afines de los puntos de control originales. Los pesos de esta combinaciones afines se pueden dar gr´aficamente por medio de m´ascaras o pueden ser representadas algebraicamente a trav´es de un polinomio caracter´ıstico como en el caso de curvas. En este cap´ıtulo discutimos esquemas de subdivisi´on especiales y generales sobre mallas triangulares y hexagonales e introducimos box splines y half-box splines sobre mallas triangulares regulares. 15.1 Esquemas de producto tensorial Cualesquiera dos esquemas de subdivisi´on para curvas definen un esquema de subdivisi´on para productos tensoriales, definido sobre una malla rectangular. Tal como fue presentado en 8.6 y 8.8, sean A = [αj−2i] y B = [βj−2i] dos esquemas estacionarios para curvas, y sean α(x) = αixi y β(y) = βjyj , sus polinomios caracter´ısticos, respectivamente. Sean cij, i, j ∈ Z los v´ertices de una malla rectagular y supongamos, por simplicidad que la matriz C = [cij] es bi-infinita en filas y columnas. Esto tambi´en cubre el caso de mallas finitas pues siempre se pueden agregar puntos de control iguales a cero. Diremos que la secuencia de mallas de control Cm = (At )m CBm
  • 225. 206 15. Subdivisi´on estacionaria para mallas regulares obtenida a partir de C subdividiendo m veces, todas las columnas usando A y todas las filas usando B, resulta de la aplicaci´on del esquema de producto tensorial dado por A y B. M´as precisamente, cualquier v´ertice cm+1 ij de la malla Cm+1 se calcula a partir de los v´ertices cm kl de Cm a trav´es de la ecuaci´on de refinamiento cm+1 ij = k l cm kl αi−2k βj−2l . Usando los multi-´ındices i, j ∈ Z2 y la abreviaci´on γkl = αkβl la ecuaci´on de refinamiento toma una forma similar a la de 8.8 para los esquemas de curvas, concretamente cm+1 i = j cm j γi − 2j . Si A y B coinciden en la matriz de subdivisi´on del algoritmo de Lane- Riesenfeld Sn = DMn , para splines uniformes de grado n, (vea 8.4), entonces el esquema de producto tensorial que se le asocia tambi´en se puede describir por medio de los siguientes dos operadores. El operador de duplicaci´on D cuadruplica todos los puntos de control de una malla de control C, D(C) = Dt CD = [c⌊i/2⌋] . Sean e1 = [1 0], e2 = [0 1] y e = [1 1]. Entonces el operador de prome- diaci´on A aplica una malla C en la malla A(C) = Mt CM = 1 4 [ci + ci−e1 + ci−e2 + ci−e] la cual conecta los centroides de cualesquiera dos cuadril´ateros de C que tengan una arista com´un. Entonces el algoritmo de Lane-Riesenfeld para splines producto tensorial de bigrado n est´a dado por el operador Mn = An D. En particular, M1 = AD representa el operador de refinamiento que aplica una malla C en una malla M1(C) m´as fina, que conecta los puntos medios de la aristas de C con sus extremos y los centroides de dos cuadril´ateros adyacentes de C. En la Figura 15.1 la malla C se indica con trazos suaves, la malla M1(C) con trazos suaves y trazos punteados y la malla M2(C) con trazos s´olidos. Observaci´on 1: De 8.2 se desprende que para cualquier m la secuencia de mallas de control Cm = [cm ij ] = Mm n (C) representa la misma superficie spline s(u, v) = i,j cijNn i (u)Nn j (v) ,
  • 226. 15.2. Subdivisi´on estacionaria en general y m´ascaras 207 Figura 15.1: Refinaci´on y promediaci´on de una malla. donde Nn i denota el B-spline uniforme de grado n sobre los nodos i, i + 1, . . . , i + n + 1. Aplicando dos veces el resultado sobre convergencia de 6.3 se obtiene la siguiente estimaci´on sup i,j s((i, j)/2m ) − cm ij = O(1/4m ) bajo la condici´on que las segundas derivadas de s est´an acotadas en IR2 . 15.2 Subdivisi´on estacionaria en general y m´ascaras Cualquier ecuaci´on de refinamiento cm+1 i = k cm k γi−2k con un n´umero finito de coeficientes γi representa un esquema general de subdivisi´on. Si los γij son productos de la forma αiβj, entonces se tiene el esquema de producto tensorial, presentado en 15.1. En la ecuaci´on de refinamiento se presentan cuatro tipos de combinaciones diferentes. Los ´ındices k de los pesos γk usados en el c´alculo del punto ci m+1 forman el conjunto i + 2Z2 el cual es uno de los siguientes Z2 , e1 + Z2 , e2 + Z2 , e + Z2 . Las cuatro matrices (finitas) [γ−2k], [γe1−2k], [γe2−2k] y [γe−2k] se denominan m´ascaras. Las m´ascaras tambi´en caracterizan el esquema de subdivisi´on. Observaci´on 2: Una condici´on necesaria para la convergencia de un es- quema de subdivisi´on es que cada m´ascara defina una combinaci´on af´ın, (vea
  • 227. 208 15. Subdivisi´on estacionaria para mallas regulares 15.3). Esto significa que los pesos de cada m´ascara deben sumar uno. Sin embargo, para evitar fracciones es com´un trabajar con alg´un m´ultiplo. La m´ascara siempre se puede recuperar dividiendo por la suma de los pesos. En lo que sigue usaremos esta convenci´on. Observaci´on 3: Las cuatro m´ascaras del operador M1 definido en 15.1, son 1 0 1 0 , 1 1 1 1 , 0 0 1 0 , 0 0 1 1 . Ellas se representan gr´aficamente del lado izquierdo de la Figura 15.2. El lado derecho de esta figura muestra las cuatro m´ascaras 9 3 3 1 , 3 9 1 3 , 3 1 9 3 , 1 3 3 9 . del operador M2 = AM∞ para splines bi-cuadr´aticos. Figura 15.2: Las cuatro m´ascaras del algoritmo de Lane-Riesenfeld M1 (izquierda) y M2 (derecha). Observaci´on 4: Note que el operador de refinamiento M1 se describe con cuatro m´ascaaras, mientras que el operador de promediaci´on A es caracteri- zado por una sola m´ascara. Las Figuras 15.3 y 15.4 ilustran las m´ascaras de A y A2 . Figura 15.3: La m´ascara del operador de promediaci´on A (izquierda) y su acci´on (derecha).
  • 228. 15.3. Teoremas de convergencia 209 Figura 15.4: La m´ascara del operador A2 (izquierda) y su acci´on (derecha). 15.3 Teoremas de convergencia Una secuencia de mallas de control Cm = [cm i ] se obtiene en el esquema de subdivisi´on estacionaria a partir de una secuencia finita γi: cm+1 i = j cm j γi−2j . Decimos que la secuencia Cm converge uniformemente a una funci´on c(x, y) si el m´aximo de las distancias sup i cm i − c(i/2m ) converge a cero, cuando m tiende a infinito. Si la funci´on l´ımite c(x) es continua y diferente de cero, entonces los pesos γi−2j, j ∈ Z2 , de cada m´ascara, suman uno. Para la prueba, sin p´erdida de generalidad podemos suponer que c(o) = o. Entonces, para todo i, los puntos cm i = c(i/2m ) + (cm i − c(i/2m )) convergen a c(o) cuando m tiende a infinito. En consecuencia, la suma finita cm i = j cm−1 j γi−2j converge a c(o) = j c(o)γi−2j , lo cual concluye la prueba. 3 La convergencia de una secuencia de mallas de control Cm, depende de dos secuencias de pol´ıgonos de diferencias ∇kCm = [cm i − cm i−ek ] , k = 1, 2 . Concretamente, se tiene el siguiente hecho:
  • 229. 210 15. Subdivisi´on estacionaria para mallas regulares Una secuencia Cm obtenida por subdivisi´on estacionaria converge uniformemente a una funci´on uniformemente continua c(x, y) si y s´olo si los pol´ıgonos de diferencias ∇1Cm y ∇2Cm convergen uniformemente a cero. Obviamente, si Cm converge a una funci´on continua entonces las diferencias tienden a cero. Para simplificar la prueba del rec´ıproco supongamos que el m´aximo de las diferencias δm = max k=1,2 sup i ∇kcm i , converge a cero. Sea adem´as cm (x, y) = i,j cm ij Ni(2m x)Nj(2m y) un interpolador lineal por trozos de la malla de control Cm, donde Ni(x) es el B-spline lineal por trozos sobre los nodos i − 1, i, i + 1. Entonces cm (i/2m ) = cm i . Como cm+1 2j − cm j ≤ k cm k − cm j · |γ2j−2k| ≤ δmγ , donde γ es un m´ultiplo de i |γi|, que depende del tama˜no de la m´ascara [γ2k]. Por lo tanto para i ∈ 2j + {0, 1}2 obtenemos cm+1 i −cm+1 2j +cm+1 2j −cm (j/2m )+cm (j/2m )−cm (i/2m+1 ) ≤ 2δm+1+δmγ+δm . Esto implica sup cm+1 (x) − cm (x) ≤ 2δm+1 + (γ + 1)δm . Por lo tanto los splines lineales cm (x) y sus mallas Cm convergen uniforme- mente a funciones uniformemente continuas c(x) . 3 Es m´as, si los pol´ıgonos Cm y los pol´ıgonos de diferencias divididas 2m ∇vCm = 2m [cm i − cm i−v] convergen uniformemente a funciones uniformememnte con- tinuas c(x) y d(x), respectivamente, donde v ∈ Z2 , entonces d(x) es la derivada direccional de c(x) respecto a v. Para la prueba, sea u ∈ Z2 tal que u y v sean linealmente independientes. Claramente, las mallas de control [cm ij ] = [cm iu+jv]
  • 230. 15.4. Promedios crecientes 211 convergen a c(xu + yv) y los pol´ıgonos de diferencias 2m ∇v[cm ij ] convergen a d(xu + yv). Entonces sin p´erdida de generalidad, podemos suponer que v = e2. Claramente los splines localmente constantes dm(x, y) = i,j 2m ∇vcm ij N0 i (2m x)N0 j (2m y) y los splines cm(x, y) = dm(x, y)dy = i,j cm ij N0 i (2m x)N1 j (2m y) convergen uniformemente a d(x) y c(x), respectivamente. Entonces c(x, y) = d(x, y)dy, lo cual concluye la prueba . 3 15.4 Promedios crecientes En 15.3 consideramos diferencias divididas de mallas de control. En esta secci´on estudiaremos promedios de mallas Si la secuencia de pol´ıgonos Cm = [ci]i ∈ Z2 converge uniforme- mente a una funci´on c(x), con soporte compacto e integrable Rie- mann, entonces la sucesi´on de promedios am ij = 1 4m 2m −1 k,l=0 cm i−k,j−l converge uniformemente a la funci´on uniformemente continua a(x) = [0,1]2 c(x − t)dt . Para la prueba, sea Ω el intervalo (i − [0, 1]2 )/2m el cual depende de i y m. Como c(x) tiene soporte compacto y es integrable Riemann, las sumas i∈Z2 4−m (sup x∈Ω c(x) − inf x∈Ω c(x)) convergen a cero. Por lo tanto las sumas de Riemann rm i = 4−m 2m −1 k,l=0 c((i−k, j−l)/2m ) convergen uniformemente a a(i), para todo i, cuando m tiende a infinito. Como cm i converge uniformemente a c(x), los promedios am i converge uni- formemente a las sumas de Riemann rm i lo concluye la prueba. 3 Similarmente se puede demostrar tambi´en el siguiente resultado:
  • 231. 212 15. Subdivisi´on estacionaria para mallas regulares Si la sucesi´on de pol´ıgonos Cm = [ci]i ∈ Z2 converge uniforme- mente sobre cualquier compacto a una funci´on continua c(x), en- tonces los promedios crecientes sobre rectas bm i = 1 2m 2m −1 k=0 cm i−kv , v ∈ Z2 , convergen uniformemente sobre cualquier compacto a la funci´on uniformemente continua b(x) = 1 0 c(x − tv)dt . Observaci´on 5: Los promedios am i son promedios sobre rectas de promedios sobre rectas. Concretamente, am i = 1 2m 2m −1 k=0 bm i−ke1 , e1 = [1 0] , donde bm i = 1 2m 2m −1 l=0 cm i−le2 , e2 = [0 1] . 15.5 C´alculos con esquemas de diferencias Un esquema de subdivisi´on estacionaria tambi´en puede representarse con fun- ciones generatrices. An´alogamente al m´etodo de la secci´on 8.8, multiplicamos la ecuaci´on de refinamiento por el monomio xi = xi yj y sumamos sobre i. Esto resulta en i cm+1 i xi = i j cm j γi−2jx2j xi−2j = j cm j x2j k γkxk , lo cual se puede abreviar como cm+1 (x) = cm (x2 )γ(x) . El factor γ(x) = k γkxk
  • 232. 15.5. C´alculos con esquemas de diferencias 213 representa el esquema de subdivisi´on y se denomina su s´ımbolo o poli- nomio caracter´ıstico. En el caso de un producto tensorial el polinomio caracter´ıstico es el producto de dos polinomios univariados, α(x) y β(y), que representan a los dos esquemas de subdivisi´on de las curvas. Cualquier esquema de subdivisi´on para curvas tiene un esquema de dife- rencias subyacente, pero esto en general no es cierto para los esquemas de subdivisi´on de superficies. Para estudiar cuando un esquema de subdivisi´on para superficies tiene un esquema de diferencias, identificamos las mallas de control y los esquemas de subdivisi´on con sus polinomios generatrices. Dada una malla de control c(x) = cixi , su refinamiento bajo un esquema estacionario γ(x) est´a dado por b(x) = c(x2 )γ(x) , y las diferencias ∇vci = ci − ci−v, v ∈ Z2 , forman el pol´ıgono ∇vc(x) = c(x)(1 − xv ) . Entonces las diferencias del polinomio refinado b(x) = c(x2 )γ(x) est´an dadas por ∇vb(x) = ∇vc(x2 )γ(x) 1 − xv 1 − x2v . En consecuencia, existe un esquema estacionario, que denominaremos, el esquema de las ∇v-diferencias, el cual aplica ∇vc en ∇vb si y s´olo si δ(x) = γ(x)/(1 + xv ) es un polinomio. Cuando δ(x) resulta un polinomio, entonces es el polinomio caracter´ıstico del esquema de diferencias. Observaci´on 6: Dada una malla de control C = [ci] denotamos por ∇C la malla de control cuyos “v´ertices” son las matrices ∇ci = [∇e1 ci ∇e2 ci] Si la malla de control B se obtiene por subdivisi´on estacionaria de C, entonces ∇B se obtiene a partir de ∇C bajo un esquema estacionario cuyos pesos son matrices 2 × 2. V´ease [Kobbelt ’00, Cavaretta et al. ’91, Teorema 2.3]. Observaci´on 7: El esquema de Lane-Riesenfeld Mn (vea 15.1), tiene poli- nomio caracter´ıstico γ(x, y) = 4−n (1 + x)n+1 (1 + y)n+1 . Esto se desprende directamente de la Observaci´on 5 de la secci´on 8.8.
  • 233. 214 15. Subdivisi´on estacionaria para mallas regulares 15.6 C´alculos con esquemas de promedios Usando polinomios caracter´ısticos es f´acil ver que para cualquier esquema de subdivisi´on estacionaria hay un esquema estacionario para los promedios. Sea cm (x) = γ(x)cm−1 (x2 ) la representaci´on de la secuencia de mallas de control [cm i ] obtenida con el esquema de subdivisi´on estacionaria γ. Usando las variables xk = x2k esta secuencia se puede escribir como cm (x) = γ(x0) . . . γ(xm−1)c0 (xm) . Es m´as, para cualquier v ∈ Z2 los polinomios bm (x) = bm i xi que repre- sentan los promedios por rectas bm i = 1 2m 2m −1 k=0 cm i−kv . Tomando yk = xkv , lo anterior se puede escribir como bm (x) = 2−m (1 + y + y2 + y3 + · · · + y2m −1 )cm (x) = 2−m (1 + y)(1 + y2 )(1 + y4 ) . . . (1 + y2m−1 )cm (x) = β(x0) . . . β(xm−1)c0 (x) , donde β(x) = γ(x)(1 + xv )/2 es el polinomio caracter´ıstico del esquema de promedios obtenido a partir del esquema γ. Esto siginifica que el esquema β se puede describir a trav´es del siguiente algoritmo: Dados puntos de control bi, i ∈ Z2 y un vector v ∈ Z2 repetimos 1 Para cada i subdividimos con el esquema γ, es decir, di = j bjγi−2j 2 Para cada i calculamos los promedios por rectas bi = 1 2 (di + di−v) Similarmente, se tiene que los promedios am i = 1 4m 2m −1 k,l=0 cm i−k,j−l
  • 234. 15.7. Subdivisi´on de mallas triangulares 215 se obtienen a partir de los puntos a0 i = c0 i con el esquema estacionario repre- sentado por α(x) = γ(x)(1 + x)(1 + y)/4. Este esquema se describe tambi´en con un algoritmo: Dados lo puntos de control ai, i ∈ Z2 repetimos 1 Para cada i subdividimos con el esquema γ, es decir, di = j ajγi−2j 2 Para cada i calculamos los promedios por rectas fi = 1 2 (di + di−e1 ) 3 Para cada i calculamos los promedios por rectas ai = 1 2 (fi + fi−e2 ) 15.7 Subdivisi´on de mallas triangulares Cada malla regular de cuadril´ateros puede ser transformada en una malla regular de tri´angulos y viceversa agregando o eliminando aristas “diagonales” tal como se ilustra en la Figura 15.5. Por lo tanto cada malla regular de tri´angulos se puede representar por una matriz bi-infinita C =     ... . . . · · · cij · · · . . . ...     cuyos elementos son los v´ertices de la malla. Figura 15.5: Transformaci´on de una malla regular de cuadril´ateros en una malla de tri´angulos.
  • 235. 216 15. Subdivisi´on estacionaria para mallas regulares En particular, los tres vectores e1 = 1 0 , e2 = 0 1 , e3 = −1 −1 de IR2 generan una red triangular regular uniforme tal como se ilustra en la Figura 15.6. Figura 15.6: Una malla regular uniforme generada por tres vectores. Usando las tres direcciones de la malla triangular podemos generalizar el algoritmo de Lane-Riesenfeld a un algoritmo de promediaci´on en tres direcciones. V´ease [Prautzsch ’84b], y tambi´en [Boehm et al. ’87]. Dada una matriz C = [ci]i ∈ Z2 que representa una malla triangular regular, la promediaci´on en tres direcciones se describe con cuatro operadores: el operador de duplicaci´on D, el cual cuadruplica todos los v´ertices D(C) = [di]i∈Z2 , donde di = c⌊i/2⌋ , y los tres operadores de promediaci´onAk, k = 1, 2, 3, los cuales prome- dian v´ertices con respecto a cada una de las direcciones ek, Ak(C) = [ai]i∈Z2 , donde ai = 1 2 (ci + ci−ek ) . Para cualquier n = (n1, n2, n3) ∈ IN3 0, el operador compuesto Bn = An1 1 An2 2 An3 3 D representa el algoritmo de promediaci´on en las tres direcciones y Cm = Bm n (C) representa la secuencia de mallas triangulares obtenidas a partir de C con el algoritmo de promediaci´on Bn. Observaci´on 8: El operador D coincide con el operador M0 de Lane- Riesenfeld, dado en la Observaci´on 7. Su polinomio caracter´ıstico es δ(x, y) = (1 + x)(1 + y) .
  • 236. 15.8. Box splines sobre mallas triangulares 217 Observaci´on 9: En particular, B001 representa al operador de refina- miento R el cual subdivide cada tri´angulo de una malla regular, uniforme- mente en cuatro subtri´angulos congruentes, tal como se ilustra en la Figura 15.7. Esta figura tambi´en ilustra las cuatro m´ascaras que representan B001. Los pesos de estas cuatro m´ascaras forman los coeficientes del polinomio caracter´ıstico de B001, (vea 15.2). Este polinomio es: γ(x, y) = (1 + x)(1 + y)(1 + xe3 )/2 = 1 2 x−1 1 x   1 1 0 1 2 1 0 1 1     y−1 1 y   . Figura 15.7: El operador de refinamiento R aplicado a una malla triangular y sus cuatro m´ascaras. Observaci´on 10: Cualquier malla obtenida por aplicaciones sucesivas del operador de refinamiento R a una malla triangular regualr C representa la misma superficie lineal por trozos. Por lo tanto una secuencia de mallas obtenida por refinamiento con R converge. Observaci´on 11: El operador de promediaci´on sim´etrica A111 = A1A2A3 est´a dado por una sola m´ascara y se ilustra en la Figura 15.8. Esta m´ascara fue introducida en [Boehm ’83]. El polinomio que representa a A111 es γ(x, y) = 1 8 1 x x2   0 1 1 1 2 1 1 1 0     1 y y2   . 15.8 Box splines sobre mallas triangulares Sea Cm una secuencia de mallas triangulares obtenidas por la aplicaci´on del operador de promediaci´on Bn. Claramente, si Bn es el operador de du- plicaci´on, dado por n = (0, 0, 0), o el operador de refinamiento, dado por
  • 237. 218 15. Subdivisi´on estacionaria para mallas regulares Figura 15.8: La m´ascara de Boehm del operador de promediaci´on sim´etrica A111. n = (0, 0, 1), entoces Cm converge a un spline localmente constante o a un spline continuo y lineal por trozos, respectivamente. En general, si k = min{n1+n2, n1+n3−1, n2+n3−1} ≥ 0 , entonces, sobre cada dominio compacto, Cm converge a un spline Ck , polin´omico de grado total |n| = n1 + n2 + n3 sobre cada tri´angulo de la malla generada por e1, e2 y e3. Estos splines son box splines a tres direcciones, los cuales ser´an estudiados con detalle en el Cap´ıtulo 17. Para la prueba, aplicamos repetidamente los resultados de 15.4 y 15.6 y tomamos en cuenta que si f(x) es continua entonces la integral 1 0 1 0 1 0 f(x − ue1 − ve2 − we3)dudvdw tiene derivadas cruzadas continuas respecto a cualesquiera dos direcciones ei y ej. Como ei = ej + ek para todas las permutaciones i, j, k de (1, 2, 3), todas las parciales de orden dos existen. Por lo tanto la integraci´on iterada con respecto a dos direcciones eleva el grado de suavidad en uno pero la integraci´on iterada con respecto a tres direcciones lo eleva en dos. 3 Observaci´on 12: El segundo resultado de 15.4 tambi´en es cierto si suponemos convergencia sobre un compacto a un spline polin´omico por trozos, sobre una malla triangular. En consecuencia, el teorema anterior tambi´en se cumple para k = −1. Observaci´on 13: Si n3 = 0 entonces Bn representa el algoritmo de sub- divisi´on de Lane-Riesenfeld para productos tensoriales uniformes de bigrado (n1, n2).
  • 238. 15.9. Subdivisi´on de mallas hexagonales 219 15.9 Subdivisi´on de mallas hexagonales Cualquier malla regular triangular determina una malla hexagonal cuyas a- ristas conectan los centros de tri´angulos adyacentes. La Figura 15.9 ilustra ´esto en el caso especial de una malla triangular uniforme Figura 15.9: Mallas regulares, triangular y hexagonal. Figura 15.10: Descomposici´on de una malla hexagonal en dos mallas triangulares. Es m´as, una malla hexagonal regular puede originar dos mallas triangulares (con v´ertices distintos) tal como se ilustra en la Figura 15.10. Entonces, una malla regular hexagonal se puede representar por dos matrices bi-infinitas C∆ =     ... . . . · · · c∆ ij · · · . . . ...     , y C∇ =     ... . . . · · · c∇ ij · · · . . . ...     , cuyos elementos son los v´ertices de las mallas o se representan por los poli- nomios c∆ (x) = c∆ i xi y c∇ (x) = c∇ i xi . El algoritmo de promediaci´on en tres direcciones de la secci´on 15.7 se puede adaptar a mallas hexagonales. El operador de duplicaci´on Dhex, para mallas hexagonales est´a dado por Dhex[C∆ , C∇ ] = [[d∆ i ], [d∇ i ]] ,
  • 239. 220 15. Subdivisi´on estacionaria para mallas regulares donde d∆ 2i,2j = d∆ 2i+1,2j = d∇ 2i+1,2j = d∆ 2i+1,2j+1 = c∆ ij y d∇ 2i,2j = d∇ 2i,2j+1 = d∆ 2i,2j+1 = d∇ 2i+1,2j+1 = c∇ ij . Los ´ındices se indican en la Figura 15.9. Los tres operadores de promediaci´on Ak, k = 1, 2, 3, definidos en 15.7 se generalizan a Ak[C∆ , C∇ ] = [AkC∆ , AkC∇ ] . Y para cada n = (n1, n2, n3) ∈ IN3 0, el operador compuesto Hn = An1 1 An2 2 An3 3 Dhex representa el algoritmo de promediaci´on en tres direcciones para mallas hexa- gonales introducido en [Prautzsch ’84b]. Los operadores de subdivisi´on Hn tambi´en pueden representarse con matri- ces caracter´ısticas 2 × 2 cuyos elementos son polinomios. En particular, la operaci´on de duplicaci´on [C∆ , C∇ ] = Dhex[C∆ , C∇ ] se describe a trav´es de la asignaci´on polin´omica: c∆ (x) c∇ (x) = 1+x+xy y x 1+y+xy c∆ (x2 ) c∇ (x2 ) , lo cual puede abrevirase a c(x) = D(x)c(x2 ) . La Figura 15.11 ilustra las cuatro m´ascaras asociadas, arriba para la malla C∆ y abajo para C∇ Figura 15.11: Las ocho m´ascaras del operador de duplicaci´on.
  • 240. 15.10. Half-box splines sobre mallas triangulares 221 Es m´as, la operaci´on de promediaci´on [C∆ , C∇ ] = Ak [C∆ , C∇ ] se describe por la asignaci´on polin´omica c∆ (x2 ) c∇ (x2 ) = 1 2 (1 + xek ) c∆ (x2 ) c∇ (x2 ) , la cual abreviamos por c(x) = αk(x)c(x) . Por lo tanto Hn se representa por una matriz polin´omica 2 × 2 αn1 1 αn2 2 αn3 3 D . La Figura 15.12 muestra la m´ascara asociada con el operador de promediaci´on sim´etrica A111 = A1A2A3 para C∆ del lado izquierdo, y para C∇ , del lado derecho. Figura 15.12: Las m´ascaras del operador de promediaci´on sim´etrica A111. 15.10 Half-box splines sobre mallas triangulares An´alogamente, al caso de las mallas triangulares y a las de cuadril´ateros, decimos que una malla hexagonal Cm = [C∆ m, C∇ m] converge uniformemente a una funci´on c(x) si los supremos sup i∈Z2 max{ c∆ im − c((i+(e1−e3)/3)/2m ) , c∇ im − c((i+(e2−e3)/3)/2m ) } convergen a cero cuando m tiende a infinito. Entonces Cm converge a una funci´on continua c(x) si las dos secuencias de tri´angulos, C∆ m y C∇ m, convergen a c(x). Sea Cm = [C∆ m, C∇ m] una secuencia de mallas hexagonales obtenida por la aplicaci´on repetida del operador de promediaci´on Hn definido en 15.9. Clara- mente, si Hn es el operador de duplicaci´on, es decir, n = (0, 0, 0), entonces Cm converge a un spline localmente constante sobre la malla triangular.
  • 241. 222 15. Subdivisi´on estacionaria para mallas regulares Es m´as, usando los argumentos de 15.6 se puede ver que cualquier secuencia (AkHn)m C se obtiene de Hm n C por promediaci´on creciente, tal como se des- cribi´o en 15.4. Adem´as, como promediamos la malla hexagonal C a trav´es de la promediaci´on de las mallas triangulares C∆ y C∇ separadamente, sim- ilarmente a 15.8, se obtiene lo siguiente: para k = min{ni + nj|i = j} − 1, la secuencia Cm converge sobre cualquier compacto a un spline Ck . Este spline es polin´omico de grado total |n| = n1 + n2 + n3 sobre cada tri´angulo de la malla generada por e1, e2 y e3. Estos splines se denominan half-box splines y ser´an estudiados con deteni- miento en el Cap´ıtulo 17. En particular, los operadores sim´etricos Hnnn generan splines C2n−1 localmente polin´omicos, de grado 3n. 15.11 Ejercicios 1 El algoritmo de la mariposa intoroducido por [Dyn et al. ’90] es un esquema interpolatorio de subdivisi´on de mallas triangulares. Est´a dado por las dos m´ascaras ilustradas en la Figura 15.13, donde la segunda m´ascara corresponde a las tres m´ascaras sim´etricas. Demuestre que cualquier secuencia de mallas triangulares regulares obtenida por aplica- ciones repetidas del algoritmo de la mariposa, converge a una superficie C1 para 0 ω 1/2, v´ease [Gregory ’91, Shenkman et al. ’99]. Figura 15.13: La m´ascara del algoritmo de la mariposa. 2 Sea Cm = [cm i ] una secuencia de mallas obtenida por el refinamiento cm+1 i = cm j γ2i−j a partir de una malla inicial C0. Suponga que para cualquier malla inicial C0 la secuencia Cm converge a una funci´on c(x). Demuestre que existe una funci´on refinable N(x), es decir, N(x) = γiN(2x − i) ,
  • 242. 15.11. Ejercicios 223 la cual define una base, esto es, que la funci´on l´ımite para cualquier malla C0, se puede expresar como c(x) = cm i N(2−m x − i) . 3 Sea N(x) una base continua para el esquema de subdivisi´on del Ejercicio 2 y sea v ∈ Z2 . Demuestre que N(x) = 1 0 N(x − tv)dt es la funci´on base para el esquema de subdivisi´on cuya m´ascara tiene los coeficientes γi = 1 2 (γi + γi−v) . 4 En 15.5 se definieron los esquemas de diferencias ∇1, ∇2 y ∇3. Demuestre que existe un esquema de diferencias ∇v para todo v ∈ Z2 , si existen esquemas de diferencias ∇1 y ∇2. 5 Encuentre un esquema de subdivisi´on estacionaria tal que los esquemas de diferencias ∇1 y ∇2 no son estacionarios. 6 Pruebe el segundo teorema de 15.4 en el cual se sustituye la convergencia a una funci´on uniformemente continua por convergencia sobre compactos a un spline polin´omico por trozos sobre una malla triangular generada por e1, e2 y e3.
  • 244. 16 Subdivisi´on estacionaria para mallas arbitrarias 16.1 El esquema del punto medio — 16.2 La superficie l´ımite — 16.3 La parametrizaci´on standard — 16.4 La matriz de subdivisi´on — 16.5 Continuidad de superficies obtenidas por subdivisi´on — 16.6 La aplicaci´on caracter´ıstica — 16.7 Suavidad de orden superior — 16.8 Mallas triangulares y hexagonales — 16.9 Ejercicios En 1978 Doo y Sabin presentaron una generalizaci´on del algoritmo de subdi- visi´on de splines producto tensorial bicuadr´aticos. Simult´aneamentente, Cat- mull y Clark tambi´en presentaron una generalizaci´on an´aloga para splines bic´ubicos. Estos algoritmos pueden aplicarse a mallas de cuadril´ateros de topolog´ıas arbitrarias y producen secuencias de mallas de control que conver- gen a superficies bicuadr´aticas o bic´ubicas por trozos que tienen un n´umero finito de “puntos extraordinarios”. En contraste con la atractiva simplicidad de estos algoritmos ha sido dif´ıcil el an´alisis de la suavidad de estas superficies l´ımite en sus puntos extraordina- rios. Tom´o 15 a˜nos y s´olo despu´es de varios intentos por otros investigadores, Ulrich Reif logr´o establecer un conjunto de condiciones suficientes bajo las cuales los algoritmos de Catmull-Clark, de Sabin y otros similares generan superficies cuyo plano tangente var´ıa continuamente. 16.1 El esquema del punto medio En 15.1 describimos el algoritmo de Lane-Riesenfeld para splines producto tensorial en t´erminos de dos operadores. El primero es el operador de refinamiento R, el cual aplica una malla de control C en una malla RC que conecta los puntos medios de todas las aristas de C con sus extremos y los centroides de pol´ıgonos adyacentes de la malla. El segundo es el operador de promediaci´on A el cual aplica una malla de control C en una malla AC que conecta los centroides de pol´ıgonos adyacentes de la malla. Para la aplicaci´on de estos dos operadores no hace falta suponer que los
  • 245. 226 16. Subdivisi´on estacionaria para mallas arbitrarias pol´ıgonos de la malla C son cuadril´ateros o que la malla es regular. La malla puede ser arbitraria, tal como se ilustra en Figura 16.1, en la cual las l´ıneas suaves indican la malla C, las l´ıneas suaves y las punteadas indican la malla RC y las l´ıneas s´olidas, la malla ARC. Figura 16.1: Refinamiento y promediaci´on de una malla. El operador Mn = An−1 R, el cual refina una malla y la promedia (n − 1) veces sucesivas, se denomina el operador del punto medio. Dada una malla C decimos que la secuencia de mallas Mi nC se obtiene a partir de C a trav´es del esquema del punto medio Mn. En particular, si C es una malla de cuadril´ateros, entonces Mn representa el algoritmo de Lane-Riesenfeld para splines producto tensorial de bigrado n. Es m´as, para mallas arbitrarias, M2 y M3 representan instancias es- pec´ıficas de los algoritmos de Doo-Sabin [Doo Sabin ’78] y Catmull- Clark [Catmull Clark ’78], respectivamente. La Figura 16.2 ilustra una secuencia de mallas obtenidas bajo el esquema de subdivisi´on M3. Para n par e impar el esquema Mn del punto medio tiene propiedades duales. Si n es impar, todas las mallas Mi nC, i ≥ 1, son mallas de cuadril´ateros y si n es par, los v´ertices interiores de cada malla Mi nC, i ≥ 1, pueden tener solamente valencia 4. Las mallas cuyos pol´ıgonos no son cuadril´ateros y los v´ertices internos de valencia = 4 se denominan mallas extraordinarias y v´ertices extraordinarios, respectivamente. Cada v´ertice extraordinario de una malla Mi nC es el resultado de una com- binaci´on af´ın de v´ertices que yacen alrededor del v´ertice extraordinario co- rrespondiente de la malla Mi−1 n C. Como un elemento extraordinario de Mi−1 n C corresponde a lo sumo a un elemento extraordinario en Mi nC, en- tonces el n´umero de ´estos ´ultimos est´a acotado por el n´umero de elementos ex- traordinarios en C. Si C es una malla sin frontera, entonces el n´umero de ele- mentos extraordinarios es el mismo para cada una de las mallas Mi nC, i ≥ 0. Observaci´on 1: La distancia entre dos v´ertices extraordinarios en una
  • 246. 16.2. La superficie l´ımite 227 Figura 16.2: Una secuencia de mallas obtenida por medio del algoritmo de Catmull-Clark. malla Mi nC se define como el n´umero de aristas del camino m´as corto que los conecta. La distancia entre los dos v´ertices extraordinarios en Mi+1 n C que les corresponden es aproximadamente el doble. 16.2 La superficie l´ımite El esquema del punto medio Mn restringido a una submalla regular de una malla de cuadril´ateros cualquiera coincide con el algoritmo de Lane-Riesenfeld para splines de bigrado n. Si C es la malla de cuadril´ateros, entonces la secuencia de mallas Mi nC, i ∈ IN, converge a una superficie s poligonal por trozos y las secuencias de v´ertices extraordinarios convergen. Vea 16.5. Estos puntos l´ımite se denominan puntos extraordinarios de s. Note que s consiste de un n´umero infinito de parches polin´omicos en cada vecindad de un punto extraordinario. En este cap´ıtulo estudiaremos el comportamiento de la superficie l´ımite s en un punto extraordinario. De la Observaci´on 1 de 16.1 se desprende que es suficiente considerar una malla C con un solo punto extraordinario, rodeado de varios anillos de cuadril´ateros tal como se ilustra en la Figura 16.3.
  • 247. 228 16. Subdivisi´on estacionaria para mallas arbitrarias Figura 16.3: Mallas de control con un solo punto extraordinario. Cada submalla regular de la malla Mi nC que consiste de cuadril´ateros n × n es la B-malla de control de un parche de la superficie polin´omica s. Los parches definidos por todas estas submallas regulares de Mi nC forman una superficie si, (n − 1) veces diferenciable que es parte de la superficie l´ımite s. Es m´as, la diferencia de la superficie si y la superficie si−1 forma un anillo ri de m lados que consiste de 3mρ2 n parches, donde ρn = ⌊n/2⌋ = max{i ∈ IN|i ≤ n/2} . Conjuntamente, los anillos ri constituyen la superficie s. Cada superficie anular ri se puede partir en 3m macroparches r1 i , . . . , r3m i , cada uno de ellos parametrizado sobre [0, 1] × [0, 1]. Cada macroparche consiste de ρn × ρn parches. Esto se ilustra esquem´aticamente en la Figura 16.4, en la cual las lineas punteadas indican parches de r5 1 para ρn = 3. Figura 16.4: Los parches rj i adyacentes, para m = 5.
  • 248. 16.3. La parametrizaci´on standard 229 16.3 La parametrizaci´on standard La superficie anular completa ri est´a parametrizada sobre 3m copias de [0, 1] × [0, 1] o equivalentemente, Ω = {1, . . . , 3m} × [0, 1]2 . Conjutamente todos los anillos conforman una superficie con conexiones sim- ples Cn−1 . De acuerdo con 9.7 esto significa que (1) ∂κ ∂uκ rj i (1, v) = ∂κ ∂uκ rj+1 i (0, v) , ∂κ ∂vκ rj+1 i (u, 0) = ∂κ ∂vκ rj+2 i (u, 1) , ∂κ ∂vκ rj+2 i (u, 0) = − ∂κ ∂uκ rj+3 i (0, u) y (2) ∂κ ∂vκ rj i+1(u, 1) = ∂κ ∂vκ rj i (u 2 , 0) , ∂κ ∂vκ rj+1 i+1 (u, 1) = ∂κ ∂vκ rj i (1 2 +u 2 , 0) , ∂κ ∂uκ rj+1 i+1 (1, v) = ∂κ ∂uκ rj+2 i (0, 1 2 +v 2 ) , ∂κ ∂uκ rj+2 i+1 (1, v) = ∂κ ∂uκ rj+2 i (1, v 2 ) , para todo u, v ∈ [0, 1], i ∈ IN, κ = 0, 1, . . . , n − 1, y j = 1, 4, 7, . . . , 3n − 2, donde r3n+1 i = r1 i . Es m´as, si c1, . . . , cp denotan los puntos de control de ri, entonces ´este tambi´en se puede expresar como ri(j, u, v) = rj i (u, v) = p l=1 clBj l (u, v) , donde Bj l (u, v) son ciertos B-splines, producto tensorial de bigrado n. Observaci´on 2: Usando la numeraci´on de las Figuras 16.3 y 16.4 se obtiene para n = 2 y j = 2, 3   B2 6 B2 8 B2 9 B2 3 B2 5 B2 7 B2 1 B2 2 B2 4   =   B3 3 B3 5 B3 7 B3 1 B3 2 B3 4 B3 10 B3 12 B3 15   =    N0,−2 · · · N0,0 ... ... N−2,−2 · · · N−2,0    , donde Nkm denota el producto tensorial N2 k (u)N2 m(v) de B-splines cuadr´aticos sobre los nodos k, . . . , k + 3 y m, . . . , m + 3, respectivamente.
  • 249. 230 16. Subdivisi´on estacionaria para mallas arbitrarias 16.4 La matriz de subdivisi´on Cada superficie anular ri tiene tres funciones coordenada. Denotamos por R el espacio lineal de todas las posibles funciones coordenada R = { clBj l (u, v) | cl ∈ IR} . Sea ri(j, u, v) = ci lBj l (u, v) ∈ IR3 la superficie anular obtenida por aplicaciones sucesivas del esquema Mn del punto medio a partir de los puntos del control iniciales c0 1, . . . , c0 p. Como los puntos ci l son combinaciones afines ci−1 l , se tiene una matriz de subdivisi´on S, de dimension p × p tal que para todo i ≥ 1, [ci 1 . . . ci p]t = S[ci−1 1 . . . ci−1 p ]t . La matriz de subdivisi´on S es estoc´astica, esto es: sus elementos son no negativos y cada fila suma uno. Por lo tanto el autovalor dominante de S corresponde al autovector e = [1 . . . 1]t . Todos los puntos c2 l dependen de los v´ertices extraordinarios de la malla inicial c0 1 . . . c0 p. Por lo tanto, S2 tiene una fila estrictamente positiva, lo cual implica que uno es un autovalor simple de S2 , v´ease [Micchelli Prautzsch ’89]. En consecuencia las mallas de control [ci 1 . . . ci p] convergen a un punto [c . . . c] de multiplicidad p, el cual representa un punto extraordinario c, de la super- ficie s resultante del proceso de subdivisi´on. Observaci´on 3: Usando la numeraci´on de la izquierda de la Figura 16.3 la matriz de subdivisi´on S para el esquema del punto medio M2 alrededor de un pol´ıgono de m lados es la matriz c´ıclica 9m × 9m S = 1 16      S1 S2 · · · Sm Sm S1 · · · Sm−1 ... ... ... S2 · · · Sm S1      . Los Si son bloques 9 × 9 de la forma Si = Ai O O O , donde O denota matrices cero de varios tama˜nos, A3 = . . . = Am−1 = [4/m] ,
  • 250. 16.5. Continuidad de superficies obtenidas por subdivisi´on 231 A1 =               a . . . . 9 3 . . . 9 . 3 . . 3 9 . . . 3 9 1 3 . 3 . 9 . . 3 9 1 . 3 3 1 9 . 3 1 3 3 . 9               , A2 =     b . . 3 . 1 . . . 1 . 3     , Am =         b . . . 3 1 . . . . 1 3         con a = 8 + 4/m, b = 4 + 4/m y los elementos que son cero se indican con puntos. 16.5 Continuidad de superficies obtenidas por subdivisi´on A partir de ahora consideramos que R es un espacio lineal arbitrario de funciones r(j, u, v) definido para j ∈ {1, . . . , 3n} y u, v ∈ [0, 1] las cuales son k veces diferenciables en u y v. Y sea S una aplicaci´on lineal de R tal que para cualquier funci´on ri ∈ R y su imagen ri+1 = Sri satisface las condiciones de suavidad (1) y (2) de 16.3 para todo κ = 1, . . . , k. Sean x1, . . . , xp los autovectores y los autovectores generalizados de S que forman una base de R y sean λ1, . . . , λp los autovalores asociados, los cuales supondremos ordenados en forma decreciente, es decir, |λ1| ≥ |λ2| ≥ . . . ≥ |λp|. Cualquier superficie anular ri cuyas coordenadas est´an en R, es imagen del anillo r0 =    x1 ... xp    y cualquier superficie de subdivisi´on obtenida por aplicaciones sucesivas de S es una imagen de la superficie r conformada por los anillos rm = Sm r0 =    Sm x1 ... Sm xp    , m ∈ IN0 , bajo alguna aplicaci´on lineal. Por lo tanto para estudiar la suavidad de estas superficies de subdivisi´on es suficiente analizar r. Claramente, los iterados rm convergen al origen cuando |λ1| 1 y convergen a un punto diferente, es decir, una funci´on constante diferente de cero, si λ1 = 1 y |λ2| 1 y x1 es una funci´on constante. Recuerde que las funciones
  • 251. 232 16. Subdivisi´on estacionaria para mallas arbitrarias xi son linealmente independientes. Por lo tanto s´olo una funci´on coordenada xi puede ser constante. Si x1 es constante y λ1 = 1, entonces la superficie de subdivisi´on r es un trasladado de la superficie de subdivisi´on formada por los iterados “m´as cor- tos” Sm [x2 . . . xp]t . En consecuencia para analizar la suavidad es suficiente suponer |λ1| 1. Note sin embargo que cualquier esquema de subdivisi´on afinmente indepen- diente tiene una matriz de subdivisi´on con el autovalor uno asociado a au- tovectores que son funciones constantes. V´ease por ejemplo el esquema del punto medio de 16.4. 16.6 La aplicaci´on caracter´ıstica En esta secci´on continuaremos el an´alisis de la suavidad de la superficie r en el origen. Cuando |λ1| 1. Supondremos adem´as que λ1 = λ2 (lo cual implica que λ1 es real) y |λ2| |λ3| y que los xi son autovectores (no generalizados). Bajo estas condiciones rm/λm 1 converge a [x1 x2 0 . . . 0]t . Por lo tanto si r tiene un plano tangente en el origen , ´este coincide con el plano x1x2. Este argumento tambi´en demuestra que r no tiene plano tangente en el origen si hay m´as de dos autovectores dominantes xi. Si r es una superficie regular en el origen, entonces es la gr´afica de una funci´on en x1, x2. En particular, esto significa que para cada j = 1, . . . , 3n el parche cj(u, v) = [x1(j, u, v) x2(j, u, v)], j = 1, . . . , 3n, tiene inversa. Adem´as las condiciones (1) y (2) de 16.3 implican que la intersecci´on de dos de estos parches es su frontera com´un. M´as brevemente, la aplicaci´on c : {1, . . . , 3n} × Ω → IR2 es invertible. Esta aplicaci´on fue introducida en [Reif ’93] y se denomina la aplicaci´on caracter´ıstica del esquema de subdivisi´on S. Su imagen es un anillo planar R sin pliegues y los iterados λm IR llenan el hueco encerrado por R sin intersecciones dos a dos. La Figura 16.5 ilustra la situaci´on. Entonces cualquier coordenada ri de r puede considerarse como una funci´on sobre U = ∞ m=0 λm R, es decir, la i-´esima coordenada es la funci´on (3) ri(x) = λm i xi(c−1 (x/λm )) , donde x ∈ λm R . 16.7 Suavidad de orden superior Si una superficie de subdivisi´on r es regular y k veces continuamente dife- renciable, entonces como funci´on de x1, x2 tiene un desarrollo de Taylor hasta
  • 252. 16.7. Suavidad de orden superior 233 Figura 16.5: Una aplicaci´on caracter´ıstica x y su versi´on escalada λx. orden k en el origen. Comparando esta expansi´on con (3) se deduce que λi debe ser una potencia de λ o satisfacer |λi| |λ|k . Es m´as, si λi = λκ , se tiene que el autovector xi es un polinomio homog´eneo de orden κ en x1 y x2. Rec´ıprocamente, supongamos que los autovalores y autovectores de S tienen estas propiedades. Si λi = λκ , κ k, entonces ri es un polinomio en x1 y x2. Si |λi| |λk |, entonces para cualquier derivada mixta ∂ de orden κ ≤ k se tiene que ∂ri(x) = λi λκ m ∂(xi ◦ c−1 )(x/λm ) converge a cero cuando x tiende a cero o equivalentemente cuando m tiende a infinito. En consecuencia se tiene el siguiente teorema [Prautzsch ’98] Suponemos que 1 |λ| |λ3| y que λ est´a asociado a dos auto- vectores x1 y x2 que definen una aplicaci´on caracter´ıstica. En- tonces la superficie de subdivisi´on r es regular y Ck si y s´olo si • la aplicaci´on caracter´ıstica es invertible y • para todo i = 1, . . . , p se tiene que λi = λκ y xi pertenece al espacio generado {xα 1 xβ 2 | α + β = κ} o |λi| |λ|k . Observaci´on 4: El teorema anterior tambi´en es v´alido si uno es un autovalor de S cuyo autovector asociado es una funci´on constante. V´ease tambi´en 16.5. Observaci´on 5: Un teorema similar tamb´en es v´alido si los autovalores
  • 253. 234 16. Subdivisi´on estacionaria para mallas arbitrarias λ1 y λ2 son complejos conjugados o reales distintos, v´ease [Prautzsch ’98, Reif ’95b]. 16.8 Mallas triangulares y hexagonales El an´alisis presentado hasta ahora en el presente cap´ıtulo tambi´en es v´alido para la subdivisi´on estacionaria de mallas triangulares y hexagonales. Una malla triangular arbitraria consiste de tri´angulos, pero podr´ıa tener v´ertices extraordinarios, es decir, aquellos v´ertices con valencia distinta de 6, vea la Figura 16.6. Dualmente a lo anterior, una malla hexagonal arbitraria tiene solamente v´ertices regulares, es decir, de valencia 3, pero puede contener pol´ıgonos extraordinarios, es decir, que no tienen 6 lados. Ver la Figura 16.6. Tal como ya se present´o en 15.9 a partir de una malla triangular se puede obtener una hexagonal conectando los centros de tri´angulos adyacentes. Simi- larmente, la obtenci´on de mallas triangulares a partir de mallas hexagonales se ilustra en la Figura 16.6. Figura 16.6: Conversi´on de una malla triangular en hexagonal y viceversa. Tal como se discuti´o en 15.8 y 15.10 una malla triangular o hexagonal con- trola una superficie que consiste de parches triangulares. En general, estos parches no tienen porque ser polin´omicos. Alrededor de un punto extraordi- nario el arreglo de los parches se ilustra en la Figura 16.7. Es m´as, alrededor de un punto extraordinario es posible aparear parches triangulares para cons- tituir una malla de cuadril´ateros, lo cual se ilustra en la Figura 16.4. Por lo tanto el an´alisis de suavidad y el teorema 16.7 tambi´en se pueden aplicar en el caso de mallas triangulares y hexagonales.
  • 254. 16.9. Ejercicios 235 Figura 16.7: Parches triangulares (cuadrilaterales) alrededor de un punto extra- ordinario. 16.9 Ejercicios 1 Sea S una matriz estoc´astica n × n con una columna estrictamente posi- tiva. Demuestre que existe una constante γ ∈ (0, 1) tal que para todos los vectores v = [v1 . . . vn]t diam(Sv) ≤ γdiam(v) , donde diam(v) denota el di´ametro max vi − min vi. V´ease tambi´en [Micchelli Prautzsch ’89]. 2 Implemente el algoritmo de la mariposa dado por la m´ascara en la Figura 15.13 para mallas triangulares arbitrarias. Figura 16.8: Las m´ascaras del algoritmo de Loop. 3 En 1987, Loop [Loop ’87] generaliz´o las m´ascaras de Boehm para el al- goritmo de subdivisi´on de box splines de grado cuatro considerado en 15.7. Las m´ascaras generalizadas de Loop se pueden aplicar a mallas
  • 255. 236 16. Subdivisi´on estacionaria para mallas arbitrarias triangulares arbitrarias. Estas se ilustran en la Figura 16.8, en la cual n denota la valencia del v´ertice y α es un par´ametro libre que depende de n. Verifique el resultado de Loop, el cual establece que los planos tangentes de la superfice l´ımite var´ıan continuamente en puntos extraordinarios si α(6) = 5/8 y − 1 4 cos 2π n α(n) 3 4 + 1 4 cos 2π n . 4 Refine una malla triangular arbitraria subdividiendo cada tri´angulo uni- formemente en cuatro subtri´angulos. Calcule los centros de los sub- tri´angulos. Estos puntos son los v´ertices de una malla hexagonal. Finalmente calcule los centroides de todos los pol´ıgonos ordinarios y ex- traordinarios de la malla hexagonal. Estas operaciones conforman un paso del esquema del punto medio para mallas triangulares. Calcule las m´ascaras de este esquema y comp´arelas con las m´ascaras del algoritmo de Loop. 5 Refine una malla hexagonal arbitraria cuadruplicando cada uno de los v´ertices, vea la Figura 15.11. Los nuevos v´ertices definen una malla hexagonal que contiene pol´ıgonos degenerados. Estos forman una malla tri´angulos, calcule sus centros. Este proceso es un paso del esquema del punto medio para mallas hexagonales. Calcule las m´ascaras de este esquema y comp´arelas con las m´ascaras del algoritmo de subdivisi´on para los half-box splines c´ubicos de 15.9. 6 Una aplicaci´on caracter´ıstica x polin´omica por trozos regular e invertible que corresponde a una matriz de subdivisi´on S alrededor de un punto extraordinario, que es k veces diferenciable, tiene grado ≥ k + 1. V´ease [Prautzsch Reif ’99]. Use este hecho para demostrar que una super- ficie polin´omica por trozos C2 , obtenida por subdivisi´on con curvatura Gaussiana positiva en su punto extraordinario tiene necesariamente grado ≥ 6.
  • 258. 17 Box splines 17.1 Definici´on de box splines — 17.2 Box splines como sombras — 17.3 Propieda- des de los box splines — 17.4 Derivadas de un box spline — 17.5 Propiedades de las superficies box spline — 17.6 Subdivisi´on de superficies box spline — 17.7 Convergencia bajo subdivisi´on — 17.8 Half-box splines — 17.9 Superficies half-box — 17.10 Ejercicios Los box splines son funciones de densidad de las “sombras” de poliedros de dimensi´on mayor. Ellos incluyen a los B-splines univariados y tambi´en las su- perficies obtenidas por el algoritmo de promediaci´on sobre una malla regular triangular son box splines. En este cap´ıtulo se presenta una introducci´on a la teor´ıa general de los box splines y de los half-box splines. De hecho los half- box splines sim´etricos de grado 3n son m´as convenientes para la construcci´on de superficies G2n−1 consistentes de parches triangulares que los box splines. 17.1 Definici´on de box splines Un box spline s-variado B(x|v1 . . . vk) est´a determinado por k direcciones vi en IRs . Por simplicidad supondremos que k ≥ s y que v1, . . . , vs son linealmente independientes. Bajo esta hip´otesis los box splines Bk(x) = B(x|v1 . . . vk), k = s, s + 1, . . . , se definen por convoluciones sucesivas, an´alogamente a 8.1, Bs(x) = 1/| det[v1 . . . vs]| si x ∈ [v1 . . . vs][0, 1)s 0 en caso contrario . Bk(x) = 1 0 Bk−1(x − tvk)dt, k s . Esto se ilustra en la Figura 17.1 para s = 2 y [v1 . . . v4] = 1 0 1 1 0 1 1 0 .
  • 259. 240 17. Box splines Vea tambi´en la Figura 8.1. Figura 17.1: Box splines bivariados sobre una malla triangular. Los box splines Bi(x) satisfacen la condici´on de normalizaci´on IRs Bk(x)dx = 1 , la cual puede ser verificada directamente para k = s y por inducci´on para k s. Concretamente, IRs 1 0 Bk−1(x − tvk)dtdx = 1 0 IRs Bk−1(x − tvk)dxdt = 1 0 dt = 1 . 17.2 Box splines como sombras Un box spline Bk(x) = B(x|v1 . . . vk) tambi´en se puede construir geom´etricamente. Sea π la proyecci´on ortogonal π : [t1 . . . tk]t → [t1 . . . ts]t , y sea βk = [u1 . . . uk][0, 1)k el paralelep´ıpedo tal que vi = πui Entonces Bk(x) representa la densidad de la “sombra” de βk, es decir, (1) Bk(x) = 1 volkβk volk−sβk(x) ,
  • 260. 17.2. Box splines como sombras 241 donde βk(x) = π−1 x ∩ βk . Para k = 3 y s = 2, la construcci´on geom´etrica correspondiente se ilustra en la Figura 17.2. Figura 17.2: La construcci´on geom´etrica de un box spline lineal por trozos sobre una malla triangular. Esta caracterizaci´on de los box splines se prueba por inducci´on: para k = s la ecuaci´on (1) es obvia y para valores mayores de k se observa que βk(x) = s∈[0,1) (βk−1 + suk) ∩ π−1 x . Por lo tanto si h mide la distancia entre βk−1 y uk + βk−1 a lo largo de k-´esimo vector unitario de IRk (vea la Figura 17.3), se tiene que volk−sβk(x) = 1 0 h volk−s−1 βk−1(x − svk) ds , lo cual corresponde a la definici´on inductiva de box splines, salvo un factor multiplicativo constante. Consecuentemente volk−sβk(x) es un m´ultiplo del
  • 261. 242 17. Box splines box spline Bk(x) y como IRs volk−sβk(x) dx = volkβk y IRs Bk(x)dx = 1 , queda demostrada la ecuaci´on (1). 3 Figura 17.3: Medidas de la caja βk. Observaci´on 1: De la definici´on geom´etrica (1) se deduce que el box spline B(x|v1 . . . vk) satisface la ecuaci´on funcional IRs B(x|v1 . . . vk)f(x)dx = [0,1)k f([v1 . . . vk]t)dt para cualquier funci´on continua f(x). 17.3 Propiedades de los box splines A partir de la definici´on geom´etrica de B(x) = B(x|v1 . . . vk) se desprende que • el box spline no depende del orden de las direcciones vi, • es positivo sobre el conjunto convexo (v1 . . . vk][0, 1)k , • tiene soporte suppB(x) = [v1 . . . vk][0, 1]k , • es sim´etrico con respecto al centro de su soporte. Es m´as, sea B(x) la sombra de la caja β como en 17.2. Entonces las caras (s−1)-dimensionales de β proyectadas en IRs forman un teselado del soporte. Esto se ilustra en la Figura 17.4 para [v1 . . . vk] = 1 1 1 0 −1 0 1 1 y [v1 . . . vk] = 1 1 1 1 0 0 0 1 1 1 .
  • 262. 17.4. Derivadas de un box spline 243 Figura 17.4: Soporte de box splines cuadr´aticos y c´ubicos. • El box spline B(x) es polin´omico de grado ≤ k − s sobre cada tesela de esta partici´on. Para la prueba observe que los puntos extremos de los conjuntos convexos π−1 x∩β yacen en las caras s-dimensionales de β. Entonces un punto extremo es de la forma [xt et ]t , donde e ∈ IRk−s , depende linealmente de x, sobre la proyecci´on de la correspondiente cara s-dimensional. El volumen π−1 x ∩ β puede expresarse como una combinaci´on lineal de determinantes de matrices (k−s)×(k−s) cuyas columnas representan diferencias de los puntos extremos e. Luego, el volumen es un polinomio de grado ≤ k−s en x sobre cada tesela de la partici´on dada. 3 17.4 Derivadas de un box spline De la definici´on inductiva de los box splines se desprende que la restricci´on del box spline B(y) = B(x+yvr) es constante por trozos en y si vr no pertenece al espacio generado por {v1, . . . , v∗ r , . . . , vk}. Si vr pertenece a este espacio, entonces B(y) es continuo pues se puede obtener por convoluci´on a partir de B∗ (y) = B(x + yvr|v1 . . . v∗ r . . . vk) , esto es, B(y) = 1 0 B∗ (y − t)dt = y y−1 B∗ (t)dt = y −∞ B∗ (t) − B∗ (t − 1)dt .(2) Es m´as la derivada direccional respecto a vr est´a dada por (3) B′ (y)|y=0 = B∗ (0) − B∗ (−1) .
  • 263. 244 17. Box splines Si v1, . . . , v∗ r , . . . , vk generan IRs para r = 1, . . . , s, entonces B(x|v1 . . . vk) es continuo y su derivadas direccionales se pueden escribir como una com- binaci´on de trasladados de los box splines B(x|v1 . . . v∗ r . . . vk). Aplicando este argumento repetidamente se obtiene B(x) es r veces continuamente diferenciable si todos los subcon- juntos de {v1, . . . , vk} obtenidos por eliminaci´on de r+1 vectores vi generan IRs . Observaci´on 2: Las expresiones anteriores se pueden utilizar para dar una prueba inductiva de las propiedades polin´omicas de B(x). Concretamente, si B∗ (x) es polin´omica de grado ≤ k − s − 1 sobre cada tesela de la partici´on, entonces B∗ (x − vr) tambi´en lo es. Por (3), B(y) es polin´omica de grado ≤ k − s en cada direcci´on vr y por lo tanto en x. Observaci´on 3: El box spline cuadr´atico C1 cuyo soporte se ilustra en el lado izquierdo de la Figura 17.4 se llama el elemento de Zwart-Powell. 17.5 Propiedades de las superficies box spline De aqu´ı en adelante supondremos que las direcciones v1, . . . , vk pertenecen a Zs , y que como antes, v1, . . . , vs generan IRs . Claramente, la suma de los trasladados B(x−j|v1 . . . vs), j ∈ [v1 . . . vs]Zs , es (4) γ = 1/| det[v1 . . . vs]| . Como Zs se puede descomponer en un n´umero finito, digamos m, de subcon- juntos de la forma i + [v1 . . . vs]Zs , vea la Figura 17.5, se tiene que i∈Zs B(x−i|v1 . . . vs) = mγ . Como 1 0 mγdt = mγ, se obtiene que mγ = i∈Zs B(x−i|v1 . . . vk) = i∈Zs B(x−i|e1 . . . es v1 . . . vk) , donde ei es el i-´esimo vector unitario. Finalmente, por (4) la ´ultima suma es uno y entonces se tiene
  • 264. 17.5. Propiedades de las superficies box spline 245 Figura 17.5: Descomposici´on de Zs en trasladados de mallas m´as gruesas. los desplazamientos (enteros) de cualquier box spline B(x) = B(x|v1 . . . vk) forman una partici´on de la unidad. Por lo tanto cualquier superficie box spline s(x) = i∈Zs ciB(x − i) es una combinaci´on af´ın de sus puntos de control ci. Esta superficie es afinmente invariante esto significa que las im´agenes de los puntos de con- trol bajo una aplicaci´on af´ın son los puntos de control de la superficie imagen. Como los box splines son no negativos, cada punto s(x) de la superficie es una combinaci´on convexa de sus puntos de control y por lo tanto yace en la c´apsula convexa de estos puntos. Es m´as, los B(x − i|v1 . . . vk), i ∈ Zs , son linealmente dependientes si |det[v1 . . . vs]| = 1. Como el box spline no depende del orden de los vi, esta secuencia es linealmente dependiente si existe una subsecuencia inde- pendiente vi1 . . . vis tal que |det[vi1 . . . vis ]| = 1. El rec´ıproco tambi´en es cierto [Dahmen Micchelli ’83, ’85] y puede verificarse por inducci´on. V´ease [Jia ’83, ’85]. En resumen, se tiene el siguiente teorema B(x−i|v1 . . . vk), i ∈ Zs , es linealmente independiente sobre cada subconjunto abierto de IRs si y s´olo si [v1 . . . vk] es unimodular, Una matriz [v1 . . . vk] se dice unimodular si el determinante de cada subma- triz [vi1 . . . vis ] es 1, 0 o −1.
  • 265. 246 17. Box splines Si las direcciones v1, . . . , vk−1 generan IRs , entonces podemos calcular la derivada direccional Dvk s de s con respecto a vk. Usando la f´ormula de la derivada (3) de 17.3 se obtiene (5) Dvk s(x) = i∈Zs ∇vk ciB(x−i|v1 . . . vk−1) , donde ∇vci = ci −ci−v. Es m´as, si para todo j = 1, . . . , k las k−1 direcciones v1, . . . , v∗ j , . . . , vk generan IRs , entonces B(x) es continua, como se demuestra en 17.3 y sus trasladados generan los polinomios lineales. En particular, si mi = i + 1 2 (v1 + · · · + vk) denota el centro del soporte suppB(x − i), entonces (6) i∈Zs miB(x − i) = x . De hecho, por simetr´ıa, esta ecuaci´on se verifica para x = mo para todo j = 1, . . . , s y se tiene Dvj miB(x − i) = vj . Como la representaci´on box spline es afinmente invariante, para todo poli- nomio lineal l(x) se tiene l(x) = l(mi)B(x − i . Nos referimos tambi´en a esta propiedad como la precisi´on lineal de la re- presentaci´on box spline. Vea los Ejercicios 1 y 2. 17.6 Subdivisi´on de superficies box spline Cualquier caja β = [u1 . . . uk][0, 1)k de IRk se puede particionar en 2k trasladados de la caja escalada ˆβ = β/2 generada por las direcciones ˆui = ui/2. En [Prautzsch ’84a] se usa esta observaci´on para probar que la “som- bra” no normalizada Mβ(x) = volk−s(π−1 x ∩ β) de β bajo la proyecci´on de π : [t1 . . . tk]t → [t1 . . . ts]t
  • 266. 17.6. Subdivisi´on de superficies box spline 247 se puede expresar como una combinaci´on lineal de los trasladados de los box splines escalados Mˆβ(x) = 2s−k Mβ(2x) . Por lo tanto, si las proyecciones vi = πui yacen en Zs , entonces cualquier superficie box spline s(x) = i∈Zs c1 i B(x − i) con B(x) = B(x|v1 . . . vk) tambi´en tiene una representaci´on m´as “fina” s(x) = i∈Zs c2 i B(2x − i) . Los nuevos puntos de control c2 i pueden ser calculados iterativamente a partir de los puntos de control iniciales c1 i por medio de la relaci´on de recurrencia d0 (i) = o c1 i/2 si i/2 ∈ Zs ∈ Zs , dr (i) = 1 2 dr−1 (i) + dr−1 (i − vr) , r = 1, . . . , k , c2 i = 2s dk (i) . Para la prueba se puede utilizar una t´ecnica similar a la presentada en [Prautzsch ’84a]: se subdivide cada caja βr−1 = [ˆu1 . . . ˆur−1 ur . . . uk][0, 1)k en βr y ˆur + βr. Las sombras asociadas satisfacen Mβr−1 (x) = Mβr (x) + Mβr (x − ˆvr) , donde ˆvr = vr/2. Dividiendo esta ecuaci´on por volβr−1 = 2 volβr, se obtiene Br−1(x) = 1 2 Br(x) + Br(x − ˆvr) , donde Br(x) = B(x|ˆv1 . . . ˆvrvr+1 . . . vk). Usando esta identidad repetida- mente y la relaci´on B(x|ˆv1 . . . ˆvk) = 2s B(2x|v1 . . . vk) resulta s(x) = i∈Zs c1 i B0(x − i) = i∈Zs dr (i)Br(x − i/2) , r = 0, 1, . . . , k ,
  • 267. 248 17. Box splines o sea s(x) = i∈Zs c2 i B0(2x − i) , lo cual concluye la prueba. 3 Observaci´on 4: La suma de los trasladados Br(x − j) sobre j ∈ Zs /2 y r ≥ s es 2s debido a que Br(x − j) = 2s B(2x − 2j|v1 . . . vr 2vr+1 . . . 2vk) . Observaci´on 5: Si [v1 . . . vs]Zs = Zs , entonces 2s ds i = c1 ⌊i/2⌋ y cada punto c2 i es una combinaci´on convexa de los puntos iniciales c1 i . V´ease tambi´en el Ejercicio 7. Observaci´on 6: Es f´acil la extensi´on de algoritmo de subdivisi´on, para obtener una representaci´on m´as fina, es decir, para cualquier m ∈ IN se tiene s(x) = i∈Zs cm i B(mx − i) , donde los “puntos” cm i = ms dk (i) se pueden calcular sucesivamente a trav´es de las f´ormulas d0 (i) = o c1 i/m si i/m ∈ Zs ∈ Zs , y dr (i) = 1 m m−1 l=0 dr−1 (i − lvr) , r = 1, . . . , k . Esta forma y versiones m´as generales del algoritmo de subdivisi´on se pueden encontrar en [Cohen et al. ’84] y [Dahmen Micchelli ’84]. Estos trabajos ofrecen derivaciones algebraicas del algoritmo. Observaci´on 7: La derivaci´on geom´etrica del algoritmo de subdivisi´on pre- sentada arriba, muestra que cada punto de control cm j depende de los puntos de control c1 i , para los cuales suppB(mx−j) ⊂ suppB(x−i). Entonces su cantidad est´a acotada por un n´umero h que no depende de m y j. Por lo tanto (7) cm j ≤ h sup i∈Zs c1 i . Observaci´on 8: El algoritmo de subdivisi´on se puede utilizar una segunda vez para calcular los puntos de control de c(x) sobre cualquier malla m´as fina Zs /(mn). Como la partici´on de una caja β en trasladados de cajas escaladas
  • 268. 17.7. Convergencia bajo subdivisi´on 249 β/(mn) es ´unica, los puntos de control cmn i resultantes se pueden calcular a partir de los c1 i por una sola aplicaci´on del algoritmo de subdivisi´on. Observaci´on 9: Similarmente se observa que los puntos cm i no dependen del orden de las direcciones v1, . . . , vk, es decir, del orden de los pasos de promediaci´on. 17.7 Convergencia bajo subdivisi´on Por medio de la aplicaci´on repetida del algoritmo de subdivisi´on de 17.6 se obtienen los puntos de control de la representaci´on refinada s(x) = i∈Zs cm i B(mx − i) , donde B(x) = B(x|v1 . . . vk) , de una superficie s(x) sobre cualquier malla escalada Zs /m, m ∈ IN. Una propiedad importante de este proceso es que, bajo condiciones adecuadas sobre V = [v1 . . . vk] los puntos cm i convergen a la superficie s(x). Sea h como en (7) y M = sup{ ∇vr c1 i , i ∈ Zs y v1, . . . , v∗ r , . . . , vk generan IRs } . Entonces se tiene el siguiente teorema Si [v1 . . . vk]Zk = Zs , entonces cm i − s(x) ≤ hM/m para todo i, tal que B(mx − i) 0. Este resultado fue obtenido por de Boor et al. [de Boor et al. ’93] quienes tambi´en demuestran que una condici´on suficiente para que la convergencia sea cuadr´atica es que [v1 . . . v∗ i . . . vk]Zk−1 = Zs y que B(x|v1 . . . vk) sea diferenciable. Para la prueba ordenamos v1, . . . , vk de manera que v1, . . . , v∗ r , . . . , vk ge- neran IRs si y s´olo si r ≥ q para alg´un q ∈ {1, . . . , k + 1}. Entonces IRs es la suma directa IRs = v1IR ⊕ · · · ⊕ vq−1IR ⊕ [vq . . . vk]IRk−q . Es m´as, cualquier punto s(x) de la superficie yace en la c´apsula convexa de los puntos de control cm i , con m fijo y B(mx − i) 0. Veremos que los di´ametros de estas c´apsulas convexas tienden a cero. Como [v1 . . . vk]Zk = Zs y el generado de [v1 . . . v∗ r . . . vk] no coincide con IRs para r = 1, . . . , q−1, entonces resulta de B(mx−i) 0 que B(mx−k) = 0 para todo k ∈ Zs tal que i − k no pertenece al generado de vq . . . vk.
  • 269. 250 17. Box splines Por lo tanto, si cm i y cm k son dos puntos de control de s(x) entonces i−k = v pertenece al generado [vq . . . vk] y +v o −v pertenecen a suppB(x). Como [v1 . . . vk]Zk = Zs y como Zs es la suma directa v1Z ⊕ . . . vq−1Z ⊕ [vq−1 . . . vk]Zk−q , se tiene que cualquier v ∈ Zs ∩ span [vq . . . vk] se puede expresar como una suma de vectores posiblemente repetidos del conjunto {vq, −vq, . . . , vk, −vk}. Por lo tanto cualquier diferencia ∇vcm i se puede expresar como una suma de diferencias ∇vr cm i , r = q, . . . , k. Entonces para terminar la prueba es sufi- ciente acotar las diferencias ∇vr cm i . Para r ≥ q podemos omitir el r-´esimo paso de promediaci´on del algoritmo de subdivisi´on de 17.6, obteni´endose (haci´endo caso omiso del factor m) el esquema de diferencias ∇vr , v´ease 15.5 y 15.6. Esto significa: si aplicamos el algoritmo de subdivisi´on 17.6 omitiendo el r-´esimo paso de promediaci´on a las diferencias ∇vr ci 1 obtenemos las diferencias divididas m∇vr cm i . Entonces de (7) resulta sup i∈Zs ∇vr cm i ≤ hM/m , lo cual termina la prueba. 3 En caso contrario, cuando [v1 . . . vk]Zk = Zs , entonces no hay convergencia, como verificaremos para s(x) = B(x). Concretamente, si existe un punto i de la malla Zs , el cual no yace en [v1 . . . vk]Zk , entonces ning´un j ∈ J = i+[v1 . . . vs]Zs yace en [v1 . . . vk]Zk . Como j∈J B(x − j) 0, (vea (4) de 17.6), para cada x ∈ IRs existe j ∈ J tal que B(x − j) 0. Subdividiendo un box spline B(x) con el algoritmo de 17.5 obtenemos puntos de control cm i tales que B(x) = i∈Zs cm i B(mx − i) . La derivaci´on geom´etrica del algoritmo de 17.6 demuestra que cm i = 0 si y s´olo si i ∈ [v1 . . . vk]Zk m. Entonces, si [v1 . . . vk]Zk = Zs o J = ∅, entonces para todo x ∈ IRs existe un punto de control cm j = 0 tal que B(mx − j) 0. Para cada x, tal que B(x) 0, estos puntos de control, que son cero, no convergen a B(x) cuando m tiende a infinito.
  • 270. 17.8. Half-box splines 251 17.8 Half-box splines Los half-box splines se definen sobre mallas triangulares generadas por los vectores e1 = [1 0]t , e2 = [0 1]t y e3 = [1 1]t . En 15.10, estos splines fueron introducidos, en el contexto de la subdivisi´on de mallas hexagonales. En esta secci´on presentamos la definici´on inductiva propuesta en [Sabin ’77] y su interpretaci´on geom´etrica. Subdividiendo el cuadrado unitario a lo largo de su diagonal en la direcci´on e se obtienen dos tri´angulos ∆ = {x|0 ≤ x ≤ y 1} y ∇ = {x|0 ≤ y x 1} . Estos tri´angulos determinan los siguientes half-box splines, de soporte cons- tante H∆(x|) = 1 si x ∈ ∆ 0 en caso contrario y H∇(x|) = 1 si x ∈ ∇ 0 en caso contrario . An´alogamente al caso de los box spline, los half-box splines de orden superior se pueden obtener por medio de convoluciones sucesivas, H∆(x|v3 . . . vk) = 1 0 H∆(x − tvk|v3 . . . vk−1)dt y H∇(x|v3 . . . vk) = 1 0 H∇(x − tvk|v3 . . . vk−1)dt , donde k ≥ 3. Supondremos que los vi, son direcciones unitarias v3, . . . , vk ∈ {e1, e2, e3} . Note que la suma de los half-box splines H∆(x|v3, . . . , vk) y H∇(x|v3, . . . , vk) es el box spline B(x|e1e2v3 . . . vk), inclusive para k = 2. La Figura 17.6 ilus- tra dos half-box splines C1 . Similarmente a lo estudiado para box splines en 17.1, se obtienen propiedades para los half-box splines. Por razones de simetr´ıa listamos solamente las propiedades correspondientes a H(x) = H∆(x|v3 . . . vk). Los half-box splines est´an normalizados IR2 H(x)dx = 1/2 .
  • 271. 252 17. Box splines Figura 17.6: Dos half-box splines C1 c´ubicos por trozos. Cualesquierea k direcciones independientes u1, . . . , uk ∈ IRk definen un half- box spline ϑ = { uiαi|0 ≤ α1 ≤ α2 y α2, . . . , αk ∈ [0, 1]} . La densidad de la sombra de esta “media caja” representa un half-box spline. Esto es, si π denota la proyecci´on de IRk sobre IR2 que aplica u1, . . . , uk en e1, e2, v3, , . . . , vk, entonces H(x|v3 . . . vk) = 1 2 volkϑ volk−2(π−1 x ∩ ϑ) . A partir de esta construcci´on geom´etrica se desprende que H(x) satisface las siguientes propiedades • no depende del orden de v3 . . . vk, • es positivo sobre el conjunto convexo ∆ + [v3 . . . vk](0, 1)k−2 , • tiene como soporte a clausura(∆) + [v3 . . . vk][0, 1]k−2 , • tiene derivada direccional Dvr H(x) = H(x|v3 . . . v∗ r . . . vk) − H(x−vr|v3 . . . v∗ r . . . vk) con respecto a vr, r ≥ 3 , • es r veces continuamente diferenciable si todos los subconjuntos de {v3 . . . vk} obtenidos omitiendo r + 1 vectores vi generan IR2 . • es polin´omica de grado total ≤ k − 2 sobre cada tri´angulo i + ∆, para i ∈ Z2 . Observaci´on 10: Los half-box splines H∆(x|e1 k. . . e1e2 k. . . e2e3 k. . . e3) son continuamente diferenciables 2k − 1 veces y tienen grado ≤ 3k.
  • 272. 17.9. Superficies half-box 253 17.9 Superficies half-box La suma de cualquier par de half-box splines H∆(x) = H(x|e3v3 . . . vk) , H∇(x) = H(x|e3v3 . . . vk) es el box spline B(x|e1e2e3v3 . . . vk). Por lo tanto los trasladados H∆(x−i) y H∇(x − i), i ∈ Z2 , forman una partici´on de la unidad. Por lo tanto cualquier superficie half-box spline s(x) = i∈Z2 (c∆ i H∆(x − i) + c∇ i H∇(x − i)) es una combinaci´on af´ın de sus puntos de control y por lo tanto afinmente invariante. Esto significa que bajo cualquier aplicaci´on af´ın las im´agenes de los puntos de control, determinan la superficie imagen de s(x). Como los half-box splines son no negativos, s(x) es una combinaci´on convexa de sus puntos de control y por lo tanto yace en la c´apsula convexa de ´estos. Si conectamos los puntos de control c∆ i y c∇ j cuyos tri´angulos asociados i+∆ y j + ∇ tienen una arista en com´un, entonces obtenemos una malla hexag- onal, la malla de control de s. La Figura 17.7 ilustra un ejemplo en forma esquem´atica. Figura 17.7: Una malla de control hexagonal. La derivada direccional de s con respecto a vr se puede calcular a trav´es
  • 273. 254 17. Box splines de la f´ormula de 17.8 para un half-box spline, Dvr s(x) = i∈Zs ∇vr c∆ i H∆(x − i|v3 . . . v∗ r . . . vk) +∇vr c∇ i H∇(x − i|v3 . . . v∗ r . . . vk) ) , donde ∇vci = ci − ci−v. Si H∆(x) es continuo o equivalentemente, si dos de las direcciones v3, . . . , vk, son independientes, entonces cualquier derivada direccional de la suma de los trasladados H∆(x − i), es cero. Por lo tanto esta suma es una funci´on constante. Por simetr´ıa y debido a que los half-box splines H∆ y H∇ forman una partici´on de la unidad se tiene (8) i∈Z2 H∆(x − i) = i∈Z2 H∇(x − i) = 1/2 . En particular, esto implica que los trasladados de H∆ y H∇ son linealmente dependientes. Adem´as, si el box spline B(x) = B(x|e1e2v3 . . . vk) = H∆(x) + H∇(x) es continuo, entonces a partir de (6) en 17.5 se obtiene i∈Z2 mi(H∆(x − i) + H∇(x − i)) = x , donde mi es el centro de suppB(x − i). Si H∆ es continuo, usando (8) para cualquier v ∈ IR2 se tiene i∈Z2 ((mi + v)H∆(x − i) + (mi − v)H∇(x − i)) = x . Por ejemplo, si v = (e1 − e2)/6, los puntos m∆ i = mi + v y m∇ i = mi − v forman una malla hexagonal regular tal como se ilustra en la Figura 17.8. Como la representaci´on de los half-box splines es afinmente invariante, para cualquier polinomio lineal l(x), se tiene l(x) = i∈Z2 (l(m∆ i )H∆(x − i) + l(m∇ i )H∇(x − i)) . Nos referimos a esta propiedad como precisi´on lineal de la representaci´on half-box spline. Observaci´on 11: Cualquier superficie half-box spline s(x) = i∈Z2 (c∆ i H∆(x − i) + c∇ i H∇(x − i))
  • 274. 17.10. Ejercicios 255 Figura 17.8: La malla hexagonal de “centros” m∆ i y m∇ i . tambi´en tiene una representaci´on “m´as fina” s(x) = i∈Z2 (d∆ i H∆(mx − i) + d∇ i H∇(mx − i)) para cualquier m ∈ IN. En particular, para m = 2k , k ∈ IN, los nuevos puntos de control d∆ i y d∇ i (los cuales dependen de m) pueden calcularse por k aplicaciones repetidas del algoritmo de subdivisi´on 15.9. Similarmente al algoritmo de subdivisi´on para box splines de 17.6, este algoritmo tiene una generalizaci´on inmediata que permite generar los puntos d∆ i y d∇ i para cualquier m ∈ IN. Dejamos como un ejercicio la formulaci´on y prueba de esta generalizaci´on. 17.10 Ejercicios 1 Suponga que las direcciones v1, . . . , vk ∈ Zs generan IRs y que el box spline asociado B(x) = B(x|v1 . . . vk) es r veces continuamente dife- renciable. Dado un polinomio c(x) de grado total d ≤ r + 1 demuestre por inducci´on sobre k que s(x) = i∈Zs c(i)B(x − i) tambi´en es un polinomio de grado d. Use la f´ormula (5) de 17.5
  • 275. 256 17. Box splines 2 Bajo las mismas condiciones del Ejecicio 1 verifique que la aplicaci´on c(x) → c(i)B(x − i) es lineal y regular en el espacio de los polinomios de grado ≤ r + 1. 3 Pruebe por inducci´on que el conjunto de los polinomios B(x−i|v1 . . . vk), i ∈ Zs es linealmente independiente si y s´olo si [v1 . . . vk] es unimodular. 4 Verifique la siguiente relaci´on de recurrencia para box splines B(x|v1 . . . vk) = 1 k − s k r=1 (αrB(x|v1 . . . v∗ r . . . vk) +(1 − αr)B(x − vr|v1 . . . v∗ r . . . vk)), donde x = k r=1 αrvr. Esta f´ormula fue descubierta por de Boor y H¨ollig [de Boor H¨ollig ’82]. En 1984 Boehm encontr´o una prueba geom´etrica y descubri´o un mecanismo de evaluaci´on de los box splines similar al algoritmo de de Boor [Boehm ’84a]. 5 Dada la malla de control hexagonal de una superficie half-box C1 , sus puntos de B´ezier se pueden calcular usando las tres m´ascaras de la Figura 17.9 y de las versiones sim´etricas de estas m´ascaras. La Figura 17.9 tambi´en indica esquem´aticamente la parte relevante de la malla hexag- onal y un tri´angulo de B´ezier cuyo punto de control s´olido es calculado por la m´ascara. Use estas m´ascaras para calcular la representaci´on de B´ezier de un half-box spline c´ubico, verificando que obtiene el resultado correcto. Figura 17.9: M´ascaras para el c´alculo de puntos de B´ezier. 6 Dada una superficie cu´artica C2 con representaci´on box spline i∈Z2 ci B(x − i|e1e1e2e2e3e3) sobre IR2 su malla de B´ezier se puede calcular como sigue. En primer lugar se subdivide la malla de control por medio del operador de refinamiento R. (Vea la Observaci´on 10 de 15.7). A
  • 276. 17.10. Ejercicios 257 continuaci´on se usa la m´ascara ilustrada en la Figura 17.10 para calcu- lar los puntos de B´ezier a trav´es de la malla subdividida [Boehm ’83, Prautzsch Boehm ’02]. Figura 17.10: C´alculo de los puntos de B´ezier de una superficie box spline cu´artica C2 . 7 Verifique que los puntos de control cm i calculados con el algoritmo de subdivisi´on de la Observaci´on 5 de 17.6, son combinaciones convexas de los puntos de control iniciales c1 i si [v1 . . . vk]Zk = Zs . 8 Sean v1, . . . , vk direcciones de IR2 tales que los ´angulos entre v1 y vr para r = 1, . . . , k crecen y est´an acotados por 180◦ . Demuestre que la frontera del soporte del box spline B(x|v1 . . . vk) est´a formada por los puntos x = v1 + · · · + vr−1 + vrα y x = vk + · · · + vr+1 + vrα , donde r = 1, . . . , k y α ∈ [0, 1] como se ilustra en la Figura 17.2. 9 Sea S el soporte de un box spline y suponga, por simplicidad, que el spline es bivariado. Demuestre que la intersecci´on de S con cualquier trasladado de S es el soporte de alg´un box spline. 10 Sea k = 4 y [v1 . . . vk] = 1 0 1 −1 0 1 1 1 . Verifique que los puntos c2 i obtenidos a trav´es del algoritmo de subdivisi´on de 17.6 tambi´en pueden ser calculados a trav´es del siguiente esquema de promediaci´on: 1. Calcule los puntos medios de todas las aristas c1 i c1 i−v1 y c1 i c1 i−v2 .
  • 277. 258 17. Box splines 2. Conecte los puntos medios de cualesquiera dos aristas que tienen un punto extremo en com´un. Estas son las “nuevas aristas”. 3. Los puntos medios de las nuevas aristas son los puntos c2 i . Este esquema fue introducido en [Sabin ’86] y se ilustra en la Figura 17.11. Su aplicaci´on a mallas de control arbitraria se estudia en [Peters Reif ’97] . Figura 17.11: Un esquema elemental de subdivisi´on. 11 Deduzca el algoritmo de subdivisi´on para superficies half-box para un m arbitrario. Vea la Observaci´on 11 de 17.9. Trabaje geom´etricamente o anal´ıticamente.
  • 278. 18 Simplex splines 18.1 Sombras de simples — 18.2 Propiedades de los simplex splines — 18.3 Sim- plex splines normalizados — 18.4 Inserci´on de nodos — 18.5 Una relaci´on de recurrencia — 18.6 Derivadas — 18.7 Ejercicios Los B-splines introducidos en el Cap´ıtulo 5 tambi´en pueden construirse proyec- tando simples sobre el eje real. Concretamente, un B-spline es la funci´on densidad de la sombra de un simplex. Esta interpretaci´on geom´etrica fue descubierta por Schoenberg en 1965 y Carl de Boor [de Boor ’76b] la utiliz´o para definir spline multivariados en 1976. Esta interpretaci´on tambi´en permite una presentaci´on m´as natural de las propiedades recursivas y de suavidad de la inserci´on de nodos y de la elevaci´on de grado. 18.1 Sombras de simples Para construir los splines multivariados empleamos la proyecci´on de IRk en IRs dada por π[x1 . . . xk]t = [x1 . . . xs]t . Para cada x ∈ IRs π−1 x = {z ∈ IRk |πz = x} , se denomina fibra de π. Las fibras son subespacios k − s dimensionales paralelos de IRk . Si p0, . . . , pk son k + 1 puntos independientes de IRk , entonces su c´apsula convexa σ se denomina simplex. La “sombra” de σ en IRs con respecto a π define un simplex spline s-variado, el cual est´a dado por Mσ(x) = volk−s(σ ∩ π−1 x) . La Figura 18.1 y 18.2 ilustran el caso k = 3, cuando s = 2 y s = 1, respecti- vamente.
  • 279. 260 18. Simplex splines Figura 18.1: La sombra de un tetraedro sobre un plano. Note que Mσ(x) es el volumen k − s dimensional de una rodaja de σ. En particular si k = s, entonces Mσ es la funci´on carcacter´ıstica de σ, la cual est´a definida por Mσ(x) = χσ(x) = 1 si x ∈ σ 0 en caso contrario , y si k = s + 1, entonces Mσ es lineal por trozos. 18.2 Propiedades de los simplex splines Claramente cualquier simplex spline Mσ es no negativo y su soporte es la proyecci´on πσ del simplex σ. Adem´as Mσ es continuo sobre su soporte y si se hace cero sobre la frontera, entonces es continuo sobre IRs . Los v´ertices pi de σ se proyectan en los puntos ai = πpi, denominados nodos de Mσ. La c´apsula convexa de cualesquiera m nodos se denomina m-nodo. En particular, πσ es un (k + 1)-nodo, y cualquier k-nodo de dimensi´on s − 1 de πσ yace en su frontera. Es m´as, Mσ es continuo en todo IRs excepto posiblemente en un k-nodo de dimensi´on s − 1.
  • 280. 18.2. Propiedades de los simplex splines 261 Figura 18.2: La sombra de un tetraedro sobre una recta. Para la prueba, supongamos que a1, . . . , am determinan un m-nodo de di- mensi´on s−1 que yace en la frontera de πσ = suppMσ. Supongamos adem´as que la c´apsula af´ın de este m-nodo no contiene a ning´un otro nodo. Sea ρ el simplex correspondiente dado por p1 . . . pm. Entonces, como πρ yace en la frontera de πσ, se tiene que para cada x ∈ πρ π−1 x ∩ ρ = π−1 x ∩ σ . Como π−1 x ∩ ρ es (m − 1) − (s − 1) = m − s dimensional, entonces Mσ(x) no se anula sobre πρ si y s´olo si m = k. 3 Los s-nodos (no degenerados) particionan el soprte de Mσ. Esto se ilustra en la Figura 18.3 para k = 4 y s = 2. Figura 18.3: Nodos de soporte y 2-nodos de un simplex spline cuadr´atico bivariado. Veremos que Mσ restringido a cada tesela de esta partici´on es un polinomio de grado total ≤ k − s y que Mσ es continuamente diferenciable k − m − 1 veces sobre cada s-nodo cuya c´apsula af´ın contiene m nodos. Entonces si los nodos est´an en posici´on general, se tiene que Mσ es diferenciable k − s − 1 veces. Observaci´on 1: Para cada funci´on continua f definida sobre IRs se tiene IRs Mσ(x)f(x)dx = σ f(πy)dy .
  • 281. 262 18. Simplex splines Por lo tanto Mσ tambi´en se puede definir requiriendo que esta ecuaci´on se satisfaga para todo f. V´ease [Micchelli ’80] y tambi´en la Observaci´on 1 de 17.2. 18.3 Simplex splines normalizados De acuerdo a nuestra definici´on un simplex spline s-variado Mσ depende de un simplex σ de dimensi´on k. A continuaci´on veremos que Mσ realmente s´olo depende de sus nodos en IRs . Sea ρ otro k-simplex tal que sus nodos (es decir, las proyecciones de sus v´ertices sobre IRk ) coinciden con los nodos pi de σ, entonces la aplicaci´on af´ın ϕ que env´ıa σ sobre ρ, satisface π ◦ ϕ = π. Por lo tanto la imagen por ϕ de una rodaja σx = σ ∩ π−1 x coincide con ρx = ρ ∩ π−1 x. Cualesquiera dos rodajas σx y σy son paralelas, por lo tanto la raz´on de sus vol´umenes se preserva bajo ϕ, lo cual implica que las razones Mσ(x) : Mσ(y) = Mρ(x) : Mρ(y) y Mσ(x) : Mρ(x) = Mσ(y) : Mρ(y) son constantes para todo x. Como IRs Mσ(x)dx = volkσ , podemos concluir que el simplex spline normalizado M(x|a0 . . . ak) = Mσ(x)/volkσ depende solamente de los nodos a0, . . . , ak y no depende del k-simplex σ. Observaci´on 2: La integral de un simplex spline normalizado es uno, IRs M(x|a0 . . . ak)dx = 1 . Observaci´on 3: Las propiedades de suavidad establecidas en 18.2 carac- terizan un simplex spline univariado M(x|a0 . . . ak) como un m´ultiplo de un B-spline ordinario N(x|a0 . . . ak) sobre los mismos nodos, vea 5.4. Por lo tanto, se desprende del Ejercicio 2 de 5.12 que M(x|a0 . . . ak) = k ak − a0 N(x|a0 . . . ak) , donde suponemos que [a0, ak] es el soporte.
  • 282. 18.4. Inserci´on de nodos 263 18.4 Inserci´on de nodos La f´ormula de inserci´on de nodos para B-splines univariados presentada en 6.1 corresponde a una subdivisi´on del simplex generador y se puede generalizar f´acilmente. Como antes, denotamos por σ el simplex de v´ertices p0 . . . pk y ai = πpi son los nodos correspondientes en Rs . Sea ak+1 = k i=0 αiai , 1 = k i=0 αi , un nodo “nuevo”, el cual consideraremos como la proyecci´on del punto pk+1 = αipi que yace en IRk . Si k s los pesos αi no est´an un´ıvocamente determinados por ak+1. Finalmente, denotamos por σi el simplex p0 . . . p∗ i . . . pk+1, donde el asterisco denota la ausencia del v´ertice correspondiente. En particular lo anterior implica que σk+1 = σ y se tiene que los otros simples: σ0, . . . σk forman una partici´on del simplex σ de manera que la siguiente suma de los splines Mσi coincide con Mσ, esto es Mσ = k i=0 (signαi)Mσi . En la Figura 18.4 se ilustran dos ejemplos, uno para k = 2 y otro para k = 3. En el caso k = 2, Mσ = Mσ1 + Mσ2 − Mσ0 , y para k = 3, Mσ = Mσ0 + Mσ1 + Mσ2 + Mσ3 . Figura 18.4: Subdivisi´on de un tri´angulo y de un tetraedro. Para la prueba considere un punto y = ηipi y sean ηk+1 = 0 y αk+1 = −1. Entonces, para cualquier λ ∈ IR se tiene la ecuaci´on y = k+1 i=0 (ηi − λαi)pi .
  • 283. 264 18. Simplex splines En particular, para λ = λj = ηj/αj, los pesos ηi − λjαi son las coordenadas baric´entricas de y con respecto a σj. Es m´as, y yace en el interior del simplex σj si y s´olo si todos los pesos ηi − λjαi, j = i, son positivos. Si λj = λk entonces y yace en la frontera com´un de σj y σk. Supondremos que ´este no es el caso. Como los pesos ηi − λαi son mon´otonos en λ y existen coeficientes αi tanto positivos como negativos, entonces existe a lo sumo un intervalo no vac´ıo (λj, λk) sobre el cual todos los pesos ηi − λαi son positivos. Por lo tanto, y no pertenece a ning´un simplex o yace en exactamente dos simples σj y σk, caso en el cual αj y αk tienen signos opuestos. Vea la Figura 18.5. Figura 18.5: Los pesos ηi − λαi. Entonces la funciones caracter´ısticas de los splines satisfacen 0 = (signα0)χσ0 + · · · + (signαk)χσk − χσk+1 sobre IRk sin incluir las caras de dimensi´on inferior de σi. Esto implica que Mσ = signα0Mσ0 + · · · + signαkMσk y concluye la prueba. 3 Si se normaliza la expresi´on anterior obtenemos la f´ormula de inserci´on de nodos (1) M(x|a0 . . . ak) = k i=0 αiM(x|a0 . . . a∗ i . . . ak+1) para todo x donde los splines considerados son continuos. Vea [Micchelli ’80] y los Ejercicios 2 y 3. Observe tambi´en que el lado derecho de la f´ormula de inserci´on de nodos es una combinaci´on af´ın.
  • 284. 18.5. Una relaci´on de recurrencia 265 18.5 Una relaci´on de recurrencia Si el nuevo nodo insertado ak+1 coincide con x, entonces la f´ormula de in- serci´on (1) de 18.3 se transforma en una representaci´on del simplex spline en x como una combinaci´on af´ın de simplex splines, con x como un nodo, espec´ıficamente M(x|a0 . . . ak) = k i=0 ξiM(x|x a0 . . . a∗ i . . . ak) , donde x = ξiai y 1 = ξi. Esto conduce a una f´ormula recursiva pues los simplex splines del lado derecho tienen grado m´as bajo. Por ejemplo, sea σ0 el simplex de v´ertices p p1 . . . pk en IRk con sombra Mσ0 (x) = M(x|x a1 . . . ak) , donde πp, πp1, . . . , πpk son los nodos x, a1, . . . , ak. Suponemos que el “sim- plex base” ρ, definido por los v´ertices p1, . . . , pk yace en el hiperplano ortog- onal a las fibras de la proyecci´on π. Por lo tanto, si h denota la distancia eucl´ıdea entre p y ρ, entonces se tiene volkσ0 = 1 k h · volk−1ρ y volk−s(σ0 ∩ π−1 x) = 1 k − s h · volk−s−1(ρ ∩ π−1 x) tal como se ilustra en la Figura 18.6 para k = 3 y s = 1. Figura 18.6: C´alculo de los vol´umenes de σ0 y σ0 ∩ π−1 x. Dividiendo la segunda de estas ecuaciones por la primera, obtenemos M(x|x a1 . . . ak) = k k − s M(x|a1 . . . ak) .
  • 285. 266 18. Simplex splines Entonces hemos deducido la relaci´on de recurrencia de Micchelli (2) M(x|a0 . . . ak) = k k − s k i=0 ξiM(x|a0 . . . a∗ i . . . ak) , Esta relaci´on representa un simplex spline con k + 1 nodos como una combi- naci´on lineal de los simplex spline de k nodos. V´ease [Micchelli ’80]. Como los pesos ξi dependen linealmente de x, la aplicaci´on repetida de esta relaci´on de recurrencia implica que un simplex spline s-variado con k + 1 nodos es polin´omico por trozos de grado total ≤ k − s. Observaci´on 4: Comparando las relaciones de recurrencia para simplex splines y polinomios de Bernstein (vea 10.1), se observa que un simplex spline s-variado con solamente s + 1 distintos nodos es un polinomio de Bernstein, es decir M(x|a0 i0+1. . . a0 . . . as is+1. . . as) = k s vols∆ Bk−s (Ù) , donde = (i0 . . . is), k = i0 + · · · + is + s, ∆ denota el simplex a0 . . . as y Ù el vector columna de coordenadas baric´entricas de x con respecto a ∆. Vea la Figura 18.7. Figura 18.7: Polinomios de Bernstein cuadr´aticos. Observaci´on 5: Aplicando repetidamente la relaci´on de recurrencia (2) se puede demostrar que cada segmento polin´omico de un B-spline multivariado depende continuamente de los nodos ai. 18.6 Derivadas Supongamos que x depende linealmente de t x = x0 + tv ,
  • 286. 18.6. Derivadas 267 donde x0 = αipi con αi = 1, representa un punto y v = νipi con νi = 0, representa un vector en IRs . Derivando un B-spline s-variado M(x|a0 . . . ak) con respecto a t obtenemos la derivada direccional en x con respecto a v, la cual se denota por ˙M. La derivada direccional puede ser expresada en t´erminos de B-splines ˙Mi = M(x| a0 . . . a∗ i . . . ak), (3) ˙M = k νiMi . Para la prueba, supondremos primero que k = s + 1. Entonces la relaci´on (3) se obtiene derivando la relaci´on de recurrencia de Micchelli de 18.5. Si k es mayor que s + 1, consideramos los puntos a0 . . . ak como las proyec- ciones bajo π : [x1 . . . xk−1]t → [x1 . . . xs]t de ciertos puntos ¯a0, . . . , ¯ak en IRk−1 . Se obtiene (4) M(x|a0 . . . ak) = IR k−s−1. . . IR M( x y |¯a0 . . . ¯ak)dy . Como M(x|a0 . . . ak) tiene derivadas continuas por la derecha y por la izquierda, se pueden derivar ambos lados de la identidad e intercambiar el s´ımbolo integral y la derivada. ´Esto conduce a d dt M(x|a0 . . . ak) = IR k−s−1. . . IR d dt M( x y |¯a0 . . . ¯ak)dy . Aplicando (3) al integrando y usando (4) se obtiene la expresi´on para ˙M dada por (3). 3 La diferenciaci´on repetida de la derivada r-´esima de un B-spline s-variado M(x|a0 . . . ak) se puede expresar como una combinaci´on lineal de B-splines con k+1−r nodos ai. Estos splines son continuos sobre cualquier s-nodo cuya c´apsula af´ın no contiene m´as de k−r−1 nodos. Por lo tanto, M(x|a0 . . . ak) es continuamente diferenciable k − m − 1 veces sobre cualquier s-nodo cuya c´apsula af´ın no contiene m´as de m nodos. Observaci´on 6: Derivando la relaci´on de recurrencia de Micchelli (2) de 18.5 se obtiene ˙M = k k − s k i=0 (νiMi + ξi ˙Mi) . Por (3) ´esto es equivalente a la f´ormula ˙M = 1 k − s ˙M + k k − s k i=0 ξi ˙Mi , lo cual se puede transformar en la relaci´on de recurrencia para la derivada [Micchelli ’80] d dt M(x|a0 . . . ak) = k k − s − 1 k i=0 ξi d dt M(x|a0 . . . a∗ i . . . ak) .
  • 287. 268 18. Simplex splines 18.7 Ejercicios 1 El volumen de un simplex q0 . . . qk−s en IRk−s est´a dado por volk−s[q0 . . . qk−s] = 1 (k − s)! det q0 . . . qk−s 1 . . . 1 . Utilice esta f´ormula para deducir a partir de la definici´on en 18.1 que un simplex spline s-variado con k + 1 nodos es polin´omico por trozos de grado k − s. 2 Demuestre que la f´ormula de inserci´on de nodos de 18.4 es v´alida tambi´en en la frontera de la c´apsula convexa [a a0 . . . ak] inclusive en el caso cuando alguno de los splines involucrados no son continuos en ´esta. 3 Deduzca la f´ormula de inserci´on de nodos para B-splines univariados a partir de la f´ormula general (1) de 18.4. 4 Deduzca la relaci´on de recurrencia para B-splines univariados a partir de la f´ormula general (2) de 18.5. 5 Un simplex p1 . . . pk en IRk y una direcci´on v definen un prisma. ´Esta es la c´apsula convexa de sus 2k v´ertices pi y qi = pi+v , i = 1, . . . , k. Demuestre que los k simples q1 . . . qi pi . . . pk, para i = 1, . . . , k tienen el mismo volumen y forman una partici´on del prisma. Vea la Figura 18.8. p1 p2 p3v v v Figura 18.8: Triangulaci´on de un prisma. 6 Use el Ejercicio 5 para demostrar la f´ormula de elevaci´on de grado de Micchelli para B-splines multivariados [Micchelli ’79]. M(x|a0 . . . ak) = 1 k + 1 k i=0 M(x|a0 a1 . . . ai ai . . . ak) .
  • 288. 19 Splines multivariados 19.1 Generalizaci´on del algoritmo de de Casteljau — 19.2 B-polinomios y B- parches — 19.3 Precisi´on lineal — 19.4 Derivadas de un B-parche — 19.5 B- splines multivaridos — 19.6 Combinaciones lineales de B-splines — 19.7 Una relaci´on de recurrencia — 19.8 Derivadas de un spline — 19.9 El teorema fundmental — 19.10 Ejercicios El algoritmo de de Boor es una generalizaci´on del algoritmo de de Casteljau y los B-splines univariados generalizan a los polinomios de Bernstein. De ma- nera similar se puede generalizar el algoritmo de de Casteljau para polinomios de varias variables a splines multivariados. Las funciones base subyacentes del algoritmo generalizado son los simplex splines, los cuales forman una partici´on de la unidad. Estos simplex splines son la generalizaci´on adecuada de los B-splines univa- riados y muchas de las propiedades de estos ´ultimos tambi´en son v´alidas para los simplex splines multivariados. 19.1 Generalizaci´on del algoritmo de de Casteljau Los polinomios de Bernstein restringidos a un simplex pueden ser interpre- tados como simplex splines con nodos m´ultiples. Vea la Observaci´on 4 en 18.5. Por lo tanto, el algoritmo de de Casteljau es un caso especial del algo- ritmo de de Boor para splines univariados. De manera an´aloga el algoritmo de de Casteljau para polinomios multivariados tambi´en se puede extender [Seidel ’91]. La idea se ilustra en las Figuras 19.1 y 19.2 para el caso de un polinomio cuadr´atico c(x). Como anterirormente (vea la Figura 11.1) de- notamos por x y, la evaluaci´on c[x y], de la forma polar correspondiente al polinomio c.
  • 289. 270 19. Splines multivariados La Figura 19.1 ilustra el algoritmo de de Casteljau con respecto al tri´angulo 012. A partir de los seis puntos de B´ezier c[i j] se calculan los tres puntos intermedios c[j x] y a partir de estos ´ultimos se obtiene c(x) = c[x x]. Figura 19.1: El algoritmo de de Casteljau en el caso cuadr´atico. La Figura 19.2 esquematiza la generalizaci´on: En vez de tres nodos se tiene tres secuencias de nodos 0¯0, 1¯1, 2¯2. A partir de los seis puntos de con- trol c[0¯0], c[¯0¯1], c[¯11], c[¯1¯2], c[¯22], c[¯2¯0] se calculan los tres puntos c[i x] los cuales a su vez determinan c(x) = c[x x]. Figura 19.2: La generalizaci´on de Seidel del algoritmo de de Casteljau para el caso cuadr´atico. Para considerar la generalizaci´on del algoritmo de de Casteljau sean a0 i , . . . , an−1 i secuencias, tambi´en denominadas cadenas o nubes de nodos, para i = 0, . . . , s. Si estos nodos est´an en posici´on general, entonces cualquier superfi- cie polin´omica s-variada c(x) con forma polar c[x1 . . . xs] est´a completamente definida por sus B-puntos c = c[a0 0 . . . ai0−1 0 . . . a0 s . . . ais−1 s ] , donde = [i0 . . . is] ∈ ∆n y ∆n = { | ∈ Zs+1 , Ó ≤ , i0 + · · · + is = n} . Concretamente c(x) se puede calcular a trav´es de la relaci´on de recurrencia c = ξ0c + 0 + · · · + ξsc + s ∈ ∆ = ∆n−1 ∪ · · · ∪ ∆0 ,
  • 290. 19.2. B-polinomios y B-parches 271 donde ξk son las coordenadas baric´entricas de x con respecto al simplex S = [aj0 0 . . . ajs s ] y k denota el k-´esimo vector unitario de IRs+1 . Esto significa que c = c[a0 0 . . . aj0−1 0 . . . a0 s . . . ajs−1 s x . . . x] y que los nodos est´an en posici´on general si todos los simples S son no degenerados. Observaci´on 1: Si c(x) es cuadr´atico, entonces sus puntos de B´ezier b sobre el simplex SÓ satisfacen b i+ j = c i+ j para todo i = j , y b i+ i yace en el plano generado por los puntos c i+ j , j = 0, . . . , s. La Figura 19.5 muestra un ejemplo. 19.2 B-polinomios y B-parches La generalizaci´on del algoritmo de de Casteljau presentada en 19.1, se puede aplicar a una malla arbitraria de puntos de control c , | | ∈ ∆n. En particular, si los puntos de control est´an dados por c = 1 si = 0 en caso contrario , ∈ ∆n , los polinomios Cn (x), a valores reales, forman una base para el espacio vecto- rial de polinomios de grado menor o igual que n. De hecho, como el algoritmo de de Casteljau generalizado es lineal en los puntos de control, cualquier poli- nomio c(x) de grado ≤ n se puede representar c(x) = ∈∆n c Cn (x) , donde c est´a definido en 19.1. Adem´as, como el n´umero de polinomios Cn coincide con la dimensi´on n+s s del espacio de los polinomios de grado total ≤ n, tenemos que ´estos son linealmente independientes. Los polinomios Cn , los denominaremos B-polinomios y la representaci´on anterior de c(x), como una combinaci´on lineal de los B-polinomios, se de- nomina B-parche. De la construcci´on anterior se desprenden las siguientes propiedades, similares a las de los polinomios de Bernstein de la Secci´on 10.1. Los B-polinomios s-variados de grado n • forman una base del espacio vectorial de todos los polinomios de grado total ≤ n,
  • 291. 272 19. Splines multivariados • forman una partici´on de la unidad: ∈∆n Cn (x) = 1 , • son positivos para todo x del interior de la intersecci´on Γ, de todos los simples S , | | ≤ n − 1, • satisfacen la relaci´on de recurrencia Cn (x) = s k=0 ξkCn−1 − k (x) , donde ξk es la k-´esima coordenada baric´entrica de x con respecto a S − k y C = 0 si tiene alguna coordenada negativa. La intersecci´on Γ de los simples S , ≤ n − 1, se ilustra en la Figura 19.3 para n = 2 y s = 2. N´otese que esta intersecci´on podr´ıa ser vac´ıa, lo cual depende de la posici´on de los nodos. Figura 19.3: La regi´on Γ sobre la cual todos los B-splines para n = s = 2 son positivos. Como los B-polinomios forman una partici´on de la unidad, c(x) es una com- binaci´on af´ın de los puntos c . Por lo tanto los B-parches son invariantes por transformaciones afines. Es m´as, para x ∈ Γ, c(x) yace en la c´apsula convexa de los B-puntos c pues los B-polinomios son no negativos sobre Γ. Observaci´on 2: Si todos los nodos de cada cadena son iguales, es decir, SÓ = S para todo , entonces los B-polinomios Cn coinciden con los polinomios de Bernstein Bn sobre el simplex SÓ pues ambos conjuntos de polinomios satisfacen la misma relaci´on de recurrencia. 19.3 Precisi´on lineal El polinomio identidad c(x) = x, de IRs , se puede representar com un B- parche de grado n con respecto a los nodos aj i introducidos en 19.1. Como
  • 292. 19.4. Derivadas de un B-parche 273 la forma polar de x es x[x1 . . . xn] = 1 n (x1 + · · · + xn) , sus B-puntos son x = 1 n (a0 0 + · · · + ai0−1 0 + · · · + a0 s + · · · + ais−1 s ) . Vea 19.1 y la Figura 19.4, la cual bosqueja el caso n = s = 2. Figura 19.4: La representaci´on de la identidad sobre IR2 como B-parche cuadr´atico. Similarmente se pueden obtener los B-puntos de cualquier otro polinomio c(x) de grado uno. Como c(x) es una aplicaci´on af´ın, su forma polar est´a dada por c[x1 . . . xn] = c(x[x1 . . . xn]) . Por lo tanto los B-puntos de c(x) son c = c(x ). Esta propiedad de la representaci´on de un polinomio de grado uno como un B-parche se denomina precisi´on lineal. Observaci´on 3: Una consecuencia importante de la precisi´on lineal es que cualquier superficie funcional c(x) de grado ≤ n se puede representar como c(x) = x c(x) , donde c(x) = c Cn (x) . ´Esto es, los B-puntos de c(x) son c = [xt c ]t , tal como se ilustra en la Figura 19.5 para n = s = 2. 19.4 Derivadas de un B-parche La derivada direccional de un polinomio c(x) = c Cn (x)
  • 293. 274 19. Splines multivariados Figura 19.5: Un polinomio cuadr´atico con sus ordenadas como parche y como B-parche de B´ezier. dado como un B-spline con respecto a una secuencia de nodos AÒ− tiene una representaci´on como un B-parche de grado n − 1 con respecto a la secuencia de nodos AÒ−2 . Esta representaci´on depende de los puntos c de una manera elemental. Sea ∆x una direcci´on cualquiera de IRs y denotemos por ˙c(x) = d dt c(x + t∆x)|t=0 la derivada direccional de c en la direcci´on ∆x en el punto x. Si c[x1 . . . xn] es el polinomio sim´etrico de c(x), entonces la forma polar de ˙c(x) est´a dada por ˙c[x2 . . . xn] = nc[∆x x2 . . . xn] , tal como se present´o en 11.6. Por lo tanto los B-puntos de ˙c(x) son n˙c = nc[∆x a0 0 . . . ai0−1 0 . . . a0 s . . . ais−1 s ] , ∈ ∆n−1 . Expresando ∆x con respecto a S , es decir, rescribiendo ∆x como ∆x = s k=0 νkajk k , 0 = s k=0 νk , y usando que las formas polares son multiafines, se obtiene ˙c = s k=0 νkc + k .
  • 294. 19.5. B-splines multivariados 275 La Figura 19.6 ilustra el caso s = n = 2. Figura 19.6: Las diferencias ˙c . Observaci´on 4: Sean x los B-puntos del polinomio identidad p(x) = x con respecto a los nodos ai k. Entonces, podemos pensar en la B-malla de c(x) como una colecci´on de parches lineales c (x) = s k=0 γkc + k , ∈ ∆n−1 , sobre los simples x + 0 . . . x + s , donde γ0, . . . , γs son las coordenadas baric´en- tricas de x respecto a x + 0 . . . x + s . Como ˙γk = nνk, la derivada direccional de c (x) en la direcci´on ∆x es n˙c y se tiene que la derivada de la B-malla consiste en los B-puntos de la derivada ˙c(x). Esto se ilustra para una funci´on cuadr´atica bivariada en la Figura 19.7. 19.5 B-splines multivariados Los B-polinomios C , ∈ ∆n, est´an definidos con respecto a los nodos a0 0, . . . , an−1 0 , . . . , a0 s, . . . , an−1 s . Si se agregan s + 1 nodos a0n, . . . , asn demostraremos que los simplex splines normalizados N = vol S (n+s s ) M(x|A ) , ∈ ∆n ,
  • 295. 276 19. Splines multivariados Figura 19.7: La derivada direccional de una B-malla para n = s = 2. con la secuencias de nodos A = a0 0 . . . ai0 0 . . . a0 s . . . ais s coinciden con los B-polinomios C (x) para todo x ∈ Ω = interior ( ∈∆0∪···∪∆n S ) . Este resultado fue probado en [Dahmen et al. ’92]. Los splines N son B-splines multivariados y tienen propiedades an´alogas a las de los splines univariados. De hecho, si s = 1, los B-splines N (x) coinciden con los B-splines univariados definidos en 5.3. Prueba: A partir de la definici´on de simplex splines en 18.1 y teniendo en cuenta la f´ormula de recurrencia (2) de 18.5, obtenemos para todo x ∈ IRs la siguiente relaci´on de recurrencia N0 Ó(x) = 1 si x ∈ SÓ 0 en caso contrario , N (x) = s k=0 vol S j+s s j + s s σk vol Sk σ vol S M(x|A − k ) , j = | | , donde Sk se obtiene a partir de S reemplazando ajk k por x. Las orientaciones −1 y +1 de las secuencias S y Sk se denotan por σ y σk , respectivamente. Como ambos simples, S y S − k , contienen a Ω, sus orientaciones son iguales
  • 296. 19.6. Combinaciones lineales de B-splines 277 y la ecuaci´on anterior es equivalente a N (x) = s k=0 σk σ − k vol Sk −ek vol Sk N − k (x) = s k=0 ξk − k N − k (x) ,(1) donde ξk − k es la k-´esima coordenada baric´entrica con respecto a S − k . Para que todos los t´erminos est´en bien definidos, para jk = 0, convenimos ξk −ek = σk vol(Sk j )/σ , σ −ek vol (S − k ) = 1 y N − k (x) = 1 j+s−1 s M(x|A − k ) .(2) Entonces, si jk = 0, tenemos que N − k es un simplex spline sobre la secuencia de nodos A − k , la cual no contiene ning´un nodo de la k-´esima nube a0 k . . . an k . Su soporte tiene intersecci´on vac´ıa con Ω, lo cual probamos a continuaci´on. El soporte de N − k es la c´apsula convexa de los nodos A − k . Por lo tanto cualquier punto en el soporte es una combinaci´on convexa de ciertos puntos a0, . . . , a∗ k, . . . , as, donde cada ai yace en la c´apsula convexa de los primeros ji + 1 nodos a0 i , . . . , aji i de la i-´esima cadena de nodos. Por lo tanto debemos demostrar que cualquier simplex a0 . . . a∗ k . . . as no interseca Ω. Como Ω est´a contenido en todos los simples S , para los cuales Ó ≤ ≤ , entonces tambi´en est´a contenido en cualquier simplex a0 a0 1 . . . a0 s. Repitiendo este razonamiento se demuestra que el abierto Ω est´a contenido en el simplex a0 . . . as, lo cual implica que Ω y el soporte de N − k son disjuntos. Por lo tanto para todo x ∈ Ω la recurrencia para los B-splines N coincide con la recurrecia para los B-polinomios C . Luego, N (x) = C (x) para todo x ∈ Ω. 3 19.6 Combinaciones lineales de B-splines Hasta ahora hemos considerado B-splines sobre un complejo de s+1 cadenas de nodos. Sin embargo, la verdadera utilidad de los B-splines se manifiesta cuando consideramos el espacio de splines definidos sobre una partici´on de IRs en complejos de tales cadenas de nodos. Sean a0 k, k ∈ Z, los v´ertices de una triangulaci´on IRs y denotemos por K ⊂ Zs+1 el conjunto de ´ındices para los splines. a0 k0 . . . a0 ks , = [k0 . . . ks] ∈ K , de la triangulaci´on. Supongamos adem´as que cada uno de estos v´ertices pertenece a una cadena a0 k . . . an k , y denotamos por S al simplex aj0 k0 . . . ajs ks
  • 297. 278 19. Splines multivariados y por A la secuencia de nodos a0 k0 . . . aj0 k0 . . . a0 ks . . . ajs ks , donde ∈ K, y ∈ ∆0 ∪ . . . ∆n−1 . Finalmente, supondremos que para todo ∈ K la intersecci´on Ω = interior ∈∆0∪···∪∆n S es no vac´ıa y como en 19.5, denotamos por N el B-spline multivariado definido sobre la cadena de nodos A . Cualquier combinaci´on lineal s(x) = ∈K ∈∆n c N (x) de los B-splines N conforman una superficie Cn−1 polin´omica por trozos de grado total ≤ n si los nodos est´an en posici´on general. Los coeficientes c forman la malla de control de s(x). La Figura 19.8 ilustra el caso n = s = 2. Note que la malla de control no tiene porque ser conexa, pudiendo descomponerse en submallas, una para cada ∈ K. Estas son las B-mallas de los segmentos polin´omicos s(x), x ∈ Ω . Figura 19.8: La malla de control de un spline cuadr´atico bivariado sobre dos tri´angulos. Decimos que los puntos de control c , ∈ K , ∈ ∆n ,
  • 298. 19.7. Una relaci´on de recurrencia 279 forman una malla conexa, si para cualesquiera dos simples adyacentes S Ó y S¯Ó, despu´es de un cambio adecuado de ´ındices de manera que k0 = ¯k0 y [k1 . . . ks] = [¯k1 . . . ¯ks] , los puntos de control c y c¯ son iguales para todos los , para los cuales i0 = 0. 19.7 Una relaci´on de recurrencia Si el spline s(x) = c N (x) tiene una malla de control conexa, entonces de la relaci´on de recurrencia (1) de 19.5 se desprende que s(x) tambi´en se puede expresar como una combi- naci´on de B-splines N de grado | | = n − 1. M´as precisamente, (3) s(x) = ∈K ∈∆n−1 d N (x) , donde d = s l=0 ξl c , + l y ξ0 , . . . , ξs son las coordenadas baric´enticas de x respecto a S . Para la prueba aplicamos la relaci´on de recurrencia (1) de 19.5 a los B-splines N , obteni´endose s(x) = s l=0 ξl , − l c N , − l . Esta suma envuelve t´erminos c , + l N , con jl = −1. Veremos que la suma de todos estos t´erminos es cero, lo cual nos llevar´a a expresi´on para s(x), de la ecuaci´on (3). Debido a la transformaci´on de los ´ındices es suficiente considerar un ´ındice , para el cual j0 = −1 y = [0 . . . s]. Adicionalmente podemos suponer que ¯ = [−1 1 . . . s] est´a tambi´en en K. Por lo tanto los simples S 0 y S¯0 tienen orientaciones opuestas, es decir, σ Ó = −σ¯Ó .
  • 299. 280 19. Splines multivariados Por aplicaciones sucesivas del argumento usado para deducir (1) se obtiene σ , = −σ¯, y consecuentemente ξ0 = −ξ0 ¯ . Como la malla de control es conexa y N = N¯ , vea (2), se obtiene ξ0 c , + 0 N + ξ0 ¯ c¯, + 0 N¯ = 0 , lo cual concluye la prueba. 3 19.8 Derivadas de un spline La relaci´on de recurrencia (2) de 18.5 y la f´ormula de la derivada (3) de 18.6 para los simplex splines son similares. La f´ormula de la derivada, salvo un factor constante, se obtiene diferenciando los pesos de la f´ormula de recu- rrencia, a pesar de que podr´ıa esperarse m´as t´erminos, debido a la regla del producto. Debido a ´esto la relaci´on de recurrencia (1) de 19.5 para splines multivaria- dos se puede transformar en una f´ormula para la derivada. Derivando las coordenadas baric´entricas ξ en la prueba de la f´ormula de recurrencia de 19.7 se obtiene que, la derivada direccional en la direcci´on ∆x de un spline s(x) s(x) = ∈K c N (x) de grado n = | | con una malla de control conexa est´a dada por d dt s(x + t∆x)|t=0 = n ∈K ∈∆ ˙c N (x) , donde ˙c = s l=0 νlc , + l y ν0, . . . , νs son las coordenadas baric´entricas de la direcci´on ∆x con respecto al simplex S . V´ease tambi´en 19.4. Observaci´on 5: Como ya se observ´o en 19.4 las direcciones ˙c est´an rela- cionadas con las derivadas respecto a ∆x de las mallas de control c (x) de s(x) sobre los simples x , + 0 . . . x , + s .
  • 300. 19.9. El teorema fundamental 281 19.9 El teorema fundamental En esta secci´on usamos la notaci´on de 19.6 y suponemos que los primeros r nodos a0 k, . . . , ar−1 k de cada nube de nodos son iguales. Tomando en cuenta que los simples S Ó forman una triangulaci´on de IRs probaremos que cualquier funci´on polin´omica por trozos, con continuidad Cn−r sobre esta triangulaci´on es una combinaci´on lineal de los B-splines N . En segundo lugar, expresare- mos sus puntos de control en t´erminos de las formas polares de sus segmentos polin´omicos. Sea s(x) un spline n − r veces continuamente diferenciable, tal que sobre cada simplex S Ó coincide con un polinomio s (x) de grado ≤ n. Entonces la versi´on multivariada del teorema principal de 5.5 tiene la siguiente formu- laci´on [Seidel ’92]: El spline s(x) se puede expresar como (4) s(x) = ∈K ∈∆n s [A , − ]N (x) , donde s [x1 . . . xn] es la forma polar de s . La prueba de este teorema es por inducci´on sobre n − r. Si n − r = −1, entonces los B-splines N son los polinomios de Bernstein sobre S Ó. V´ease la 19.5 y la Observaci´on 2 de 19.2. En este caso la identidad (4) se desprende del teorema de 11.2. Supongamos ahora que n−r ≥ 0 y sea Ds(x) la derivada direcional de s(x) con respecto a un vector ∆x y supongamos que Ds(x) = ∈K ∈∆n−1 Ds [A , − ]N (x) . En 11.6 demostramos que la forma polar de Ds se puede experesar en t´erminos de la forma polar de s , esto es Ds [A , − ] = ns [∆x A , − ] = n s l=0 νls [A , − + l ] , donde ν0, . . . , νs son las coordenadas baric´entricas de ∆x con respecto a S . Por la Observaci´on 7 in 11.7 los puntos de control s [A , − ] forman una malla conexa. Entonces 19.8 implica que D s [A , − ]N = Ds Por lo tanto (4) se verifica, salvo una constante. Pero como (2) es cierto sobre Ω , (vea 19.4 y 19.5), esta constante es cero, lo cual concluye la prueba. 3
  • 301. 282 19. Splines multivariados En particular se tiene que los B-splines froman una partici´on de la unidad ∈K ∈∆n N = 1 . El polinomio identidad p(x) = x tiene puntos de control x = 1 n A e . Vea tambi´en 19.3. La Figura 19.8 ilustra el caso n = s = 2. 19.10 Ejercicios 1 Escriba un algoritmo de elevaci´on de grado para B-parches. Dada una se- cuencia de cadenas de nodos AÒ = a0 0 . . . an s en IRs y cualquier polinomio p(x) de grado n, considere las dos representaciones por B-parches p(x) = ∈∆n p Cn (x) y p(x) = ∈∆n+1 p Cn+1 (x) con respecto a AÒ− y AÒ, respectivamente. Exprese los puntos de control p como combinaciones afines de los puntos p . 2 Encuentre un algoritmo que permita rescribir un spline sobre la trian- gulaci´on S ,Ó, ∈ K, definida en 19.9 con nodos a0 k = · · · = ar−1 k , de multiplicidad r, como una combinaci´on lineal de B-splines con nodos de multiplicidad r + 1, a0 k = · · · = ar k. 3 Proponga un algoritmo de elevaci´on de grado para splines multivariados sobre una triangulaci´on de IRs . Estos splines deben presentarse como combinaciones lineales de B-splines. 4 Encuentre un algoritmo para calcular la representaci´on de B´ezier de un spline sobre la triangulaci´on S Ó, ∈ K, definida en 19.9. 5 Sea AÒ = [a0 0 . . . an s ] la matriz de s+1 cadenas, cada una con n+1 nodos y denotemos por x = 1 n A e, sus abscisas de Greville. V´ease la Obser- vaci´on 3 de 19.3. Decimos que los puntos x est´an bien posicionados si todos los simples, x + 0 . . . x + s , ∈ ∆n−1 tienen interiores disjuntos. Demuestre que los x est´an bien posicionados si cualquier nodo aµν se puede expresar como aµν = aµ0 + s k=0 αkak0 ,
  • 302. 19.10. Ejercicios 283 donde 0 = α0+ · · · +αs y |α0|, . . . , |αs| 1/2. V´ease tambi´en [Prautzsch ’97, Teorema 4.2]. 6 Sea AÒ, n0 = n1 = n2 = 2, una secuencia de nodos con abscisas de Gre- ville bien posicionadas. Demuestre que cualquier polinomio cuadr´atico bivariado (a valores en IR2 ) es convexo sobre IR2 si la malla de su B- parche, con respecto a AÒ, es convexa. Vea 10.6 y las Figuras 10.6 y 19.5. 7 Sea AÒ una secuencia de nodos en IR2 con abscisas de Greville bien posi- cionadas. Demuestre que cualquier polinomio cuadr´atico bivariado, a valores en R, es convexo sobre el dominio Ω, definido en 19.5 si su B- malla con respecto a AÒ es convexa.
  • 303. 284 19. Splines multivariados
  • 304. Bibliograf´ıa C. Bangert and H. Prautzsch (1999). A geometric criterion for the convexity of Powell-Sabin interpolants and its multivariate extension. Computer Aided Geometric Design, 16(6):529–538. R.E. Barnhill and R.F. Riesenfeld, editors (1974). Computer Aided Geometric Design. Academic Press, New York, 1974. W. Boehm (1977). ¨Uber die Konstruktion von B-Spline-Kurven. Computing, 18:161–166. W. Boehm (1980). Inserting new knots into B-Spline-Curves. Computer- Aided Design, 12(4):199–201. W. Boehm (1983). Generating the B´ezier points of triangular splines. In R.E. Barnhill and W. Boehm, editors (1983), Surfaces in Computer Aided Geometric Design, pages 77–91. Elsevier Science Publishers B.V. (North-Holland), 1983. W. Boehm (1984a). Calculating with box splines. Computer Aided Geomet- ric Design, 1:149–162. W. Boehm (1984b). Efficient evaluation of splines. Computing, 33:171–177. W. Boehm (1985). Curvature continuous curves and surfaces. Computer Aided Geometric Design, 2:313–323. W. Boehm (1987). Smooth curves and surfaces. In G. Farin, editor (1987), Geometric Modeling: Algorithms and New Trends, pages 175– 184. SIAM, 1987. W. Boehm, G. Farin, and J. Kahmann (1984). A survey of curve and surface methods in CAGD. Computer Aided Geometric Design, 1(1):1– 60. W. Boehm and H. Prautzsch (1993). Numerical Methods. Vieweg, Wies- baden and AK Peters, Wellesley, Mass. W. Boehm, H. Prautzsch, and P. Arner (1987). On triangular splines. Constructive Approximation, 3:157–167.
  • 305. 286 Bibliograf´ıa C. de Boor (1972). On calculating with B-splines. Journal of Approximation Theory, 6:50–62. C. de Boor (1976). Total positivity of the spline collocation matrix. Indiana University Journal Math., 25:541–551. C. de Boor (1976a). Splines as linear combinations of B-splines. In Schu- maker, Lorentz, Chui, editor (1976a), Approximation Theory II, pages 1–47. Academic Press, New York, 1976. C. de Boor (1978). A Practical Guide to Splines. Springer, New York. C. de Boor (1984). Splinefunktionen. Research Report 84-05, Seminar f¨ur angewandte Mathematik, Eidgen¨ossische Technische Hochschule, Z¨urich, Switzerland, 1984. C. de Boor (1987). B-form basics. In G. Farin, editor (1987), Geometric Modeling: Algorithms and New Trends, pages 131–148. SIAM, Philadel- phia, 1987. C. de Boor and K. H¨ollig (1982). Recurrence relations for multivariate B-splines. Proceedings of the American Mathematical Society, 85(3). C. de Boor, K. H¨ollig, and S. Riemenschneider (1993). Box Splines. Applied Mathematical Sciences 98. Springer, New York. M. do Carmo (1976). Differential Geometry of Curves and Surfaces. Pren- tice Hall, Englewood Cliffs, New Jersey, 1976. J.M. Carnicer and W. Dahmen (1992). Convexity preserving interpo- lation and Powell-Sabin elements. Computer Aided Geometric Design, 9(4):279–290. P. de Faget de Casteljau (1959). Outillage m´ethodes calcul. Enveloppe Soleau 40.040, Institute National de la Propriet´e Industrielle, Paris. P. de Faget de Casteljau (1985). Formes a poles. In Mathematiques et CAO 2. Hermes Publishing, Paris, 1985. E. Catmull and J. Clark (1978). Recursively generated B-spline surfaces on arbitrary topological meshes. Computer-Aided Design, 10(6):350– 355. A.S. Cavaretta, W. Dahmen, and C.A. Micchelli (1991). Station- ary subdivision. Memoirs of the American Mathematical Society, 93(453):1–186. G.M. Chaikin (1974). An algorithm for high-speed curve generation. Com- puter Graphics and Image Processing, 3:346–349.
  • 306. Bibliograf´ıa 287 R.W. Clough and J.L. Tocher (1965). Finite element stiffness matrices for the analysis of plate bending. In Proceedings of the 1st Conference on Matrix Methods in Structural Mechanics, Wright-Patterson AFB AFFDL TR, pages 515–545, 1965. E. Cohen, T. Lyche, and R.F. Riesenfeld (1980). Discrete B-splines and subdivision techniques in computer-aided geometric design and computer graphics. Computer Graphics and Image Processing, 14:87– 111. E. Cohen, T. Lyche, and R.F. Riesenfeld (1984). Discrete box splines and refinement algorithms. Computer Aided Geometric Design, 1:131– 148. E. Cohen, T. Lyche, and L.L. Schumaker (1985). Algorithms for degree raising of splines. ACM Transactions on Graphics, 4(3):171–181. M.G. Cox (1972). The numerical evaluation of B-splines. J. Inst. Maths. Applics., 10:134–149. H.B. Curry and I.J. Schoenberg (1966). On P´olya frequency functions IV: The fundamental spline functions and their limits. J. d’Analyse Math., 17:71–107. W. Dahmen and C.A. Micchelli (1983). Translates of multivariate splines. Linear Algebra and its Applications, 217-234. W. Dahmen and C.A. Micchelli (1984). Subdivision algorithms for the generation of box spline surfaces. Computer Aided Geometric Design, 1:115–129. W. Dahmen and C.A. Micchelli (1985). On the local linear independence of translates of a box spline. Studia Math., 82:243-262. W. Dahmen, C.A. Micchelli, and H.-P. Seidel (1992). Blossoming begets B-splines built better by B-patches. Mathematics of computation 59, 199:97–115. W. Degen (1988). Some remarks on B´ezier curves. Computer Aided Geo- metric Design, 5:259–268. A.D. DeRose, R.N. Goldmann, H. Hagen, and S. Mann (1993). Func- tional composition algorithms via blossoming. ACM Transactions on Graphics, 12:113–135. D.W.H. Doo and M.A. Sabin (1978). Behavior of recursive division sur- faces near extraordinary points. Computer-Aided Design, 10(6):356– 360.
  • 307. 288 Bibliograf´ıa N. Dyn, J. Gregory, and D. Levin (1990). A butterfly subdivision scheme for surface interpolation with tension control. ACM Transactions on Graphics, 9:160–169. N. Dyn, J.A. Gregory, and D. Levin (1991). Analysis of uniform bi- nary subdivision schemes for curve design. Constructive Approxima- tion, 7:127–147. N. Dyn, D. Levin, and J.A. Gregory (1987). A 4-point interpolatory subdivision scheme for curve design. Computer Aided Geometric De- sign, 4:257–268. N. Dyn and C.A. Micchelli (1988). Piecewise polynomial spaces and geometric continuity of curves. Numerical Mathematics, 54:319–337. M. Eck (1993). Degree reduction of B´ezier curves. Computer-Aided Design, 10:237–251. M. Eck (1995). Least squares degree reduction of B´ezier curves. Computer- Aided Design, 27 (11):845–853. G. Farin (1979). Subsplines ¨uber Dreiecken. Diss., TU Braunschweig, Ger- many, 1979. G. Farin (1982). Visually C2 cubic splines. Computer-Aided Design, 14:137– 139. G. Farin (1986). Triangular Bernstein-B´ezier patches. Computer Aided Geometric Design, 3(2):83–127. G. Farin (2002). Curves and Surfaces for Computer Aided Geometric De- sign. Morgan Kaufmann Publishers, 5th edition. D. Filip, R. Magdson, and R. Markot (1986). Surface algorithms using bounds on derivatives. Computer Aided Geometric Design, 3(4):295– 311. M.S. Floater (1997). A counterexample to a theorem about the convexity of Powell-Sabin elements. Computer Aided Geometric Design, 14:383– 385. T.A. Foley and G.M. Nielson (1989). Knot selection for parametric spline interpolation. In T. Lyche and L.L. Schumaker, editors (1989), Mathematical Methods in Computer Aided Geometric Design, pages 261–271. Academic Press, Boston, 1989. W. Gordon and R.E. Riesenfeld (1974). B-spline curves and surfaces. In [Barnhill Riesenfeld ’74], pages 95–125, 1974.
  • 308. Bibliograf´ıa 289 T.A. Grandine (1989). On convexity of piecewise polynomial functions on triangulations. Computer Aided Geometric Design, 6(3):181–187. J. Gravesen (1997). Adaptive subdivision and the length of B´ezier curves. Computational Geometry, 8:13–31. J.A. Gregory (1991). An introduction to bivariate uniform subdivision. In D.F. Griffiths and G.A. Watson, editors (1991), Numerical Analy- sis, pages 103–117. Pitman Research Notes in Mathematics, Longman Scientific and Technical, 1991. T.N.E. Greville (1967). On the normalization of the B-splines and the location of the nodes for the case of unequally spaced knots. In O. Shiska, editor (1967), Inequalities. Academic Press, New York, 1967. J. Hoschek and D. Lasser (1992). Grundlagen der geometrischen Daten- verarbeitung. B.G. Teubner, Stuttgart, second edition. English transla- tion: Fundamentals of Computer Aided Geometric Design, AK Peters, Wellesley, 1993. R.-Q. Jia (1983). Linear independence of translates of a box spline. Journal of Approximation Theory, 40:158-160. R.-Q. Jia (1985). Local linear independence of the translates of a box spline. Constructive Approximation, 1:175-182. S. Karlin (1968). Total Positivity. Stanford University Press, 1968. W. Klingenberg (1978). A Course in Differential Geometry. Springer, New York. L. Kobbelt (1994). Iterative Erzeugung glatter Interpolanten. Diss., Uni- versit¨at Karlsruhe, 1994. L. Kobbelt (2000). √ 3-Subdivision. Proceedings of SIGGRAPH 2000, Aca- demic Press, New York, pages 103–112. L. Kobbelt and H. Prautzsch (1995). Approximating the length of a spline by its control polygon. In T. Lyche M. Dæhlen and L.L. Schumaker, editors (1995), Mathematical Methods for Curves and Surfaces, pages 291–292, 1995. M.-J. Lai (1991). A characterization theorem of multivariate splines in blossoming form. Computer Aided Geometric Design, 8:513–521. J.M. Lane and R.F. Riesenfeld (1980). A theoretical development for the computer generation and display of piecewise polynomial sur- faces. IEEE Transactions on Pattern Analysis and Machine Intelli- gence, 2(1):35–46.
  • 309. 290 Bibliograf´ıa E.T.Y. Lee (1982). A simplified B-spline computation routine. Computing, 29:365–373. E.T.Y. Lee (1989). Choosing nodes in parametric curve interpolation. Computer-Aided Design, 21:363–370. E.T.Y. Lee (1994). Remarks on an identity related to degree elevation. Computer Aided Geometric Design, 11:109–111. W. Liu (1997). A simple, efficient degree raising algorithm for B-spline curves. Computer Aided Geometric Design, 14:693–698. C.T. Loop (1987) Smooth subdivision surfaces based on triangles. Master thesis, University of Utah, 1987. D. Lutterkort, J. Peters and U. Reif (1999). Polynomial degree reduction in the L2-norm equals best Euclidean approximation of B´eziercoefficients. Computer Aided Geometric Design, 16:607–612. M.-L. Mazure and H. Pottmann (1996). Tchebycheff curves. In M. Gasca and C.A. Micchelli, editors (1996), Total Positivity and its Applications, pages 187–218. Kluwer, 1996. C.A. Micchelli (1979). On a numerically efficient method for com- puting multivariate B-splines. In W. Schempp and K. Zeller, editors (1979), Multivariate Approximation Theory, pages 211–248. Birkh¨auser, Basel, 1979. C.A. Micchelli (1980). A constructive approach to Kergin interpolation in Rk : multivariate B-splines and Lagrange interpolation. Rocky Moun- tain Journal of Mathematics, 10(3):485–497. C.A. Micchelli and H. Prautzsch (1987). Refinement and subdivision for spaces of integer translates of a compactly supported function. In D.F. Griffiths and G.A. Watson, editors (1987), Numerical Analy- sis, pages 192–222. Longman, London, 1987. C.A. Micchelli and H. Prautzsch (1989). Computing curves invariant under subdivision. Computer Aided Geometric Design, 4:321–328. D. Nairn, J. Peters, and D. Lutterkort (1999). Sharp, quantitative bounds on the distance between a polynomial piece and its B´ezier con- trol polygon. Computer Aided Geometric Design, 16(7):613–633. G. Nielson (1974). Some piecewise polynomial alternatives to splines under tension. In R.E. Barnhill and R.F. Riesenfeld, editors (1974), Computer Aided Geometric Design, pages 209–235. Academic Press, 1974.
  • 310. Bibliograf´ıa 291 J. Peters (1991). Smooth interpolation of a mesh of curves. Constructive Approximation, 7:221–246. J. Peters (1994). Evaluation and approximate evaluation of the multivari- ate Bernstein-B´ezier form on a regularly partitioned simplex. ACM Transactions on Mathematical Software, 20(4):460–480. J. Peters and U. Reif (1997). The simplest subdivision scheme for smooth- ing polyhedra. ACM Transaction on Graphics, 16(4):420–431. L. Piegl and W. Tiller (1994). Software-engineering approach to degree elevation of B-spline curves. Computer-Aided Design, 26(1):17–28. B. Piper (1987). Visually smooth interpolation with triangular B´ezier patches. In G. Farin, editor (1987), Geometric Modeling: Algorithms and New Trends, Philadelphia, pages 221–233. SIAM, 1987. H. Pottmann (1993). The geometry of Tchebycheffian splines. Computer Aided Geometric Design, 10:181–210. H. Pottmann and A.D. DeRose (1991). Classification using normal curves. Curves and Surfaces in Computer Vision and Graphics 2, 1610:217–228. M.J.D. Powell (1981). Approximation theory and methods. Cambridge University Press. M.J.D. Powell and M.A. Sabin (1977). Piecewise quadratic approxi- mations on triangles. ACM Transactions on Mathematical Software, 3(4):316–325. H. Prautzsch (1984a). Degree elevation of B-spline curves. Computer Aided Geometric Design, 1:193–198. H. Prautzsch (1984b). Unterteilungsalgorithmen f¨ur multivariate Splines Ein geometrischer Zugang. Diss., TU Braunschweig, 1984. H. Prautzsch (1989). A round trip to B-splines via de Casteljau. ACM Transactions on Graphics, 8(3):243–254. H. Prautzsch (1997). Freeform splines. Computer Aided Geometric Design, 14:201–206. H. Prautzsch (1998). Smoothness of subdivision surfaces at extraordinary points. Advances in Computational Mathematics, 9:377–389. H. Prautzsch (2002). B-splines with arbitrary connection matrices. Preprint, 2002. H. Prautzsch and W. Boehm (2002). Box Splines. In Kim et al, editor (2002), Handbook of Computer Aided Design, Elsevier, 2002.
  • 311. 292 Bibliograf´ıa H. Prautzsch and B. Piper (1991). A fast algorithm to raise the degree of spline curves. Computer Aided Geometric Design, 8:253–265. H. Prautzsch and U. Reif (1999). Degree estimates for Ck -piecewise poly- nomial subdivision surfaces. Advances in Computational Mathematics, 10:209–217. L. Ramshaw (1987). Blossoming: a Connect-the-Dots Approach to Splines. Technical report, Digital Systems Research Center, Palo Alto, Califor- nia, June 21, 1987. U. Reif (1993). Neue Aspekte in der Theorie der Freiformfl¨achen beliebiger Topologie. Diss., Mathematisches Institut A der Universit¨at Stuttgart, 1993. U. Reif (1995a). A note on degenerate triangular B´ezier patches. Computer Aided Geometric Design, 12:547–550. U. Reif (1995b). A unified approach to subdivision algorithms near extra- ordinary vertices. Computer Aided Geometric Design, 12:153–174. U. Reif (1996). A degree estimate for subdivision surfaces of higher regu- larity. Proc. of the AMS, 124(7):2167–2174. U. Reif (1998). TURBS - Topologically unrestricted rational B-splines. Constructive Approximation, 14(1):57–78. U. Reif (2000). Best bounds on the approximation of polynomials and splines by their control structure. Computer Aided Geometric Design, 17:579–589. G. de Rham (1947). Un peu de math´ematiques `a propos d’une courbe plane. Elemente der Mathematik, 2(4):89–104. V.L. Rvachev (1990). Compactly supported solutions of functional differ- ential equations and their applications. Russian Math. Surveys, 45:87– 120. M.A. Sabin (1977). The use of piecewise forms for the numerical represen- tation of shape. PhD thesis, Hungarian Academy of Science, Budapest, 1977. M.A. Sabin (1986). Recursive subdivision. In Gregory, editor (1986), The Mathematics of Surfaces, Claredon Press, Oxford, England, pages 269-282. P. Sablonniere (1978). Spline and B´ezier polygons associated with a poly- nomial spline curve. Computer-Aided Design, 10:257–261.
  • 312. Bibliograf´ıa 293 R. Schaback (1993). Error estimates for approximations from control nets. Computer Aided Geometric Design, 10:57–66. I.J. Schoenberg (1967). On spline functions. In O. Sischa, editor (1967), Inequalities, pages 255–291. Academic Press, New York, 1967. I.J. Schoenberg and A. Whitney (1953). On P´olya frequency functions, 3: The positivity of translation determinants with applications to the interpolation problem by spline curves. TAMS, 74:246–259. L.L. Schumaker (1973). Constructive aspects of discrete polynomial spline functions. In G.G. Lorentz et al, editor (1973), Approximation Theory, pages 469–476. Academic Press, New York, 1973. L.L. Schumaker (1981). Spline functions – Basic theory. John Wiley Sons, New York. H.-P. Seidel (1989). Computing B-spline control points. In W. Strasser and H.-P. Seidel, editors (1989), Theory and Practice of geometric modeling, pages 17–32. Springer, Berlin, 1989. H.-P. Seidel (1991). Symmetric recursive algorithms for surfaces: B-patches and the de Boor algorithm for polynomials over triangles. Constructive Approximation, 7:257–279. H.-P. Seidel (1992). New algorithms and techniques for computing with geometrically continuous spline curves of arbitrary degree. Mathemat- ical Modelling and Numerical Analysis, 26(1):149–176. P. Shenkman, D. Dyn, and D. Levin (1999). Normals of the butterfly subdivision scheme surfaces and their application. Journal of Compu- tational and Applied Mathematics, 102(1):157–180. E. St¨ark (1976). Mehrfach differenzierbare B´ezier-Kurven und B´ezier- Fl¨achen. Diss., TU Braunschweig, 1976. W. Trump (2001). Neue Algorithmen zur Graderh¨oung und Umpara- metrisierung von B´ezier- und B-Spline-Darstellungen. Diss., Univer- sit¨at Karlsruhe, 2001. W. Trump and H. Prautzsch (1996). Arbitrary degree elevation for sim- plicial B´ezier polynomials. Computer Aided Geometric Design, 13:387– 398.
  • 314. Indice A-marco, 37 generalizado, 95 abscisas de Greville, 70, 80, 282 de B´ezier, 21, 146 afines invariante bajo aplicaciones, 69 afinmente independientes, 4 invariante, 129, 144, 245, 253 af´ın aplicaci´on, 5 combinaci´on, 5, 129, 144 coordenadas, 4 en cada variable, 25, 130, 155 espacio, 3 osculantes, 102 ajuste por m´ınimos cuadrados, 53 algoritmo de Aitken, 46 de Catmull-Clark, 226 de de Boor, 63, 66, 78 extendido, 70 generalizado, 67, 106 de de Casteljau, 13, 131, 132, 146 estabilidad num´erica, 14, 146 generalizaci´on, 158, 269, 270 de Doo-Sabin, 226 de inserci´on de nodos, 101, 107 de la mariposa, 222, 235 de Lane-Riesenfeld, 30, 111, 206, 216, 226 de Oslo, 79 de promediaci´on en tres direcciones, 220 de subdivisi´on estacionaria, 109 esquema de promedios, 214 para la elevaci´on de grado, 81 aplicaci´on caracter´ıstica, 232 del esquema de subdivisi´on, 232 lineal subyacente, 5 aproximaci´on, 43, 52 aproximante, 52 Arner, 216 autointersecciones, 41 B-malla, 278 B-parche, 271 derivada, 273 B-polinomio, 271 B-punto, 270 B-spline, 60, 62, 276 como diferencias divididas, 74 conversi´on a la representaci´on, 69 de grado n, 68 derivada, 69 discretos, 79 escalados, 110 f´ormula de recursi´on, 64, 111 gamma, 96 propiedades de suavidad, 67 recursi´on de de Boor, 69 representaci´on por, 59
  • 315. 296 Indice t´ecnica, 77 trasladados, 110 una definici´on recursiva, 62 uniformes, 109 Bangert, 177 base, 68, 143 de γ-splines, 96 polin´omica de Newton, 46 blossom, 26, 156 Boehm, 72, 75, 78, 79, 93, 95, 97, 100, 108, 216, 217, 256, 257 de Boor, 31, 39, 56, 61, 63, 64, 66, 67, 69, 70, 74–76, 79, 85, 106, 165, 249, 256, 259 Box spline sobre mallas triangulares, 217 box spline, 218, 239 como sombras, 240 definici´on, 239 densidad de la sombra, 240 subdivisi´on de superfices, 246 superficie, 245 c´alculo con esquema de diferencias, 212 con esquema de promedios, 214 c´apsula convexa, 64, 69, 245, 272 cadena de nodos, 277 caja de acotaci´on, 13, 33 cara de dimensi´on inferior, 144 de la malla de B´ezier, 144 do Carmo, 99 Carnicer, 177 de Casteljau, 131, 132, 156, 158 Catmull, 225, 226 Cavaretta, 213 centro del soporte, 246 Chaikin, 112 Clark, 225, 226 Clough, 170 Cohen, 79, 81, 248 combinaci´on af´ın, 129, 144 convexa, 12, 14, 64, 145, 245 conexi´on Cr simples, 36, 162 G1 , 179 Gk , 190 Gk usando curvas transversales, 191 la regla de la cadena, 192 de dos parches triangulares c´ubicos, 181 general C1 , 179 general Ck , 189 general GCr , 92 geom´etrica G1 , 179 simple Cr , 135 construcci´on de St¨ark, 37, 60 geom´etrica de un box spline, 241 recursiva, 110 construcci´on Gk , 189 contacto de orden r, 92 continuidad de Frenet, 99 de superfices obtenidas por sub- divisi´on, 231 convergencia bajo subdivisi´on, 29, 159, 249 por elevaci´on de grado, 39, 83, 164 por inserci´on de nodos, 80 teorema para Cr -subdivisi´on, 116 uniforme, 115 conversi´on a la forma monomial, 22 a la representaci´on B-spline, 69 a la representaci´on de B´ezier, 20 a la representaci´on tensorial de B´ezier, 166 a la representaci´on triangular de B´ezier, 167
  • 316. Indice 297 de forma de B´ezier a forma monomial, 131 de forma monomial a forma de B´ezier, 131 entre las representaciones de de Boor y de B´ezier, 72 convexa c´apsula, 5, 8, 12, 64, 69, 145, 272 combinaci´on, 5, 12, 14, 64, 145, 245 convexidad, 148, 152 limitaciones, 150 convoluci´on, 109 de Nj−1 con N0 , 110 sucesiva, 239 coordenadas baric´entricas, 4, 141 extendidas, 3 origen del sistema de, 4 Cox, 62, 69, 74–76 c´ubica plana c´uspide, 23 Curry, 66 curva borde, 128 convexa, 35 Frenet continua de orden r, 99 funcionales, 7 normal, 106 par´ametrica, 6 polin´omica, 6 derivada, 35 suaves, 91 curva de B´ezier, 11 recta tangente, 16, 18 curvatura, 99 de una c´ubica, 49 invariante euclideano, 100 prescrita, 56 curvatura continua segmentos conectados por, 94 c´ırculos tangentes, 107 Dahmen, 177, 213, 245, 248, 276 Degen, 93 densidad de la sombra, 240, 252 derivada, 15, 114, 133, 147, 266 r-´esima, 18 de un B-parche, 273 de un polinomio de Bernstein parciales, 147 de un producto tensorial, 133 de un spline, 114 suavidad, 67 direccional, 161, 267, 273 de un box spline, 243, 246 de un half-box spline, 252, 253 en la representaci´on de B´ezier, 16 parcial, 36 DeRose, 167 desplazamientos uniformes, 40 diferencia dividida, 47, 74 hacia adelante, 15, 16 hacia atr´as, 67 dimensi´on, 4 distribuci´on polihipergeom´etrica, 39 Doo, 225, 226 Dyn, 105, 118, 120, 222 Eck, 38 ecuaci´on de correlaci´on, 54 de refinamiento, 114, 117, 206, 212 funcional de un box spline, 242 normales, 54 normales de Gauss, 54 elemento de Zwart-Powell, 244 elevaci´on de grado, 38, 69, 163 esquema de diferencias, 115 c´alculo con, 117, 212 polinomio caracter´ıstico, 213 de las ∇v-diferencias, 213 de los cuatro puntos, 118, 119
  • 317. 298 Indice de producto tensorial, 206, 213 de promediaci´on, 257 de promedios, 214 algoritmo, 214 de subdivisi´on aplicaci´on caracter´ıstica, 232 polinomio caracter´ıstico, 213 s´ımbolo, 213 de subdivisi´on estacionaria de mallas hexagonales, 234 de mallas triangulares, 234 de una malla regular, 205 del punto medio, 225, 226, 236 general de subdivisi´on, 207 iterativo interpolante, 118 tetra´edrico, 19, 71, 73 triangular, 11, 64 esquina del parche, 128 extraordinaria, 139 expansi´on binomial, 9 de Taylor de un segmento de spline, 71 en una superficie triangular, 153 trinomial, 141 f´ormula de elevaci´on de grado, 39, 82, 268 de Micchelli, 268 de Frenet, 98 de Hermite-Genocchi, 56 de inserci´on de nodos, 264 de recurrencia de polinomios de Bernstein, 10 de recursi´on de polinomios de Bernstein, 63, 143 Farin, 39, 40, 52, 93, 94, 162 fibra, 259 Filip, 31 Floater, 177 Foley, 52 forma polar, 65, 156 asociada, 26 del producto tensorial, 130 diagonal, 25 simetr´ıa, 25 tensorial, 130 funci´on caracter´ıstica, 260 de conexi´on, 179 de densidad, 239 error de Gauss, 56 generatriz, 212 gr´afico de una, 6 potencial truncada, 74 racional, 180 racional por trozos, 105 γ-A-marco, 95 γ-spline, 95, 108 Goldman, 167 Gordon, 65 graficaci´on programa de, 30 Grandine, 151 Gravesen, 41 Gregory, 118, 222 Hagen, 167 half-box spline, 251 normalizados, 251 superficies, 253 Half-box splines sobre mallas triangulares, 221 Hoschek, 52 H¨ollig, 249, 256 identidad de Marsden, 70, 75 inserci´on de nodos, 77, 105, 263 repetida de nodos, 78 integral de una curva polin´omica, 19 intercambio
  • 318. Indice 299 entre formas monomial y de B´ezier, 131 interpolaci´on, 43, 84, 169 C1 bic´ubica por trozos, 136 con splines c´ubicos, 86 de Hermite, 48, 169 c´ubica por trozos, 50 de Hermite para curvas en representaci´on de B´ezier, 140 de Lagrange, 44 de Newton, 46 lineal, 4 lineal, esquema, 52 tensorial, 136 interpolador de Clough-Tocher, 170 de Hermite, 194 de Powell-Sabin, 171 triangular G1 , 183 interpretaci´on geom´etrica, 251 intersecci´on, 32 de dos curvas de B´ezier, 32 programa de, 33 invariantes geom´etricos, 99 jets de orden r, 92 Jia, 245 Karlin, 85 Kobbelt, 41, 119, 213 Lai, 163 Lane, 30, 111, 206, 226 Lasser, 52 Lee, 52, 72, 82 Levin, 118, 222 linealmente independientes, 9, 142 linearizaci´on, 55 Liu, 81 longitud de arco, 41, 94 parametrizaci´on por, 94 longitud de cuerdas, 52 Loop, 235 Lutterkort, 38 Lyche, 79, 81, 248 m´ascara, 207, 256 m´etodo de Horner, 14 simplex, 53 macroparche, 198 malla conexa, 279 cuadrilateral, 193, 215 de topolog´ıa arbitraria, 138 cuadrilateral no regular, 137 cuadrilateral regular, 136 de control, 278 secuencia, 209 de cuasi control, 140 de B´ezier, 128, 144, 196 extraordinaria, 226 hexagonal, 219, 234 hexagonal regular, 254 regular, 215 subdivisi´on repetida, 160 triangular, 215, 234 subdivisi´on, 215 Mann, 167 Mansfield, 62, 69, 74–76 marco, 4 de Frenet, 98 matriz caracter´ıstica, 220 de colocaci´on, 84 totalmente positiva, 85 de conexi´on, 92, 99 arbitraria, 104 totalmente positiva, 105 de subdivisi´on, 114, 205, 230 estoc´astica, 230 Mazure, 103 Micchelli, 82, 105, 213, 230, 235, 245, 248, 262, 264, 267, 268 microtri´angulo, 170 multiaf´ın polinomios sim´etricos, 27
  • 319. 300 Indice ν-splines, 97 Nairn, 29 Nielson, 97 m-nodo, 260 nodos, 59, 260 algoritmo de inserci´on, 101, 107 cadenas, 270 convergencia por inserci´on, 80 eliminaci´on para B-splines, 79 f´ormula de inserci´on, 264 inserci´on, 77, 105, 263 inserci´on repetida, 78 m´ultiples, 103 multiplicidad de, 68 nubes, 270 refinamiento, 77 notaci´on vectorial, 131 operador de Bernstein, 23, 40, 152 de diferencia, 153 de duplicaci´on, 206, 216, 219 de promediaci´on, 206, 216, 225 de refinamiento, 206, 217, 225 del punto medio, 226 ordenadas de B´ezier, 21, 146 origen del sistema de coordenadas, 4 osculante, 101 af´ın, 102 diagonal, 101 generalizado, 105 primer, 101 propiedades, 101 segundo, 101 simetr´ıa, 101 osculante generalizado diagonal, 105 par´ametro de dise˜no, 118 global, 11, 128, 142 local, 11, 128, 142 parametrizaci´on centr´ıpeta, 52 equidistante, 51 por longitud de arco, 94 regular, 94 singular, 137, 173 standard, 229 parches multilaterales en el plano, 200 paridad el problema, 185 partici´on de la unidad, 10, 65, 68, 143, 245, 253, 272, 282 partici´on de prisma, 268 Peters, 38, 161, 186, 258 Piegl, 81 Piper, 81 plano osculador, 16, 18 tangente, 134, 138, 148 continuo, 174 poliedro de B´ezier, 148 convexos, 150 polinomio caracter´ıstico del esquema de diferencias, 118, 213 de subdivisi´on, 117, 213 de Bernstein, 9, 141, 266, 272 derivada de un, 15 derivadas parciales, 147 f´ormula de recurrencia, 10, 63, 143 multivariados, 142 propiedades, 9 propiedades de simetr´ıa, 144 propiedades en dimensi´on d, 142 ra´ıces, 10 simetr´ıa, 10, 12, 143 de Hermite, 48 de Lagrange, 44, 126 de Laurent, 117 sim´etrico, 25, 101, 155 de la derivada, 161 elementales, 26, 156 multiaf´ın, 102 relaci´on de recurrecncia, 26
  • 320. Indice 301 pol´ıgono convexo, 35 de control, 101 de diferencias, 115 de B´ezier, 11 de B´ezier compuesto, 29, 37 Pottmann, 103 Powell, 84 p-parche, 198 Prautzsch, 40, 41, 61, 75, 81, 89, 103, 165, 177, 198, 203, 216, 230, 233, 235, 236, 246, 247, 283 precisi´on bilineal de representaci´on de B´ezier, 132 precisi´on lineal, 21, 145, 146, 246, 254, 273 primer hod´ografo, 15 primera diferencia hacia atr´as, 67 prisma partici´on de, 268 problema de la paridad, 185 del v´ertice compartido, 184 producto tensorial, 125 esquema, 206, 213 programaci´on lineal, 57 promedios crecientes, 211 propiedad de variaci´on decreciente, 88 puntos de control, 64, 66, 105, 126, 245, 249, 253 de cuasi control, 140 de B´ezier, 11, 128, 144 dependientes, 199 extraordinarios, 227 libres, 199 Ramshaw, 26, 81, 156 raz´on simple, 4 recorte de esquinas, 34 recursi´on de de Boor, 69 reducci´on de grado, 38 refinamiento uniforme, 145 regla de Leibniz, 76 Reif, 29, 38, 138, 174, 202, 203, 225, 232, 234, 258 relaci´on de recurrencia, 143, 156 de B-polinomios, 272 de Micchelli, 266, 267 de polinomios sim´etricos, 26 f´ormula para B-splines, 64 para box splines, 256 para la derivada del simplex spline, 267 reparametrizaci´on, 190 representaci´on de B´ezier, 9, 11, 127, 143, 152, 157 de parches triangulares, 141 del spline, 79 monomial, 20 residual m´ınimo, 53 de Rham, 112 Riemenschneider, 249 Riesenfeld, 30, 65, 79, 111, 206, 226, 248 Rvachev, 120 Sabin, 162, 171, 225, 226, 251, 258 Sablonniere, 71, 72 Schaback, 80 Schoenberg, 61, 66, 259 Schumaker, 79, 81, 88 secuencia de mallas de control, 209 segmento de curva extremos, 12 Seidel, 81, 105, 107, 269, 281 Shenkman, 222 sim´etrico, 105 simetr´ıa, 128 de polinomios de Bernstein, 12 simplex k-dimensional, 259 de referencia, 144 de B´ezier, 143, 146 simplex spline normalizado, 262
  • 321. 302 Indice simplex splines, 259 sombras de simples, 259 soporte, 260 soporte compacto, 69 spline C1 de grado cinco de topolog´ıa arbitraria, 175 c´ubicos, interpolaci´on, 86 bases, 106, 107 bic´ubico C1 de topolog´ıa arbitraria, 138 c´ubicos peri´odicos, 87 con matrices de conexi´on arbitraria, 104 cu´articos con torsi´on continua, 97 de grado n, 59 de orden n + 1, 60 de Tchebycheff, 103 empotrado, 87 multivariados, 269 nu, 97 representaci´on de B´ezier, 79 simplex, 259 propiedades, 260 tensiones, 97 uniforme, 110 universal, 107 spline half-box, 222 St¨ark, 36, 93, 135 subdivisi´on, 29, 36, 152 de la malla de B´ezier, 158 de mallas hexagonales, 219 de mallas triangulares, 215 de superficies box spline, 246 estacionaria, 115 de una malla regular, esquema, 205 en general, 207 para mallas arbitrarias, 225 para mallas regulares, 205 iterada, 112, 115 repetida, 249 uniforme, 109, 110 subespacio osculador, 102 suma ponderada, 5 superficie Gk de topolog´ıa arbitraria, 193 box spline, 245 subdivisi´on, 246 cerrada, 172 continuidad obtenida por subdivisi´on, 231 de Lagrange, 126 de topolog´ıa arbitraria, 136, 172 funcional, 7, 146, 273 half-box, 253 l´ımite, 227 param´etrica, 7 polin´omica, 7 producto tensorial, 125, 126 superficies suaves, 179 s´ımbolo del esquema de subdivisi´on, 213 t´ecnica de B-splines, 77 de diferencias hacia adelante, 31 de B´ezier, 25 para parches triangulares, 155 Taylor expansi´on de, 22 tensorial forma polar, 130 teorema de convergencia, 116, 209 para Cr -subdivisi´on, 116 de St¨ark, 36, 61, 135, 162, 171 fundamental, 65, 157 interpretaci´on geom´etrica, 102 producto tensorial, 130 para curvas, 27 Schoenberg-Whitney, 84 teselado del soporte, 242 Tiller, 81 Tocher, 170 topolog´ıa arbitraria, 193 torsi´on, 99
  • 322. Indice 303 restricciones, 185 torsi´on cruzada, 134 trasladado, 110 Trump, 40, 81, 89, 165 unimodular, 245 v´ertice, 144 compartido, 184 extraordinarios, 226 irregular, 193 regular, 193 variaci´on decreciente propiedad, 34 vector binormal, 98 normal, 98 tangente, 98 vectorial espacio, 3 notaci´on, 131 Zhou, 39