Metodos de Bezier y B-splines  Spanish
 3937300473, 9783937300474

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Métodos de Bézier y B-Splines

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.

ISBN 3-937300-47-3

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-BOEHM Métodos de Bézier y B-Splines

PALUSZNY-PRAUTZSCH-BOEHM

universitätsverlag karlsruhe

Marco Paluszny, Hartmut Prautzsch, Wolfgang Boehm Métodos de Bézier y B-splines

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

Prefacio

Las t´ecnicas de modelaci´on asistidas por computadoras surgen con el advenimiento 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 importancia 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 propiedades mas u ´tiles 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 Computadora (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, dictados 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 Arquitectura. 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, Karlsruhe, Wolfenb¨ uttel,

Marco Paluszny Hartmut Prautzsch Wolfgang Boehm

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 9

2.1

Polinomios de Bernstein

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

r

3.10

Conexiones C 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

XI

Contenido 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

II

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

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 C

r

1

135

9.8

Interpolaci´ on C bic´ ubica por trozos

136

9.9

Superficies de topolog´ıa arbitraria

136

9.10

Parametrizaci´on singular

137

1

9.11

Splines bic´ ubicos C 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

XIII

Contenido 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

r

11.7

Conexiones C 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 C 1 de grado cinco de topolog´ıa arbitraria

175

12.7

Ejercicios

175

13 Construcci´ on de superficies suaves 13.1

La conexi´on general C 1

13.2

Conexi´ on de dos parches triangulares c´ ubicos

179 1

181

13.3

Un interpolador triangular G

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 14.2 14.3

La conexi´on general C k

189

k

191

k

192

Conexiones G usando curvas transversales Conexiones G usando la regla de la cadena k

14.4

Superficies G 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

XV

Contenido 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

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 interpretaci´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 extendidas:    punto si e = 1 x = xe representa un 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 u ´nica representaci´on q = p + v1 x1 + · · · + vn xn . 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 independientes entonces cada q en A se puede expresar como q = p0 + (p1 − p0 )x1 + · · · + (pn − p0 )xn = p0 x0 + · · · + pn xn , 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 6= j.

En particular, si n = 1 el punto q = p0 (1 − x) + p1 x 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

5

1.3. Aplicaciones afines

Figura 1.2: Interpolaci´on lineal y raz´on. baric´entricas de cualesquiera m puntos de A. Entonces la suma ponderada  P X punto si P αi = 1 a= ai αi representa un vector si αi = 0 P 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           u A a v x A a y , = , = 0 ot 1 0 1 ot 1 1 lo cual se puede rescribir de manera m´ as compacta como:

y = Ax

,

v = Au

.

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 X X Φ( 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

-1 m+1

n+1

1.4

A

=

q0

...

qm

p0

...

pm

.

Curvas y superficies param´ etricas

Una columna x de IRd cuyas coordenadas dependen de un par´ametro t recorre una curva param´ etrica   x1 (t)   x(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.   t x(t) = . x(t)

7

1.5. Ejercicios

Las curvas descritas por gr´aficos de funciones se denominan curvas funcionales. 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 2 3 t la derecha, la curva x = [t 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).   x1 (s, t)   .. x(s, t) =  . . xd (s, t)

La superficie se denomina polin´ omica de grado total n si los xi son polinomios 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:   s x(s, t) =  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 p0 , . . . , pm son linealmente independientes. 2 Las soluciones de un sistema lineal hom´ ogeneo forman un espacio vectorial. 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 combinaciones afines es una aplicaci´ on af´ın. 6 Demuestre que una aplicaci´ on entre dos espacios afines que preserva combinaciones 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 independientes 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 extremos 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 n

1 = (u + (1 − u)) =

n   X n i=0

i

ui (1 − u)n−i

nos permite introducir los polinomios de Bernstein de grado n,   n i Bin (u) := u (1 − u)n−i , i = 0, . . . , n , i 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]. Pn

i=0 bi u

i

(1 − u)n−i = 0 por (1 − u)n y usando s = u/(1 − u)

obtenemos Pn

i i=0 bi s

= 0, lo cual implica que b0 = b1 = . . . = bn = 0.

• Son sim´ etricos, n Bin (u) = Bn−i (1 − u).

• Las u ´nicas ra´ıces son 0 y 1, Bin (0)

=

n Bn−i (1)

=



1 0

para

i=0 i>0

• Forman una partici´ on de la unidad, n X

Bin (u) = 1 ,

para todo u ∈ IR .

i=0

• Son positivos en (0, 1): Bin (u) > 0 ,

para u ∈ (0, 1) .

• Satisfacen la relaci´ on de recurrencia n Bin+1 (u) = uBi−1 (u) + (1 − u)Bin (u) , n n ≡ 0 y B00 ≡ 1. ≡ Bn+1 donde B−1

.

11

2.2. Curvas de B´ezier Esta relaci´ on de recurrencia se desprende de la identidad       n+1 n n = + . i i−1 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 = B00

B01

B02

B11

B12 B22

2.2

B0n

···

regla

B1n

···

* *

B2n .. . Bnn

··· .. .

u PP q P ✲ 1−u



Curvas de B´ ezier

Los polinomios de Bernstein Bin 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 u ´nica representaci´ on de B´ ezier b(u) =

n X

ci Bin (u).

i=0

La transformaci´on af´ın u = a(1 − t) + bt,

a 6= b,

deja invariante el grado de b, por lo tanto b(u(t)) tambi´en tiene una u ´nica representaci´ on de grado n, en t´erminos de los Bin (t) b(u(t)) =

n X

bi Bin (t).

i=0

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 X

bi Bin (t) =

n X

bn−i Bin (s),

i=0

i=0

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.

13

2.3. Algoritmo de de Casteljau

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 n

n

i=0

i=0

b[a, b] ⊂ [min bi , max 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

Pn Una curva b(u) = i=0 bi Bin (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 X i=0

donde

b0i Bin (t) =

n−1 X i=0

b1i Bin−1 (t) = · · · =

0 X i=0

bk+1 = (1 − t)bki + t bki+1 . i

bni Bi0 (t) = bn0 ,

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 bki 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 b2 .. .

b10 b11

bn

b1n−1 b2n−2

regla b20

a b

..

. ···

bn0

P1-t PP q ✲ 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 P b(t) = bi Bin (t), en su representaci´ on de B´ezier. Despu´es de expresar b(t) como: n

b(t) = (1 − t)

i !   n t , bi 1−t i i=0

n X

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:

15

2.4. Derivadas

b(t) = tn

2.4

i !   n 1−t . bn−i t i i=0

n X

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 n n−1 B (t) = n(Bi−1 (t) − Bin−1 (t)) dt i

para

i = 0, . . . , n.

n−1 ≡ Bnn−1 ≡ 0. Para unificar la notaci´ on hemos supuesto, como antes, que B−1 Luego dada una curva

b(u) =

n X i=0

bi Bin (t) ,

t=

u−a , b−a

obtenemos n−1 n X d ∆bi Bin−1 (t) , b(u) = b − a i=0 du

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−r X n! ∆r bi Bin−r (t) , (n − r)!(b − a)r i=0

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 osculadores 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 P 5: Si consideramos el pol´ıgono de control de una curva de B´ezier b(u) = bi Bin (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.

17

2.5. Parametrizaci´on singular

Figura 2.8: Derivadas de un pol´ıgono de B´ezier.

2.5

Parametrizaci´ on singular

Consideramos la curva polin´ omica b(t) =

n X

bi Bin (t) ,

i=0

y su derivada ˙ b(t) =n

n−1 X

∆bi Bin−1 (t) ,

i=0

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 b(t(0)) = n.∆b1 ds

Entonces, si ∆b0 = o y ∆b1 6= 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 6= 0 la tangente a b(t) en t = 0 pasa por b3

18

2.6

2. Representaci´on de B´ezier

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

X

b0i Bin (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, X

∝i

X

βj Pij =

X

βj

X

∝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 posteriormente multiplicando por el factor n · · · (n − r + 1)/(b − a)r . Entonces resulta: b(r) (u) =

n · · · (n − r + 1) (b − a)r

∆r b0n−r .

En particular esta f´ormula nos dice que la tangente y el plano osculador de b en u est´an generados por bn−1 , b1n−1 y b0n−2 , b1n−2 , b2n−2 , respectivamente, 0 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 b0n−k 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 bij , i + j + k ≤ n. Todos estos puntos se pueden

19

2.7. Integraci´on

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 u ´nica forma para calcular los ∆k bji . 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 X i=0

bi Bin (t),

t=

u−a , b−a

20

2. Representaci´on de B´ezier

tiene la representaci´on de B´ezier c(u) =

Z

b(u)du =

n+1 X

ci Bin+1 (t) ,

i=0

donde ci

b−a bi−1 n+1 b−a (b0 + · · · + bi−1 ) , = c0 + n+1

= ci−1 +

y c0 es una constante de integraci´on. derivando c(u).

i = n + 1, . . . , 1 ,

Esto puede verificarse f´acilmente

A partir de la f´ormula anterior y de que b(u) interpola los extremos b0 y bn se deduce la siguiente igualdad Z

b

b(u)du =

b−a (b0 + · · · + bn ) n+1

Bin (t)dt =

1 n+1

a

y en particular,

Z

0

2.8

1

i = 0,...,n

.

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 presentaci´ on monomial de una curva a su representaci´ on de B´ezier. Sea   n i ai b(t) = t i i=0 n X

una curva en representaci´ on monomial. Como   n i t (1 − t + t)n−i i

 n−i   X n n−i ti+k (1 − t)n−i−k = i n−i−k k=0  n−i  X i+k n Bi+k = i k=0 n   X j = Bjn , i j=0

2.8. Conversi´on a la representaci´on de B´ezier se obtiene b(t) =

n X

21

bj Bjn (t) ,

j=0

donde bj = y

j i



n   X j i=0

i

ai

= 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 6= 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   X t b(t) = , b(t) = bi Bin (t) , b(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 X

bi Bin

i=0

=

n X

b(i) (a)

i=0

=

n   X n i=0

Como ∆i b0 = como

Pi

i k=0 k





i

u−a b−a



(u − a)i i!

∆i b0

(u − a)i . (b − a)i

(−1)i−k bk , ver Ejercicio 3, b(a) se puede rescribir

b(u) =

i n X X

i−k

(−1)

i=0 k=0

   n i v bk t i . i k

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 X i=0

2.10

  1 i n−i n hi . ∆ b0 i (b − a)i

Ejercicios

1 Muestre que el polinomio de Bernstein Bin (t) tiene un s´olo m´aximo en [0, 1], en concreto en t = i/n.

23

2.10. Ejercicios

2 El operador de Bernstein B asocia a una funci´on f en [0, 1] el polinomio. n X f (i/n)Bin (t). B[f ] = i=0

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   X i

k=0

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

k+1

=

n X i=0

i . . . (i − k) Bin (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). P3 uspide 7 Demuestre que una c´ ubica plana b(t) = i=0 bi Bi3 (t) tiene una c´ si b3 yace en la par´abola p(t) = (b0 + b1 − b2 )B02 (t) + b1 B12 (t) + b2 B22 (t) [Pottmann & DeRose ’91]. 8 ¿Para qu´e escogencia de b3 , tiene b(t) un lazo?  Pn Pn n i n on matricial se 9 Sea i=0 bi Bi (t). Entonces en notaci´ i=0 ai i t = tiene [a0 . . . an ] = [b0 . . . bn ] ∆ , h i   donde ∆ = (−1)j−i ji y ∆−1 = ji . N´ otese que las matrices ∆ y ∆−1 son triangulares superiores.

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 on de grado — a la derivada — 3.10 Conexiones C r simples — 3.11 Elevaci´ 3.12 Convergencia por elevaci´ on de grado — 3.13 Ejercicios

Muchos algoritmos para curvas de B´ezier pueden ser considerados en el contexto 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 algoritmos es el de de Casteljau, el cual es muy u ´til 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 u ´nico 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 permutaci´ 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 X

ci Ci (u)

i=0

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 X

ci Ci [u1 . . . un ] .

i=0

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 Ani = ni ui , i = 0, . . . , n, se obtienen los polinomios sim´ etricos elementales X Ani [u1 . . . un ] = uj1 . . . uji 1≤j1 < ···< ji ≤n

los cuales satisfacen las tres propiedades otese que la suma en la  de arriba. N´ f´ormula anterior se extiende sobre ni productos de i variables.

En el caso de que los Ci sean los polinomios de Bernstein   n i Bin (u) = u (1 − u)n−i i se obtiene: Bin [u1 . . . un ] =

X

j1 n .

k=0

La expresi´ on simple, dada por Zhou, para los dk , dk =

n X

bi βik ,

i=0

donde βik

     n m−n m = / i k−i k

se denomina distribuci´ on polihipergeom´ etrica en la teor´ıa de probabilidades. La construcci´ on de la representaci´on de grado m es como sigue: b(t)

=

n X i=0

=

bi Bin (t)(1 − t + t)m−n

n m−n X X

bi

i=0 j=0

=

n m X X

k=0

i=0

   n m − n i+j t (1 − t)m−i−j i j !

bi βik

Bkm (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

  i−1 n−1 n Y k−α Y m−k+i−α m−α i α=0 m − α α=i   n i n−i (k/m) (1 − k/m) + O(1/m) = i = Bin (k/m) + O(1/m) .

=

Sustituyendo en la ecuaci´on de los dk se obtiene m

max k dk − b(k/m)k = O(1/m) , k=0

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 pi (x) = p(x − ih) de una curva polin´ omica de grado exactamente n. Demuestre que la curva ∆k pi (x) tiene grado exactamente n − k. 2 Demuestre que el operador de Bernstein B[f ](u) =

n X

f (ih)Bin (t) ,

i=0

u = nh · t ,

tiene orden de aproximaci´ on 2, es decir, si f es dos veces diferenciable, entonces max kB[f ](u) − f (u)k = O(h2 ) . u∈[0,nh]

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

k∆ ci k ≤



h b−a

k

max

i=0,...,n−k

k∆k bi k ,

donde k·k denota el supremo, la norma de la suma o la norma Eucl´ıdea.

41

3.13. Ejercicios

4 Sea b una curva polin´ omica. Pruebe que la longitud de arco de su 1 2 atica, m , . . . , 1] converge cuadr´ pol´ıgono de B´ezier compuesto sobre [0, m R1 ˙ mente en 1/m a la longitud de arco 0 kb(t)k2 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 representaciones 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 subespacio 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´ omica Pm on de B´ezier de grado m de una curva polin´ de grado n, b(t) = i=0 bi Bim (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: n X bi βik . dk = i=0

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 frecuencia 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 independiente sobre los valores u1 , . . . , un si la matriz   C1 (u1 ) · · · Cn (u1 )   .. .. C=  . . C1 (un ) · · ·

Cn (un )

es no-singular. En tal caso, para cualesquiera n puntos p1 , . . . , pn ∈ IRd existe una u ´nica curva p(u) =

n X

xi Ci (u)

i=1

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   t   t  C1 (u1 ) . . . Cn (u1 ) x1 p1    ..   ..  .. ..   .  =  .  . . xtn

C1 (un ) . . . Cn (un )

ptn

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

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 u ´nico 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 u ´nica curva polin´ omica p de grado n que interpola dichos puntos. Dicha curva puede escribirse como p(u) =

n X

pi Lni (u) ,

i=0

donde los polinomios de Lagrange Lni (u) se definen como  1 k=i Lni (uk ) = seg´ un . 0 k 6= i

45

4.2. Interpolaci´ on de Lagrange

Figura 4.2: Polinomio de Lagrange de grado 3. La Figura 4.2 muestra un ejemplo. Claramente, se tiene Lni

Qn

j=0, j6=i (u − uj ) . = Qn j=0, j6=i (ui − uj )

Existen diferentes maneras para evaluar los polinomios de Lagrange. Una posibilidad consiste en usar la siguiente relaci´on de recurrencia: primero observe que los polinomios de Lagrange suman uno, n X i=0

Lni (u) ≡ 1 .

Entonces por definici´ on ( si i = 0, . . . , k − 1 Lik−1 αik Pk−1 k Pk−1 k−1 (1) Lki = (1 − αjk ) si i = k , 1 − j=0 Lj = j=0 Lj

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 recurrencia se obtiene un m´etodo iterativo para evaluar p(u) a partir de los puntos p0i = pi tomando combinaciones afines. p(u)

=

n X

p0i Lni (u)

i=0

=

n−1 X

p1i Lin−1 (u)

i=0

.. . =

0 X i=0

pni L0i (u) = pn0 ,

46

4. Interpolaci´ on y aproximaci´ on

donde

pk+1 = pki αi,n−k + pkn−k (1 − αi,n−k ) . i

Esta forma de calcular p(u) se denomina el algoritmo de Aitken. N´ otese que los polinomios pki = pki (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 = L00

L10

L20

L11

L21 L22

Ln0

···

Ln1

···

Ln2 .. . Lnn .

··· .. .

Observaci´ on 4: Similarmente se puede organizar tambi´en el c´ alculo de los pki por medio de un esquema triangular an´ alogo p00 p01

p10

p02 .. .

p11

p20

p0n

p1n−1

p2n−2 · · ·

..

. pn0 .

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, u ´til 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 ) .

47

4.3. Interpolaci´ on de Newton

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 X 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 n X q(uk ) , [u0 . . . un ]q = (uk − u0 ) · · · (uk − uk )∗ · · · (uk − un ) k=0

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

= .. .

[ui uj ]q

=

[uj ]q

[u1 . . . un ]q − [u0 . . . un−1 ]q un − u0

[uj ]q − [ui ]q uj − ui = 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 divididas son sim´etricas con respecto a sus nodos u0 , . . . , un . Observaci´ on 5: Si q(u) es suficientemente diferenciable entonces la diferencia 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 X 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 q r (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 q(u0 ) . n! hn

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 X i=0

[u0 . . . ui ]q · Pi

interpola los puntos Pi y si las abscisas ui coinciden entonces tambi´en interpola 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 X

n q(i) a Hi +

k X

(i)

n qb Hn−i ,

i=0

i=0

(i)

donde qu denota la i-´esima derivada de q en u y los polinomios de Hermite Hin de grado n est´ an definidos por  dr n dr n 1 si i = r , r = 0, . . . , k . H (b) = H (a) = 0 si i 6= r dur n−i dur i

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 j   X j (b − a)i q(i) bj = i n · · · (n − i + 1) a i=0

y

bn−j =

j   X j i=0

i

(a − b)i (i) q , n · · · (n − i + 1) 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 +

b2

bn

b−a ′ qa n b−a b−a q′′ ) (2q′a + = qa + n−1 a n .. . = qb .

Observaci´ on 8: En vez de interpolar q′′a y q′′b se podr´ıa interpolar las curvaturas en a y b. La curvatura en el punto a est´ a dada por xa =

n − 1 k ∆b0 × ∆2 b0 k , k ∆b0 k3 n

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 u ´nico.

50

4.5

4. Interpolaci´ on y aproximaci´ on

Interpolaci´ on de Hermite c´ ubica por trozos

Una funci´on f (u) se puede aproximar por un polinomio p de grado n interpolando 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) (u − u0 ) · · · (u − un ) , (n + 1)!

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 u ´nica 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 X

b3i+j Bj3 (ti ) ,

j=0

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 b3i+1 b3i+2

= pi = pi + di ∆ui /3 = 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 ∆pi−1 , + αi ∆ui ∆ui−1

para i = 1, . . . , m − 1 ,

donde

∆ui−1 . ∆ui−1 + ∆ui En los puntos extremos estas estimaciones se ajustan a: αi =

d0 = 2

∆p0 − d1 , ∆u0

dm = 2

∆pm−1 − dm−1 . ∆um−1

A menudo tambi´en se tienen que determinar las abscisas ui de la interpolaci´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 = k∆pi k , y la parametrizaci´ on centr´ıpeta [Lee ’89], donde p ∆ui = k∆pi k .

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 n X xi Ci (u) p(u) = i=1

que interpole m´ as de m puntos p1 , . . . , pm , m > n, en valores prescritos de los par´ ametros u1 , . . . , um . En este u ´ltimo 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    t   C1 (u1 ) . . . Cn (u1 )  t  p1   x1     .   ..  ..  −   .   ..  =    .  .  .  .        xtn C1 (um ) . . . Cn (um ) ptm

o en forma m´ as abreviada

CX − P = R = [rij ] .

rt1



 ..   .  

rtm

53

4.7. Ajustes por m´ınimos cuadrados

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 X i=1

r2i =

X

2 rij = trazaRt R = trazaRRt .

i,j

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 X wi2 r2i = traza(W R)t (W R) ,

donde



 W =



w1 ..

.

es una matriz diagonal de pesos.

wm

 

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 kri k∞ = max krij k . 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 = x, y de



(2)

P

C t C Dt D O

ri2 es m´ınima para la soluci´ on

   t  C p x . = q y

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 C t Ch . El u ´ltimo sumando de la expresi´ on anterior es no negativo y el segundo t´ermino es cero, pues teniendo en cuenta (2) ht C t r = ht C t [Cx − p] = −ht Dt y = 0 . Por lo tanto rt r es m´ınima. ✸ Observaci´ on 11: Si no hay restricciones i.e., D = 0 y q = o entonces el sistema lineal (2) se reduce a las ecuaciones normales de Gauss C t Cx = C t 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 ,

55

4.8. Mejoras en el par´ametro

las cuales se obtienen por sustituci´ on de las ecuaciones de correlaci´on en la expresi´ on de las restricciones Dx = vq. Observaci´ on 13: Sea W una matriz diagonal de pesos de dimensi´on m × m. Entonces por el teorema anterior, el residual ponderado W r = W Cx − W p se hace m´ınimo cuando Dx = q para la soluci´on x, y de la ecuaci´ on ponderada



(3)

4.8

C t W 2 C Dt O D

   t 2  C W p x . = q y

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 p(u) una curva que aproxima los puntos pi en los valores ui de los par´ametros. Denotemos por vi los valores de los par´ ametros para los cuales p(u) est´ a mas cerca de los pi . 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 pi 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 ) + ∆i p1 (ui ) − pi ]t p′ (ui ) = 0 , entonces se obtiene ∆i = [pi − p(ui )]t

p′ (ui ) . kp′ (ui )k22

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 ≈ −

[p(ui ) − pi ]t p′ (ui ) f (0) . = − p′ (ui ) · p′ (ui ) + [p(ui ) − pi ]t p′′ (ui ) f ′ (0)

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 calcule 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] Z q(n) (u0 +(u1 −u0 )x1 +· · ·+(un −un−1 )xn )dx . [u0 . . . un ]q = 0≤xn ≤···≤x1 ≤1

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, H05 , . . . , H55 . Encuentre sus puntos de B´ezier. 4 Para cualesquiera tres puntos b0 , b1 , c calcule el punto b2 sobre la recta b1 c tal que los puntos de B´ezier b0 , b1 , b2 definan una curva cuadr´atica ¨ ˙ 3 en b0 . b(t) con curvatura prescrita κ0 = kb˙ × bk/k bk 5 Calcule y dibuje el polinomio que interpola la funci´ on error de Gauss exp(−t2 /2)

en

t = −7, −5, −3, . . . , 7 .

57

4.9. Ejercicios

6 Calcule y dibuje una c´ ubica por trozos C 1 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 krk∞ = max |ri | es m´ınimo para la soluci´on x, ρ del problema (de programaci´on lineal) Cx − p − eρ −Cx + p − eρ

≤ 0 ≤ 0

ρ =

min!

donde e = [1 . . . 1]t , v´ease por ejemplo, [Boehm & Prautzsch ’93, 10.4].

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 representaci´ 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 diferencias 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 C 0 , 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 C 1 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 describen 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 aproximada los splines matem´aticos C 2 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 C 2 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 multiplicidad 1 r y s(u) es un polinomio de grado ≤ n sobre cada intervalo internodal [ai , ai+1 ], para i = 0, . . . , m − 1. 1 Un

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 orden n + 1. Las Figuras 5.1 y 5.2 muestran ejemplos de splines sobre secuencias 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: X s(u) = ci Nin (u)

donde los Nin (u) son funciones polin´omicas por trozos con soporte finito (se anulan fuera de un intervalo finito) y satisfacen ciertas condiciones de

61

5.2. B-splines

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 C 2 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 N03 (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, consideramos por simplicidad una secuencia (ai ) doblemente infinita de nodos simples tales que ai < ai+1 para todo i. Entonces los B-splines Nin se definen a trav´es de la siguiente relaci´ on de recurrecncia  1 si u ∈ [ai , ai+1 ) Ni0 (u) = 0 en caso contrario n−1 n−1 Nin (u) = αin−1 Nin−1 (u) + (1 − αi+1 )Ni+1 (u),

donde

αin−1 = (u − ai )/(ai+n − ai )

es el par´ametro local con respecto al soporte de Nin−1 . 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 Nir−1 ≡ Nir−1 /(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

63

5.4. El algoritmo de de Boor

Figura 5.5: B-splines con nodos m´ultiples. omica a trozos y tiene grado n, • Nin (u) es polin´ • Nin (u) es positiva sobre (ai , ai+n+1 ), • Nin (u) = 0 fuera de [ai , ai+n+1 ], • Nin (u) es continua por la derecha. En las secciones 5.5 y 5.6 veremos que los B-splines son n − r veces continuamente 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 Nin . Esta expresi´ on es u ´nica. 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, intersecciones) 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 N0n , . . . , Nnn coincide con la recursi´ on para los polinomios de Bernstein. Por lo tanto Nin (u) = Bin (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) =

X i

c0i Nin (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 Nin esta suma es siempre finita para cualquier u dado. Supongamos que u ∈ [an , an+1 ), entonces n X c0i Nin (u) . s(u) = i=0

Usando repetidamente la relaci´ on de recurrecncia para B-splines y agrupando t´erminos obtenemos: s(u)

=

n X

c1i Nin−1 (u)

i=1

.. . =

n X

cni Ni0 (u) = cnn ,

i=n

donde los

cri

est´ an dados por las combinaciones afines

r−1 cri = (1 − α)ci−1 + α cir−1 ,

α = αin−r =

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 cri se pueden ordenar en el siguiente esquema triangular, donde la regla de recursi´ on es la anterior recursi´ on af´ın. c00 c01 c02

.. . c0n

c11 c12 c1n

c22

..

. 2 cn · · · cnn

regla ∗ 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 combinaci´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

65

5.5. El teorema fundamental implica que

n X i=0

1 · Nin (u) = 1

para u ∈ [an , an+1 ) ,

los B-splines forman una partici´ on de la unidad. La Figura 5.6 ilustra la interpretaci´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 puntos c00 , . . . , c0n 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 X s(u) = ci Nin (u) i

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 i = j − n, . . . , j .

ci = sj [ai+1 . . . ai+n ] , Para la demostraci´on considere

pri = 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 r−1 + α pir−1 , pri = (1 − α)pi−1

α = αin−r =

u − ai , ai+n−r+1 − ai

y en particular p0i = sj [ai+1 . . . ai+n ]

y pnj = 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 ) n como una combinaci´on lineal de B-splines Nj−n (u), . . . , Njn (u). Contando dimensiones se verifica que la expresi´on es u ´nica, lo que prueba la aseveraci´on. ✸

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 N0n (u), . . . , n Nn (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 ] .

67

5.6. Derivadas y suavidad

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 X i=1

di Nin−1 (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 Nin−1 (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 (ci − ci−1 ) . = ai+n − ai

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 X n ∇ci Nin−1 (u) , (1) s′ (u) = a − a i+n i i

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 u ´til 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. n con • Contando dimensiones se verifica que los B-splines N0n , . . . , Nm 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. n con nodos a0 , . . . , am+n+1 • An´ alogamente, los B-splines N0n , . . . , Nm 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 X

Nin (u) = 1,

i=0

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. n sobre • Los nodos extremos a0 y am+n+1 no influyen sobre N0n y Nm el intervalo [an , am+1 ].

• Los B-splines son positivos en el interior de su soporte Nin (u) > 0

para u ∈ (ai , ai+n+1 ) .

69

5.8. Conversi´on a la representaci´on B-spline • Los B-splines tienen soporte compacto suppNin = [ai , ai+n+1 ] .

• Los B-splines satisfacen la recursi´ on de de Boor, Mansfield y Cox donde αin−1 = (u − ai )/(ai+n − ai ) representa el par´ametro local sobre el soporte de Nin−1 . • La derivada de un B-spline est´ a dada por

n n d n N n−1 (u) . N n−1 (u) − N (u) = ai+n+1 − ai+1 i+1 ai+n − ai i du i

• 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 X

i=j−n

ci Nin (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 importante por ser pr´acticamente el u ´nico 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 Anj (u) = nj uj tienen forma polar X

Anj [u1 . . . un ] =

ui . j. . uk .

i< ... u f (a) = (a − u)n+ := . 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 N0n sobre los nodos a0 , . . . , an+1 se puede escribir N0n (u) = (an+1 − a0 )[a0 . . . an+1 ](a − u)n+ . Este hecho se puede probar por inducci´on sobre n. Para n = 0 la identidad 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 diferencia 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.

75

5.12. Ejercicios

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 (an+1 − a0 )[a0 . . . an+1 ](a − u)n+ du n−1 = −n(an+1 − a0 )[a0 . . . an+1 ](a − u)+

n−1 n−1 ) − [a1 . . . an+1 ](a − u)+ = n([a0 . . . an ](a − u)+ n n N n−1 N n−1 − = an+1 − a1 1 an − a0 0 d n N (u) , = du 0

lo cual prueba nuestra aseveraci´ on. ✸

5.12

Ejercicios

1 Considere un spline s(u) c´ ubico C 2 sobre la secuencia de nodos simples a0 , . . . , am . Muestre que cualquier funci´on C 2 f (u) 6= 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, Z am Z am ′′ 2 |f (u)| du > |s′′ (u)|2 du . a0

a0

Para la soluci´ on puede consultar cualquier libro de an´alisis num´erico, por ejemplo [Boehm & Prautzsch ’93, p. 125f]. Pm n 2 Dado un spline s(u) = i=0 ci Ni (u) sobre la secuencia de nodos a0 , . . . , am+n+1 , muestre que Z am+n+1 m X ai+n+1 − ai ci . s(u)du = n+1 a0 i=0

3 Bosqueje los B-splines c´ ubicos sobre las siguientes secuencias de nodos: 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 X (ai+1 − a) . . . (ai+n − a)Nin (u) . (u − a)n = i

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 X

([ai . . . ar ]g)([ar . . . ai+k ]h) ,

r=i

para obtener la recursi´ on de de Boor, Mansfield y Cox. V´ease tambi´en [de Boor ’72]. P3 7 Sea s(u) = i=0 ci Ni3 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) =

X

ci Nin (u)

a ˆ3

a ˆ4

i

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.

refinada

a ˆ1 = a ˆ2

a ˆ5

a ˆ6 ............ ..........

inicial

a1

a2

a3

a4

Figura 6.1: Refinamiento de una secuencia de nodos. ˆj (u) el B-spline de grado n sobre a Sea N ˆj , . . . , a ˆj+n+1 , entonces s(u) se puede rescribir como s(u) =

X j

ˆjn (u) . ˆ cj N

78

6. T´ecnicas de B-splines

ˆj es a trav´es de la inserci´on repetida La mejor manera de calcular los c 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 ˆ=a ˆn+1 y an ≤ a ˆ < an+1 . Como consecuencia inmediata del teorema   cj cj−1 · (1 − αj ) + cj · αj ˆ cj =  cj−1

donde

αj =

fundamental de 5.5 se tiene para j ≤ 0 para j = 1, 2, . . . , n para j ≥ n + 1

,

a ˆ − aj aj+n − aj

ˆ n . La es la coordenada local de a ˆ con respecto al soporte [aj , aj+n ] de N j 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 c11 , . . . , c1n que aparecen en la segunda columna del arreglo triangular de de Boor [Boehm ’80]. Es m´ as, los puntos c11 , . . . , crr , . . . , crn , . . . , c1n del esquema de de Boor coinciden con los nuevos puntos de control de s cuando a ˆ es insertado r veces.

79

6.2. El algoritmo de Oslo

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 X ˆjn (u) Nin (u) = αij N j

fue dada por de Boor [de Boor ’76b]. Los coeficientes αij se denominan Bsplines discretos con nodos a ˆj . Esta denominaci´on fue acu˜ nada por Schumaker [Schumaker ’73] para el caso en que los aˆj son nodos equidistantes. Observaci´ on 3: En particular, si s(u) = Njn (u) es un B-spline, entonces el proceso anterior de inserci´on de nodos implica la siguiente identidad  ˆ n (u)  para j ≤ 0  N j n n n ˆ ˆ Nj (u) = αj Nj (u) + (1 − αj+1 )Nj+1 (u) para j = 1, . . . , n .   N ˆn para j ≥n+1 j+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ˆ n sea no vac´ıa, tal como se ilustra en secci´ on con el soporte [ˆ aj , a ˆj+n+1 ] de N j la Figura 6.3. Entonces cada punto de control ˆj = sk [ˆ c aj+1 . . . a ˆj+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´ onPgeneralizamos las ideas presentadas en 3.3. Considere el n spline s(u) = i ci Ni (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 ks(γi ) − ci k = 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

∂ ∂ sr [u . . . u] sr [u . . . u] = · · · = ∂un ∂u1

la expansi´ on de Taylor de sr alrededor de [γi . . . γi ] tiene la forma ci

= sr [γi . . . γi ] +

i+n X

(aj − γi )

j=i+1

2

= s(γi ) + O(h ) ,

lo cual prueba la aseveraci´on. ✸

∂ sr [γi . . . γi ] + O(h2 ) ∂u1

6.4. Un algoritmo para la elevaci´on de grado

6.4

81

Un algoritmo para la elevaci´ on de grado

Todo spline de grado n s(u) =

X

ci Nin (u)

i

sobre una secuencia de nodos (ai ) tambi´en puede rescribirse en t´erminos de B-splines Nin+1 de grado n + 1, X ˆ n+1 (u) s(u) = di N i i

sobre la secuencia de nodos (ˆ ai ) obtenida a partir de (ai ) elevando la multiplicidad 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 . . . a ˆj+n+1 ] =

n+1 1 X sr [ˆ aj+1 . . . a ˆ∗k . . . a ˆj+n+1 ] n+1 k=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 . . . a ˆj+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 cˆi . 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.5

6. T´ecnicas de B-splines

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 N n (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)

N n (u|a0 . . . an+1 ) =

n+1 1 X n+1 N (u|a0 . . . ai ai . . . an+1 ) , n + 1 i=0

la cual fue descubierta por C. A. Micchelli [Micchelli ’79]. La Figura 6.5 ilustra el ejemplo para n = 1 N 1 (u|abc) =

1 2 (N (u|aabc) + N 2 (u|abbc) + N 2 (u|abcc)) . 3

Figura 6.5: F´ormula de elevaci´on de grado. Para la demostraci´on empleamos la t´ecnica de [Lee ’94] y utilizamos diferencias 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 X

[a0 . . . ai ai . . . an+1 ]f .

i=0

Esta f´ormula es v´alida para cualquier funci´ on diferenciable f , lo cual verificamos 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

83

6.6. Convergencia por elevaci´on de grado 4.3), la hip´ otesis de inducci´on y luego otra vez esta relaci´ on:

[a0 . . . an+1 ]f ′ 1 ([a1 . . . an+1 ]f ′ − [a0 . . . an ]f ′ ) = an+1 − a0 n X 1 ([a1 . . . ai ai . . . an+1 ]f − [a0 . . . ai ai . . . an ]f ) = an+1 − a0 i=1 + [a1 . . . an+1 an+1 ]f − [a0 ... an+1 ]f

+ [a0

=

an+1 ]f − [a0 a0

...

n+1 X

[a0 . . . ai ai . . . an+1 ]f .

...

an ]f





i=0

6.6

Convergencia por elevaci´ on de grado

Una repetida elevaci´ on de grado genera una secuencia de pol´ıgonos de control que converge al spline. Considere un spline s(u) de grado n, cuya representaci´on de grado m X s(u) = ci Nim (u) , m > n , sobre la secuencia de los nodos ai ha sido generada por elevaci´ on de grado. Los soportes de los Nim tienen longitud no mayor que h := sup |ai+n+1 − ai |. 1 (ai+1 + · · · + ai+m ) las abscisas de Greville, entonces si h y Sean γi := m todas las derivadas de s son acotadas, se tiene

sup kci − s(γi )k = O(1/m) . Demostraci´ on: Procedemos como en 6.3 y consideramos un punto de control, 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,

∂ui1

εi ∂k s(k) (γ0 ) , s[γ0 . . . γ0 ] = m . . . (m − k + 1) . . . ∂uik

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

m n X X

k=1 i1 =1

...

m X εi (ai1 − γ0 ) . . . (aik − γ0 ) (k) s (γ0 ) . m . . . (m − k + 1) k! i =1 k

84

6. T´ecnicas de B-splines

Utilizando el hecho que εi =P 0 para mkP −(m . . . (m−k+1)) ´ındices i distintos m m y teniendo en cuenta que i1 =1 . . . ik =1 (ai1 − γ0 ) . . . (aik − γ0 ) = 0 se obtiene kc0 − s(γ0 )k ≤

n X hk mk − (m . . . (m − k + 1)) sup ksk (u)k , m . . . (m − k + 1) k!

k=2

lo que finaliza la demostraci´on. ✸

6.7

Interpolaci´ on

Los splines se utilizan frecuentemente para resolver problemas de interpolaci´on. En particular es de inter´es la unicidad del interpolante. Sean N0n , . . . , n Nm 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 . Pm Si deseamos hallar un spline s = i=0 ci Nin tal que s(uj ) =

m X

ci Nin (uj ) = pj ,

i=0

tenemos que resolver el siguiente sistema lineal      n pt0 ct0 (u0 ) N0n (u0 ) · · · Nm      .. ..   ..  =  ..    (2) . .  .   .  ,  n (um ) N0n (um ) · · · Nm

ctm

ptm

que abreviamos: N C = P . N´otese que este sistema lineal consiste de varios 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 u ´nica [Schoenberg & Whitney ’53] La matriz N es invertible si y s´ olo si tiene diagonal positiva, i.e. Nin (ui ) 6= 0 para todo i. Note que si las Nin son continuas entonces la condici´ on Nin (ui ) 6= 0 es equivalente a que ui ∈ (ai , ai+n+1 ).

Para probar el teorema, nos basamos en [Powell ’81]. Sea Nin (ui ) = 0 para alg´ un i y supongamos que ai+n+1 ≤ ui . Entonces N0n (uj ) = . . . = Nin (uj ) = 0 para todo j ≥ i ,

85

6.7. Interpolaci´ on i



N =

❅ ❅

❅ ❅ ❅ ··· 0

0

i

.

❅ .. ❅ . ❅

.. . ···

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 consecutivas de c consiste de ceros. Entonces la propiedad de variaci´ on decreciente (vea el Ejercicio 4), implica que el spline m X

ci Nin

i=0

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 Nin . Si cr = · · · = cr+n = 0 , entonces se pueden considerar los splines r−1 X

ci Nin

y

m X

ci Nin

i=r+n+1

i=0

los cuales son cero en u0 , . . . , ur−1 y en ur+n+1 , . . . , um , respectivamente. Observaci´ on 6: Una soluci´ on del anterior sistema N C = 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 N e = e,

donde

e = [1 . . . 1]t .

La condici´on N e = 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 N03 (u) con su pol´ıgono de control se muestra en la Figura 6.7.

Figura 6.7: El B-spline c´ubico N03 (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      4 1 ct0 pt0   ct1   pt1   1 4 1         · ·  ·      1    · ·  ·   =  . 6      · · ·   t   t       1 4 1 cm−1 pm−1  1 4 ctm ptm

Note sin embargo que los elementos de la primera y u ´ltima 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:

1 1 ui = 3, (3 + ), 4, 5, . . . , m, (m + ), (m + 1) . 2 2

87

6.8. Interpolaci´ on con splines c´ ubicos El sistema lineal  1 4  a b   1   1  6     

(2) en este caso est´ a dado por:  1 ct0   ct1 b a    ct2 4 1   · ·   · ·   ·  t ·   cm−2 1 4 1  a b b a   ctm−1 1 4 1 ctm





pt0 pt1 pt2 · · ·

            =       t   pm−2   t   pm−1 ptm

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      at ct0 −3 0 3   ct1   pt1   1 4 1           · · ·       1    · = ·  ·    .    6    · ·  ·       1 4 1   ctm−1   ptm−1  −3 0 3 bt ctm

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) = P 3 c N (u) = s(u + m). Entonces c = c y se tiene un sistema lineal i+m i i i i

88 c´ıclico

6. T´ecnicas de B-splines



4 1  1 4   1  6    1

1

1 ·

·



ct1

   ·   ·   · ·  1 4 1  ctm 1 4

La Figura 6.9 presenta un ejemplo.





        =        

pt1



  ·   ·   . ·   

ptm

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. P3 2 Considere un spline c´ ubico plano s(u) = i=0 ci Ni3 (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 decreciente, introducida en 3.8. 4 Demuestre a partir de propiedad de variaci´ on decreciente que una Pla m funci´on spline s(u) = i=0 ci Nin 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].

89

6.9. Ejercicios

5 Considere las representaciones P de B´ezier de grado y de grado m de Pn n m n m una curva polin´ omica b(u) = b B (u) = i i i=0 i=0 ci Bi (u), donde n n n n n < m. Sean N0 , . . . , Nn y M0 , . . . , Mm 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 X i=0

bi Nin =

m X

ci Min ,

i=0

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 polinomios 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 )[u1 u2 u3 . . . un ]f (u2 − u0 )[u0 u2 u3 . . . un ]f (u0 − u1 )[u0 u1 u3 . . . un ]f = 0

para diferencias divididas para obtener las f´ormulas de eliminaci´on y de inserci´on de nodos [Boehm ’80].

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 on de nodos — 7.12 Bases de matrices de conexi´ on arbitrarias — 7.11 Inserci´ splines — 7.13 Ejercicios

Hay varias maneras de definir continuidad geom´etrica. La condici´on de C r 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 GC r de orden r. r Una curva es GC 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 C r es un concepto cl´ asico que permite un esquema sencillo (este es el caso de los B-spline) para construir curvas C r . 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 C r depende de la parametrizaci´on. Lo anterior justifica la introducci´ on del contacto GC r el cual es independiente de la parametrizaci´on y es u ´til 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 F 3 en la base de Frenet.

92

7.1

7. Curvas suaves

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) ˙ 6= 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 C r y se denota por GC r . 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 p′ s˙ p′ s¨ p′ s˙¨

+ p′′ s˙ 2 + 3p′′ s¨ ˙ s + p′′′ s˙ 3 .. .

Usando notaci´on matricial  1 0   α     ′ (r)  [p p . . . p ]      

0

0

···

β

γ

···

α2

= q = q˙ = q ¨ = ˙¨ q . .. .

0

3αβ · · · α3

..

. αr

o en forma abreviada



       = [q q˙ . . . q(r) ]      

PC = Q , donde α = s˙ 6= 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 u ´ltimos 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 e = [q0 . . . qr ] , [pn . . . pn−r ]C

7.1. Contacto de orden r

93

e es una matriz triangular superior con elementos en la diagonal cf donde C ii = e depende de n. (−α)i 6= 0, i = 0, . . . , r. N´ otese que C

Observaci´ on 1: Dada una reparametrizaci´ on s(t) siempre existe una reparametrizaci´ on polin´ omica, equivalente hasta la derivada r-´esima: (r)

s(t) = st +

s s¨ 2 t + · · · + tr . r! 2!

En particular, cualquier conexi´ on GC 1 se puede trasformar en una conexi´ on 1 C usando el cambio de par´ametro s = αt. Observaci´ on 2: Similarmente, una conexi´ on GC 2 puede trasformarse en 2 una conexi´ on C simple por medio de la trasformaci´on cuadr´atica s = αt + (β/2)t2 . N´otese que la conexi´ on C 2 simple tambi´en se puede obtener aplicando una trasformaci´on proyectiva, vea por ejemplo [Degen ’88]. s=

α2 t . α − (β/2)t (r)

Observaci´ on 3: Si s = t, entonces s¨ = · · · = 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 C 3 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 GC 2 en pn = q0 si las distancias g y h de pn−2 y q2 a la tangente q0 q1 satisfacen g : h = 1 : α2 , vea [Farin ’82, Boehm ’85]. Observaci´ on 5: Para contactos de orden superior se tiene una situaci´ on (n)

similar: si modificamos s entonces qn se mueve a lo largo de una paralela a la tangente q0 q1 .

94

7. Curvas suaves

Figura 7.2: Contacto GC 2 de Farin.

7.2

Parametrizaci´ on por longitud de arco

Sea x(t) una parametrizaci´on diferenciable de la curva x. Entonces Z t s(t) = kxkdt ˙ 0

es la longitud de arco del segmento x[0, t] y kx′ k = 1 ,

d x(t(s)) denota la derivada de x con respecto a la longitud de donde x′ = ds arco y t(s) es la inversa de s(t).

Adem´ as, si x(t) es regular, es decir, x˙ 6= 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˙ = kxk. ˙ 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  p(s) si s ≤ 0 x(s) = 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 GC 2 . Denotamos por b3i , . . . , b3i+3 a los puntos de B´ezier del segmento i-

95

7.3. Gamma splines ´esimo, es decir,

s(u) =

3 X

b3i+j Bj3 (t) ,

j=0

i = 0, . . . , m − 1 ,

donde u = ai (1 − t) + ai+1 t 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 diferenciable, 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 GC 2 , 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 GC 2 con γ finito se denomina un γ-spline. Por lo tanto, un γ-spline est´ a definido por puntos de control ci , n´ umeros γi 6= 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 (∆20 −∆21 ) : ∆21 . 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 GC 2 tiene curvatura continua. Observaci´ on 8: Un γ-spline con todos los γ´s iguales a 1 es un spline c´ ubico C 2 , 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 X s(u) = ci Mi (u) , i

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.

97

7.5. Nu-splines

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 GC 2 , entonces de acuerdo con 7.1, existen constantes νi tales que (1)

s′′ (ai +) = s′′ (ai −) + νi s′ (ai −) .

En particular para cualquier j tenemos Mj′′ (ai +) = Mj′′ (ai −) + νi Mj′ (ai −) . Usando la representaci´on de B´ezier de los Mi es f´acil calcular los νi [Boehm ’85]:    1 1 1 −1 . + νi = 2 γi ∆ai ∆ai−1

Los splines c´ ubicos GC 2 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.6

7. Curvas suaves

El marco de Frenet

Una definici´on de continuidad menos restrictiva que el contacto GC r , 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 fit 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   0 −κ1 κ1 0 −κ2      κ 0 2   [f1′ . . . fd′ ] = [f1 . . . fd ]   , . ..      −κd−1 κd−1 0 donde los κi est´ an dados por,

κ1 κ1 κ2 κ1 κ2 κ3

=

f2t x′′

= f3t x′′′ = f4t x′′′′ etc.

99

7.7. Continuidad de Frenet

Vea por ejemplo [Carmo ’76]. Los κi son diferentes de cero y tambi´en se pueden calcular utilizando las siguientes f´ormulas κ1 2 κ1 κ2 κ31 κ22 κ3

= =

vol2 [x′ x′′ ] vol3 [x′ x′′ x′′′ ]

= 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. (r)

(r)

Sean x′− , . . . , x− y x′+ , . . . , x+ 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 continua de orden r en s = s0 si y s´ olo si (2)

(r)

(r)

[x′− . . . x− ]C = [x′+ . . . x+ ] ,

donde C es una matriz de conexi´ on triangular superior cuya diagonal 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 (r)

[x′− . . . x− ] = [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)

−1 [f1 . . . fr ]− U− CU+ = [f1 . . . fr ]+ ,

100

7. Curvas suaves

−1 es triangular superior con diagonal donde U− CU+ + + − − + 1, (κ− 1 /κ1 ), . . . , (κ1 . . . κr−1 /κ1 . . . κr−1 ).

Como los vectores de Frenet son ortogonales entonces (3) se satisface si y s´olo −1 si U− CU+ 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. ✸ De acuerdo a 7.1, los r-jets de una curva con respecto a dos parametrizaciones distintas est´ an relacionados por una matriz cuya diagonal es de la forma α0 , α1 , . . . , αr , con α 6= 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 (r) ¯ (r) [x˙ − . . . x− ]C = [x˙ + . . . x+ ] , donde C es una matriz triangular superior cuya diagonal es de la forma α, α2 , . . . , αr con α 6= 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 α 6= 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 C r -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 1 (a − u)p′ (u) n 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. pa (u) = p(u) +

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 n pa...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 Pur , 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 pa(r) (a) =

n − r (r) p (a) . n

Note que p y su primer osculante tienen el mismo r-´esimo subespacio osculador en u = a para r = 0, . . . , n − 1.

7.9

Interpretaci´ on geom´ etrica del teorema fundamental

P Sea s(u) = ci Nin 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 ] = sjai+1 ... ai+n

7.9. Interpretaci´ on geom´etrica del teorema fundamental

103

para j = i, . . . , i + n. Sea Sjk el k-´esimo plano osculador en s en aj . Como el primer osculante sjaj genera el subespacio Sjn−1 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 n−1 n−1 Si+1 , . . . , Si+n . Es m´ as n−1 n−1 cualesquiera n subespacios osculadores consecutivos Si+1 , . . . , Si+n se intersecan precisamente en el punto de control ci , si todos los Sjn generados por los segmentos sj son n-dimensionales

De hecho, cualesquiera n+1 puntos de control consecutivos cj−n , . . . , cj generan Sjn . Por lo tanto son independientes lo cual implica que las intersecciones n−1 n−1 Si+1 ∩ . . . ∩ Si+k est´ an generadas por ci−n+k , . . . , ci . n−1 tienen En particular observe que, los n+1 planos osculadores Sin−1 , . . . , Si+n 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 intersecci´ on Sjn−1 ∩ . k. . ∩Sjn−1 como el (n − k)-´esimo subespacio osculador de n−k Sj . Observaci´ on 17: Sea p(u) una curva polin´omica n-dimensional (es decir, que no yace en ning´ un subespacio propio) y Puk su k-´esimo subspacio osculador en u. Como p(u) es un spline sobre cualquier secuencia de nodos con segmentos n-dimensionales, entonces para cualquier m ≤ n + 1 los subespalos cuales podr´ıan coincidir, se intersecan en , . . . , Pan−1 cios osculantes Pan−1 m 1 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 osposiblemente coincidentes, cuya intersecci´on con, . . . , Pan−1 culadores Pan−1 m 1 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 Pun−r 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 Tchebycheff. 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 b1 b2 b3

= = = =

p000 p001 p011 p111

= = = =

P00 , P01 ∩ P12 , P02 ∩ P11 P10 .

y

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

105

7.11. Inserci´ on de nodos

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, entonces 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  para i≤j  ai a ˆ para i=j+1 , a ˆi =  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 cˆi = s[ˆ ai+1 . . . a ˆi+n ] a partir de los controles iniciales ci = s[ai+1 . . . ai+n ]. De hecho, de 7.10 resulta:  para i≤j−n  ci ci−1 (1 − αi ) + ci αi para i = j − n + 1, . . . , j , cˆi =  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 u ´nica 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

7.12

y

am+1 = · · · = am+n+1 .

Bases de splines

Hasta ahora hemos supuesto que la curva s(u) tiene derivadas independientes 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 (1)

(n−1)

[s− . . . s−

(1)

(n−1)

]Ci = [s+ . . . s+

] .

Para fijar ideas suponderemoas que s yace en 3D. Dada la secuencia de nodos a0 , . . . , am y la secuencia de matrices no singulares 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 segmentos 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 control 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) 6= 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 a ˆ0 = a0 , . . . , a ˆi = ai , a ˆi+1 , a ˆi+2 = ai+1 ,...,a ˆm+3 = am+2 con par´ametros γˆ1 , . . . , γˆm+2 (ˆ ν1 , . . . , νˆm+2 ). Exprese 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 Sj2 . 12 Sea p(u) una curva de grado n que genera IRn y sea Puk su k-´esimo subespacio osculador en u. Demuestre que cualquier intersecci´ on Pan−i ∩ n−j n−i+j , cuando b tiende a a. Pb converge a Pa

on 13 Considere el espacio de splines c´ ubicos sobre   Z con matrices de conexi´ Ci = −10 01 para i = 1, . . . , m y Ci = 10 01 para todos los dem´ as nodos. 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 uniformemente 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 espaciados. 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  1 para 0 ≤ u < 1 N 0 (u) = 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 N n (u) de grado n sobre los nodos 0, 1, 2, . . . , n + 1 se obtiene por la recursi´ on Z u (N j−1 (v) − N j−1 (v − 1))dv , j = 1, . . . , n , N j (u) = 0

que se puede rescribir

N j (u) =

Z

0

1

N j−1 (u − t)dt

110

8. Subdivisi´ on uniforme

o tambi´en N j (u)

Z

N j−1 (u − t)N 0 (t)dt IR = N j−1 ∗ N 0 =

la cual se denomina convoluci´ on de N j−1 con N 0 . La Figura 8.1 ilustra esta construcci´ on recursiva. En lo que sigue consideramos los trasladados N n (u − i) y los denotamos como en los Cap´ıtulos 5 y 6: Nin (u) = N n (u − i) .

Figura 8.1: Construcci´on del B-spline uniforme N 2 (u).

8.2

Subdivisi´ on uniforme

La combinaci´ on af´ın de puntos ci ponderados X sn (u) = ci Nin (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 12 Z.

Para esta representaci´ on introducimos los B-splines escalados M n (u) = N n (2u) y sus trasladados Min (u) = M n (u − i/2) = N n (2u − i), vea la Figura 8.2. La construcci´on de la representaci´ on sobre la secuencia refinada X sn (u) = bni Min (u)

111

8.2. Subdivisi´ on uniforme

Figura 8.2: Escalamiento de un B-spline uniforme. no es dif´ıcil. Para n = 0 se tiene X sn (u) = ci Ni0 (u) X 0 0 = ci (M2i (u) + M2i+1 (u)) y por lo tanto b02i

= b02i+1 = ci .

Para n = j + 1 > 0 la recursi´ on para los B-splines uniformes implica lo siguiente: X sn (u) = ci Nij+1 (u) Z X ci Nij (u − t)N 0 (t)dt = I R Z X bji Mij (u − t)[M00 (t) + M10 (t)]dt = IR 1 X j j+1 j+1 bi [Mi (u) + Mi+1 (u)] = 2 X1 j (b + bji )Mij+1 (u) = 2 i−1

y por lo tanto

bj+1 = i

1 j (b + bji ) . 2 i−1

Este c´alculo recursivo de los bni 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 corresponden 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 algoritmo de Chaikin aunque fue estudiado anteriormente por de Rham [Rham ’47]. Observaci´ on 2: Se tiene Z sn+1 (u) =

u

u−1

8.3

sn (t)dt = sn ∗ N 0 = s0 ∗ N n .

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 bn0 bn1

...

]

113

8.3. Subdivisi´ on iterada

las matrices formadas por los puntos de control de un spline uniforme sn de grado n sobre Z y 12 Z, respectivamente. Entonces el procedimiento de Lane-Riesenfeld dado en 8.2, puede rescribirse

B0 = CD

y Bj+1 = Bj M ,

donde D y M son las matrices bi-infinitas  · ·  1 1 D=  1

y



·   · 1  1 M = 1/2   

j = 0, . . . , n − 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 consecutivos de puntos de control. Entonces la matriz Sn = DM n , representa el operador de subdivisi´on para los splines uniformes de grado n. El proceso de subdivisi´on se puede repetir. Aplicando Sn = DM n dos veces, se obtiene el pol´ıgono de control del spline sn sobre 14 Z. Esto significa

sn (u)

= = =

donde

X

X

X

ci Nin (u) bni Nin (2u) ani Nin (4u) ,

[ . . . a−1 a0 a1 . . . ] = CSn Sn . Observaci´ on 3: En 6.3 se demostr´o que la secuencia de los pol´ıgonos de control Ck = CSnk del spline sn sobre 2−n Z converge a sn cuando k tiende a infinito.

114

8.4

8. Subdivisi´ on uniforme

La matriz de subdivisi´ on

La matriz de subdivisi´ on S1 = DM˙ para los splines obtiene directamente de la Figura 8.3  · · · 1 1 2 1 S1 =   1 2 1 2 · · ·

lineales por trozos se



  . 

Similarmente la matriz de subdivisi´on S2 para splines cuadr´ aticos por trozos (algoritmo de Chaikin) resulta   · · · ·  1 1 3 3 1  S2 =    1 3 3 1 4 · · · ·

y en general la matriz Sn es de la forma  ...  a0 a1 . . . an+1 Sn =   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 X X bn2i = cj a2i−2j y bn2i+1 = cj a2i+1−2j , j

j

las cuales se pueden combinar en una sola expresi´on. X bni = cj ai−2j . j

8.5

Derivadas

P La derivada de un spline s(u) = ci Nin (u) sobre Z tiene una forma particularmente simple. Especializando la identidad (1) de 5.6 obtenemos X s′ (u) = ∇ci Nin−1 (u) ,

115

8.6. Subdivisi´ on estacionaria

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 = [ . . . cki . . . ] = 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 X s(u) = cki Nin (2k u)

y

s′ (u) =

X

2k (∇cki )Nin−1 (2k u) .

Por lo tanto, subdividiendo s′ obtenemos los pol´ıgonos diferencia ∇Ck 2k ∇Ck = (∇C)(Sn−1 )k .

on 12 Sn−1 se denomina la Entonces, 12 Sn−1 aplica ∇Ck en ∇Ck+1 . Por esta raz´ 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   ...   . . . α−1 α0 α1 . . .  , S=  . . . α−1 α0 α1 . . .  ... P donde los elementos αi son n´ umeros arbitrarios que satisfacen i αi = P olo un n´ umero finito de los αi son diferentes de cero. i α2i+1 = 1 y s´ Iterando la subdivisi´on se obtiene la siguiente secuencia de pol´ıgonos de control Ck = [ . . . cki . . . ] = CS k . Esta secuencia converge uniformemente a una curva continua c(u) si sup k cki − c(2−k i) k −→ 0 . k→∞

i

La convergencia uniforme de los pol´ıgonos Ck a c(u), sobre cada compacto implica que los splines constantes por trozos X cki Ni1 (u) ck (u) = i

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 = [ . . . cki . . . ] 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 uniformemente 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 X dk (u) = 2k ∇cki Ni0 (2k u) y que los splines lineales por trozos X ck (u) = cki Ni1 (2k u)

convergen uniformemente a d(u) y c(u), respectivamente. Como Z u k ck (u) = c−1 + dk (t) dt , 0

y como integraci´on y convergencia uniforme conmutan, resulta Z u c(u) = c(0) + d(t) dt . 0



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 C r . 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 continuamente diferenciable.

117

8.8. C´ alculo del esquema de diferencias

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 subdivisi´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 X bi = cj αi−2j . j

Multiplicando por el monomio z i y sumando sobre i obtenemos el polinomio de Laurent X XX bi z i = cj αi−2j z 2j z i−2j i

i

=

X

j

cj z 2j

j

X

αk z k ,

k

el cual se puede expresar de manera compacta como: b(z) = c(z 2 ) · α(z) . El factor α(z) =

X

αk z k

k

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 u ´nico 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: Multiplicando las diferencias ∇bi por z i y sumando sobre i obtenemos el polinomio de Laurent X ∇b(z) = ∇bi z i = b(z)(1 − z) . i

Sustituyendo la ecuaci´ on para b(z) se tiene ∇b(z)

= c(z 2 )α(z)(1 − z) 1−z = ∇c(z 2 )α(z) 1 − z2 α(z) . = ∇c(z 2 ) 1+z

P P 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 12 Sn−1 definida en 8.4 representa el esquema de diferencias correspondiente al algoritmo de subdivisi´ on para splines de grado a n sobre Z, vea 8.5. Por lo tanto el polinomio caracter´ıstico σn (z) de Sn est´ dado por

σn

=

=

1 (1 + z)σn−1 (z) 2 1 (1 + z)2 σn−2 (z) 4

.. . =

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 de 8.4. i

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 = [ . . . p0i . . . ] se construye una secuencia de pol´ıgonos Pk = [ . . . pki . . . ] de la forma pk+1 2i−1

=

pk+1 2i

= −ωpki−3 + (1/2 + ω)pki−2 + (1/2 + ω)pki−1 − ωpki ,

pki+2

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 = [ . . . p0i . . . ] el pol´ıgono dado por p0i = 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 pki+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 precisi´ 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 + ω)z 2 + z 3 + (1/2 + ω)z 4 − ωz 6 = (1 + z)β(z) ,

donde β(z) = −ω + ωz + 1/2z 2 + 1/2z 3 + ωz 4 − ωz 5 es el polinomio caracter´ıstico del esquema de diferencias. Entonces se tiene k∇pk+1 2i k

= k − ω∇pki + 1/2∇pki+1 + ω∇pki+2 k ≤ (1/2 + 2|ω|) sup k∇pki k i

y similarmente

k k∇pk+1 2i+1 k ≤ (1/2 + 2|ω|) sup k∇pi k . 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) = −ω + 2ωz + (1/2 − 2ω)z 2 + 2ωz 3 − ωz 4 . 1+z

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 C 1 . Observaci´ on 8: Se puede demostrar [Dyn et al. ’91]√que el esquema de los cuatro puntos produce interpolantes C 1 si 0 < ω < ( 5 − 1)/8 ≈ 0.15. Sin embargo, en general no produce curvas C 2 .

Observaci´ on 9: El esquema de 2k puntos de Kobbelt produce interpolantes C k−1 [Kobbelt ’94]

8.11

Ejercicios

1 El B-spline uniforme N n se puede obtener como una convoluci´on de N 0 n veces, N n = N 0 ∗ . n. . ∗N 0 . 2 Use la relaci´ on de recurrencia para B-splines uniformes de 8.1 para demostrar Z X X n+1 n Nin = 1 . )Ni (u) = u, y Nin = 1, (i + 2 I R i i k+1 k 3 Use la notaci´ on de 8.6 para demostrar que kck+1 −1/2(cki + 2i −ci k y kc P2i+1 k k ci+1 )k est´ an acotados por alg´ un m´ ultiplo de supi kci k · i |αi |. P k 1 −k 4 Deduzca del Ejercicio 3 que la curva lineal por trozos ci Ni (2 u) converge uniformemente si las diferencias ∇cki 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−1 Sk , 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].

121

8.11. Ejercicios

P 6 Considere los splines uniformes sn = ci Nin (u) de grado n sobre Z. Para cualquier entero r ∈ IN sea X sn = bni Nin (ru)

la representaci´ on correspondiente sobre 1r Z. Demuestre que los puntos n de control bi se pueden calcular a trav´es de la relaci´on de recurrencia.

b0ri

=

bn+1 i

=

· · · = b0ri+r−1 = ci 1 n (b + · · · + bni ). r i−r+1

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 k convergen a una curva R u c(u). Demuestre que los pol´ıgonos CS convergen a la curva d(u) = u−1 c(u)du.

Parte II

Superficies

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 C r — 9.8 Interpolaci´on bic´ubica C 1 por trozos — 9.9 Superficies de topolog´ıa arbitraria — 9.10 Parametrizaci´on singular — 9.11 Splines bic´ ubicos C 1 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 X i=0

ai Ai (u) ,

126

9. Superficies producto tensorial

Cada uno de los puntos de control de esta curva yace sobre una curva de B´ezier n X bij Bj (v) . ai = ai (v) = j=0

La superficie p dada por p(u, v) =

XX i

bij Ai (u)Bj (v) .

j

se denomina superficie producto tensorial Es f´acil ver que los productos Ai Bj tambi´en son linealmente independientes. Observaci´ on 1: El producto de dos funciones es una funci´on producto tensorial especial X X XX ai Ai (u) · bj Bj (v) = ai bj Ai (u)Bj (v) . i

j

i

j

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 XX p(u, v) = pij Ai (u)Bj (v) i

j

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) + d1 s, v = c2 (1 − t) + d2 t 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 X XX b(s, t) = bi (t)Bim (s) = bij Bim (s)Bjn (t) , i

i

j

o en notaci´on m´ as compacta b(s) =

X i

donde i = (i, j).

bi Bim (s) ,

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 X X m m b(u) = bij Bij (s) = bm−i,j Bi,j (¯s) , i,j

i,j

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 u ´ltimo 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) =

X

b0j Bjn (v) .

j

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, X X Bim = 1 · Bjn = 1 . j

i

• 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 componente se obtiene una caja de acotaci´on para el parche b[c, d], b(u) ∈ [min bi , max bi ] i

i

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

9. Superficies producto tensorial

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 XX b(u, v) = bij Ai (u)Bj (v) i

j

tiene forma polar tensorial b[u1 . . . um , v1 . . . vn ] =

XX i

bij Ai [u1 . . . um ]Bj [v1 . . . vn ] .

j

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 variables 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 calcular 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 u ´nicos, el polinomio b(u, v) de un producto tensorial de grado ≤ (m, n) tiene una u ´nica 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    n m X X m n k l u v akl b(u, v) = k l k=0 l=0

se puede expresar en forma abreviada usando la siguiente notaci´on vectorial   m X m k u , ak b(u) = k k=0

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 X

bi Bim (u) ,

i=0

donde bi =

i   X i

k=0

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   k X k bi . (−1)k+l−i−j ak = i i=0

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, X b(u) = bi Bim (s) , i

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 Pn 1. los puntos bi = j=0 bij Bjn (t) y Pm 2. el punto b(u) de la superficie dado por i=0 bi Bim (s) .

P 3,2 Observaci´ on 6: Por ejemplo, considere el polinomio b(s, t) = bij Bij (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 pasos de de Casteljau para t = 1/2 y tres pasos para s = 2/3 en la u ´ltima fila. Cada flecha corresponde a un paso.

133

9.6. Derivadas

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 10 1 1 10  9 1 0 7  y  11 1 2 13  . 10 1 1 10 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 X b(s) = bi Bim (s) ,

tiene la representaci´on de B´ezier bs =

X ∂ b=m ∆10 bi Bim−1,n (s) , ∂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

X m! ∂ q+r ∆q bi Bim−q , b= q r (m − q)! ∂s ∂t

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 C r

135

Figura 9.10: La torsi´on cruzada ∆11 b00 .

9.7

Conexiones simples C r

El teorema de St¨ ark de 3.10 conduce tambi´en a una condici´on necesaria y suficiente para garantizar la conexi´on C r de dos parches b(u) y c(u) dados 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 C 1 simple para m = 3, n = 3 y donde ∆i = ∆ui .

Figura 9.11: Conexi´on C 1 de dos parches bic´ubicos.

136

9.8

9. Superficies producto tensorial

Interpolaci´ on C 1 bic´ ubica por trozos

Los esquemas de interpolaci´ on para curvas tambi´en se pueden extender f´acilmente a productos tensoriales. Ilustramos este proceso para el caso de interpolaci´ 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 C 1 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 interpolaci´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 interpolaci´ 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 = S t 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 ] = S t P T . 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 C t = P T y por interpolaci´ on de columnas resulta entonces B = S t C = S t P T . Claramente s(ui , vj ) = b3i,3j = pi,j y si S y T generan interpoladores C 1 , 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.

137

9.10. Parametrizaci´on singular

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 C 1 con trozos rectangulares que formen una malla arbitraria. Las construcciones dadas en 9.7 s´ olo permiten conectar tetraedros de parches en v´ertices interiores. Una manera 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) =

X

mn bij Bij (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 parametrizaci´ on de b es singular en (0, 0) y la expansi´ on de Taylor de b alrededor (0, 0) es de la forma X b(u, v) = aij ui v j , 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 b00 b20 que b02 y si b12 yace al mismo lado de la tangente b00 b02 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 C 1 de topolog´ıa arbitraria En general, es posible construir superficies de B´ezier bic´ ubicas, C 1 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 C 1 simple, pero algunos de los parches ser´an singulares. En primer lugar describiremos la construcci´ on de este tipo de spline y posteriormente utilizaremos esta t´ecnica para el caso de una malla de cuadril´ ateros con topolog´ıa arbitraria.

9.11. Splines bic´ ubicos C 1 de topolog´ıa arbitraria

139

Figura 9.15: Una malla de B´ezier singular. Una superficie bic´ ubica con conexiones C 1 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 C 1 . 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 C 1 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 C 1 . 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 satisfacen 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 producto 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 tensoriales. 4 Implemente un esquema de interpolaci´ on basado en los splines C 1 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 C 1 de 9.10 en cuatro 2 subparches sobre [0, 1/2] , . . . , [1/2, 1]2 corresponde a un refinamiento de la malla de cuasi control, vea la Observaci´on 13. Desarrolle esta construcci´ on. 6 Considere 2n vectores c1 , . . . , c2n que generan IR3 y sea ci = cos(i πn ). Demuestre que los vectores d1 , . . . , d2n dados por   c0 c1 . . . c2n−1  c−1 c0 . . . c2n−2    [d1 . . . d2n ] = [c1 . . . c2n ]  .  . . .. . . ...  .. 

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 u ´til 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 = [u v w]t las coordenadas baric´entricas de un punto x ∈ IR2 con respecto a A. Entonces escribimos x = Au = a0 u + a1 v + a2 w, vea 1.2. alculo de la expansi´ on trinomial Procediendo como en 2.1, el c´ 1 = (u + v + w)n =

X n! ui v j w k , i!j!k!

i,j,k

donde 0 ≤ i, j, k, i + j + k = n, conduce a los polinomios de Bernstein de grado n n! i j k n uv w , Bijk (u, v, w) = i!j!k!

estos se pueden abreviar como Bi = Bin (u) =

  n i

i

u

,

142

10. Representaciones de B´ezier de parches triangulares

donde i = (i, j, k) ∈ {0, 1, . . . , n}3 y |i| = 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.

www

B003 B102 B201 B300

B111

B210

3uw2

B012

3u2 w

B021

B120

uuu

B030

3vw2

6uvw

3u2 v

3v 2 w

3uv 2

vvv

Figura 10.2: Los polinomios de Bernstein c´ubicos ordenados can´onicamente. N´ otese que s´ olo dos de las tres variables de los Bin (u) son independientes. Como es usual u 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   n! n i n ui0 . . . uidd , Bi (u) = u = i0 ! . . . id ! 0 i

donde i = (i0 , . . . , id ) ∈ {0, 1, . . . , n}d+1 , |i| = i0 + · · · + id = n, y u = (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 independientes. Esto se puede verificar dividiendo X

bi ui = 0

143

10.2. Simples de B´ezier por un0 , lo cual conduce a X

bi v1i1 . . . vdid = 0 ,

donde vk = uk /u0 . Como los monomios son linealmente independientes se on. tiene que todos los bi son cero, lo cual termina la verificaci´  n+d Existen 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. n • son sim´ etricos, esto es, Bin (u) = Bπ( i) (π(u)) para cualquier permutaci´ on π.

• sus ra´ıces yacen sobre las caras del simplex A. En particular  1 ik = n Bin (ek ) = para 0 ik < n , donde e0 , . . . , ed son las columnas de la matriz identidad de dimensi´on d + 1. • forman una partici´ on de la unidad X Bin (u) ≡ 1 . i

• son positivos para u > o, 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 n−1 Bin (u) = u0 Bin−1 −e0 + · · · + ud Bi−ed ,

donde Bo0 = 1 y Bin = 0 si i tiene alguna coordenada negativa y |i−ej | = n−1.

10.2

Simples de B´ ezier

Como los polinomios de Bernstein forman una base, toda superficie polin´omica b(x) tiene una u ´nica representaci´ on de B´ ezier, X b(x) = bi Bin (u) , i

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 bi 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 superficies: • Los puntos bπ(i) 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(x) restringido a cualquier cara de dimensi´ on inferior de A coincide con la “cara” de la malla de B´ezier. Por ejemplo para cualquier δ < d X b(x) = bi0 ... iδ 0 ... 0 Bin0 ... iδ (v) , donde v 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.

145

10.3. Precisi´on lineal

Como los polinomios de Bernstein son no negativos sobre el simplex de referencia, • b(x) es una combinaci´ on convexa para todo

u

≥ o.

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(u) = u0 p0 + · · · + ud pd = P u ,

1 = u0 + · · · + ud ,

admite la siguiente representaci´on de B´ezier de grado n > 1. X b(u) = [u0 p0 + · · · + ud pd ] Bjn−1 (u) =

X

j

n

bi Bi (u) ,

i

los puntos bi = [i0 p0 + · · · + id pd ]/n = P i/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(u) en los puntos bi resulta en sus puntos de B´ezier, X b(i/n)Bin (u) . b(i/n) = bi o b(u) = i

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 funcional   X x b(x) = , donde b(x) = bi Bin , b(x) tiene puntos de B´ezier [ait bi ]t , donde nai = [a0 . . . ad ]i, como se ilustra en la Figura 10.5. Los bi se denominan los ordenadas de B´ ezier y las ai 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

P Un simplex de B´ezier b = bi Bin se puede evaluar f´acilmente usando una generalizaci´on del algoritmo de de Casteljau. Usando repetidamente las relaciones de recurrencia de los polinomios de Bernstein, tal como se hizo para curvas, primero se obtiene X b(x) = bi Bin (u) |i|=n

=

X

|i|=n−1

bi Bin−1 (u)

y posteriormente, despu´es de n − 2 pasos X b(x) = bi Bi0 (u) = b000 , |i|=0

donde bi = [bi+e0 . . . b

i+ed ]u

.

La Figura 10.6 ilustra un ejemplo. Los puntos intermedios bi , |i| ≤ n del algoritmo de de Casteljau, en su ordenaci´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.

147

10.5. Derivadas

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 ∂ n B = nBin−1 −ej , ∂uj i

etc.,

donde Bj = 0, si j tiene una coordenada negativa. A continuaci´ on considere una recta x(t) = p + tv , donde v = a0 v0 + · · · + ad vd y v0 + · · · + vd = 0. Esta recta determina la curva b(x(t)) sobre la superficie b(x) = b(u) =

X i

bi Bin (u) .

Su derivada respecto a t, en t = 0 est´a dada por

Dv b(p)

d b (x(t)) dt t=0 ∂ ∂ b b + · · · + vd = v0 ∂ud ∂u0 X cj Bjn−1 , = n

=

j

148

10. Representaciones de B´ezier de parches triangulares

donde cj = v0 bj+e0 + · · · + vd bj+ed , lo cual se abrevia por cj = ∆v bj tal como se ilustra en la Figura 10.7.

Figura 10.7: Las diferencias cj . 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 bj , donde |j| = 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 b10...0 , . . . , b0...01 calculados en el pen´ ultimo paso de de Casteljau generan el plano tangente de b en x. Observaci´ on 3: P Si d = 2, podemos considerar la malla de B´ezier de un polinomio b(x) = bi Bin (u) como una funci´on lineal por trozos p(x) sobre a0 a1 a2 . Entonces • La derivada direccional Dv p(x) de la malla de B´ezier contiene los puntos de B´ezier de Dv b(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 = [u, v, w]t . Dada la representaci´on de B´ezier de un polinomio b(x) sobre un tri´angulo a0 a1 a2 , se denomina poliedro de B´ ezier de b(x) sobre A al polinomio p(x) a trazos que interpola las ordenadas bi en las correspondientes abscisas. Demostraremos que

149

10.6. Convexidad de superficies funcionales

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 = a 2 − a 1 ,

v1 = a 0 − a 2 ,

v2 = a 1 − a 0

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 b11 b22

= −b01 − b02 = −b12 − b10 = −b20 − b21

≥ 0 , ≥ 0 , ≥ 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 Dv Dv b como la suma de tres t´erminos no negativos Dv Dv b = α2 bµµ + 2αβbµν + β 2 bνν ≥ 0 ,

lo cual prueba la convexidad de b. ✸

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 convexos tambi´en son convexos. El rec´ıproco, sin embargo, no es cierto en general. 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. Concretamente, 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 6= o se tiene Dv Dv b

= α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]. Considere un cuadril´ atero abdc no convexo tal como se ilustra en la Figura 10.12 y sean b y c dos polinomios con contacto C 1 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 C 1 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 Bin (u) tiene un u ´nico m´ aximo sobre su tri´angulo de referencia. Este m´ aximo se alcanza en u = i/n. 2 El operador de Bernstein B asigna a una funci´on f , un polinomio de grado n X B[f ] = f (i/n)Bin (u) . 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≥α+β    j α!β!γ! X i α β Bin (u, v, w) , u v = α β n! i

donde w = 1 − u − v, γ = n − α − β y α, β, γ ≥ 0.

4 Calcule la representaci´ on de B´ezier sobre el tri´angulo nomio en base monomial de grado n X b(x, y) = aij xi y j . 0≤i+j≤n

1 0 0 0

1

0

del poli-

153

10.8. Ejercicios 5 Sea ∆αβ el operador diferencia definido recursivamente por

y

∆αβ bi

= =

∆00 bi

= bi .

∆α−1,β bi+e1 −e3 − ∆α−1,β bi ∆α,β−1 bi+e2 −e3 − ∆α,β−1 bi

Demostrar que ∆αβ b00n =

β    α X X α β 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 X X X αβ  n! uα v β , (−1)k−γ bi bi Bin (u) = α!β!γ! i j 0≤α+β≤n

donde γ = n − α − β.

i

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 C r 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 u ´nica, 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 u ´nico 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 combinaci´on lineal X b(x) = ci Ci (x) i

de polinomios Ci (x) de grado n. Sean Ci [x1 . . . xn ] sus polinomios sim´etricos donde i = (i, j, k) ≥ O y |i| = n, entonces el polinomio sim´etrico de b(x) es X ci Ci [x1 . . . xn ] , b[x1 . . . xn ] = i

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 Ci sean los monomios Anij (x, y) = ni xi y j , se obtienen los polinomios sim´ etricos elementales X xα . i. . xβ yγ . j. . yδ , Anij [x1 . . . xn ] = α n, tengan una conexi´on C k 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 solamente polin´ omicas por trozos. En consecuencia dados cualesquiera parches polin´ omicos r1 , . . . , r2n de bigrado menor o igual 2k + 2 con C k 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 C k 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 en la Figura 14.10 pueden escogerse como B´ezier indicados por cuadrados 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 C 0 y C k , 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

201

14.6. Parches multilaterales en el plano

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 superficie B-spline producto tensorial si (u, v) =

k+1 X X k+1

cirs Ni (u)Nj (v) ,

r=3 s=0

(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 ci00 , . . . , cik−2,k−2 son todos cero y para k par, los puntos an dados por crs , tales que r y s > k2 − 1, est´     k k cos ϕi cos ϕi−1 , + (s − + 1) cirs = (r − + 1) sin ϕi sin ϕi−1 2 2

con ϕi = i · 360◦ /n. Los dem´ as puntos de control se definen por la relaci´on cirs = ci+1 s,k−2−r ,

−3 ≤ r ≤

k −1 2

y

k −1≤s≤k+1 . 2

Los centros de los cuadril´ ateros de la malla de control son los puntos de control cirs para los xi de bigrado impar k. Los n parches interiores x1 , . . . , xn tienen contacto C k con los parches exteriores xn+1 , . . . , x4n . Por lo tanto conocemos todos los puntos de B´ezier con

14. Construcciones - Gk

202

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 B0k+1 (u) · B0k+1 (v). Por razones de simetr´ıa definimos x00 = 0. Observaci´ on 4: La escogencia de arriba de los xi no es la u ´nica 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 C k parametrizados singularmente, v´ease [Reif ’98].

14.7

Ejercicios

1 Calcule la derivada

∂ i+j q(u(x, y)) ∂xi ∂y j

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 consistente de parches triangulares con conexiones C 0 o C k . Trabaje an´ alogamente a 14.6. Demuestre que el grado minimal de un tal macroparche es 3k/2 + 1. V´ease [Prautzsch & Reif ’99].

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 on de mallas hexagonales — 15.10 Half-box mallas triangulares — 15.9 Subdivisi´ 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 ] P dos esquemas estacionarios para curvas, y sean α(x) = αi xi y β(y) = P j βj y , 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 CB m

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 de la malla Cm+1 se calcula a partir ij de C a trav´ e s de la ecuaci´ on de refinamiento de los v´ertices cm m kl XX = cm+1 cm kl αi−2k βj−2l . ij k

l

on γkl = αk βl la ecuaci´ on Usando los multi-´ındices i, j ∈ Z2 y la abreviaci´ de refinamiento toma una forma similar a la de 8.8 para los esquemas de curvas, concretamente X = cm+1 cm j γi − 2j . i j

Si A y B coinciden en la matriz de subdivisi´on del algoritmo de LaneRiesenfeld Sn = DM n , 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 promediaci´ on A aplica una malla C en la malla 1 [ci + ci−e1 + ci−e2 + ci−e ] 4 la cual conecta los centroides de cualesquiera dos cuadril´ateros de C que tengan una arista com´ un. A(C) = M t CM =

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 m C m = [cm ij ] = Mn (C)

representa la misma superficie spline X s(u, v) = cij Nin (u)Njn (v) , i,j

15.2. Subdivisi´ on estacionaria en general y m´ ascaras

207

Figura 15.1: Refinaci´on y promediaci´on de una malla. donde Nin 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 m sup ks((i, j)/2m ) − cm ij k = O(1/4 ) i,j

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

X

cm k γi−2k

k

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 2 forman el conjunto i + 2Z 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 esquema 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         0 0 0 0 1 1 1 0 . , , , 1 1 1 0 1 1 1 0 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 9 3 1 1 3 , , , . 3 1 1 3 9 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 caracteriascaras de zado por una sola m´ ascara. Las Figuras 15.3 y 15.4 ilustran las m´ A y A2 .

Figura 15.3: La m´ascara del operador de promediaci´on A (izquierda) y su acci´on (derecha).

209

15.3. Teoremas de convergencia

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 : X = cm+1 cm j γi−2j . i j

Decimos que la secuencia Cm converge uniformemente a una funci´on c(x, y) si el m´ aximo de las distancias m sup kcm i − c(i/2 )k i

converge a cero, cuando m tiende a infinito. Si la funci´ on l´ımite c(x) es continua y diferente de cero, entonces ascara, suman uno. los pesos γi−2j , j ∈ Z2 , de cada m´

Para la prueba, sin p´erdida de generalidad podemos suponer que c(o) 6= o. Entonces, para todo i, los puntos m m m cm i = c(i/2 ) + (ci − c(i/2 ))

convergen a c(o) cuando m tiende a infinito. En consecuencia, la suma finita X cm cjm−1 γi−2j i = j

converge a

c(o) =

X

c(o)γi−2j ,

j

lo cual concluye la prueba. ✸

La convergencia de una secuencia de mallas de control Cm , depende de dos secuencias de pol´ıgonos de diferencias m ∇k Cm = [cm i − ci−ek ] ,

Concretamente, se tiene el siguiente hecho:

k = 1, 2 .

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 ∇1 Cm y ∇2 Cm 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 sup k∇k cm i k , k=1,2

i

converge a cero. Sea adem´as cm (x, y) =

X

m m cm ij Ni (2 x)Nj (2 y)

i,j

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 kcm+1 j k 2j



X k

m kcm k − cj k · |γ2j−2k |

≤ δm γ ,

P 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 (j/2m )+cm (j/2m )−cm (i/2m+1 )k ≤ 2δm+1 +δm γ+δm . +cm+1 kcm+1 −cm+1 2j 2j i Esto implica sup kcm+1 (x) − cm (x)k ≤ 2δm+1 + (γ + 1)δm . Por lo tanto los splines lineales cm (x) y sus mallas Cm convergen uniformemente a funciones uniformemente continuas c(x) . ✸ Es m´ as, si los pol´ıgonos Cm y los pol´ıgonos de diferencias divididas 2m ∇v Cm = m m 2 [ci − cm i−v ] convergen uniformemente a funciones uniformememnte continuas 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 m [cm ij ] = [ciu+jv ]

211

15.4. Promedios crecientes

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 X 0 m 0 m dm (x, y) = 2m ∇v cm ij Ni (2 x)Nj (2 y) i,j

y los splines cm (x, y) =

Z

dm (x, y)dy =

X

0 m 1 m cm ij Ni (2 x)Nj (2 y)

i,j

convergen uniformemente a d(x) y c(x), respectivamente. Entonces c(x, y) = R d(x, y)dy, lo cual concluye la prueba . ✸

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 uniformemente a una funci´ on c(x), con soporte compacto e integrable Riemann, entonces la sucesi´ on de promedios m

am ij

2 −1 1 X m ci−k,j−l = m 4 k,l=0

converge uniformemente a la funci´ on uniformemente continua Z c(x − t)dt . a(x) = [0,1]2

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 X 4−m (sup c(x) − inf c(x)) x∈Ω x∈Ω 2 i∈Z

convergen a cero. Por lo tanto las sumas de Riemann rm i

−m

=4

m 2X −1

c((i−k, j−l)/2m )

k,l=0

convergen uniformemente a a(i), para todo i, cuando m tiende a infinito. m Como cm i converge uniformemente a c(x), los promedios ai converge unim formemente a las sumas de Riemann ri lo concluye la prueba. ✸

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 uniformemente sobre cualquier compacto a una funci´ on continua c(x), entonces los promedios crecientes sobre rectas m

bm i

2 −1 1 X m ci−kv , = m 2

v ∈ Z2 ,

k=0

convergen uniformemente sobre cualquier compacto a la funci´ on uniformemente continua Z 1 c(x − tv)dt . b(x) = 0

Observaci´ on 5: Los promedios am i son promedios sobre rectas de promedios sobre rectas. Concretamente, m

am i

2 −1 1 X m bi−ke1 , = m 2

e1 = [1 0] ,

k=0

donde m

bm i

2 −1 1 X m ci−le2 , = m 2

e2 = [0 1] .

l=0

15.5

C´ alculos con esquemas de diferencias

Un esquema de subdivisi´ on estacionaria tambi´en puede representarse con funciones generatrices. An´ alogamente al m´etodo de la secci´on 8.8, multiplicamos la ecuaci´ on de refinamiento por el monomio xi = xi y j y sumamos sobre i. Esto resulta en X XX 2j i−2j cm+1 xi = cm j γi−2j x x i i

i

=

X

j

2j cm j x

X

γk xk ,

k

j

lo cual se puede abreviar como cm+1 (x) = cm (x2 )γ(x) . El factor γ(x) =

X k

γk xk

15.5. C´ alculos con esquemas de diferencias

213

representa el esquema de subdivisi´ on y se denomina su s´ımbolo o polinomio 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 diferencias 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) =

X

c i xi ,

su refinamiento bajo un esquema estacionario γ(x) est´ a dado por b(x) = c(x2 )γ(x) , y las diferencias ∇v ci = ci − ci−v , v ∈ Z2 , forman el pol´ıgono

∇v c(x) = c(x)(1 − xv ) . Entonces las diferencias del polinomio refinado b(x) = c(x2 )γ(x) est´an dadas por 1 − xv . ∇v b(x) = ∇v c(x2 )γ(x) 1 − x2v

En consecuencia, existe un esquema estacionario, que denominaremos, el esquema de las ∇v -diferencias, el cual aplica ∇v c en ∇v b 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 polinomio 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.6

15. Subdivisi´ on estacionaria para mallas regulares

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 k esquema de subdivisi´ on estacionaria γ. Usando las variables xk = x2 esta secuencia se puede escribir como cm (x)

= γ(x0 ) . . . γ(xm−1 )c0 (xm ) .

Es m´ as, para cualquier v ∈ Z2 los polinomios bm (x) = sentan los promedios por rectas

P

i bm i x que repre-

m

bm i

2 −1 1 X m ci−kv . = m 2 k=0

Tomando yk = xkv , lo anterior se puede escribir como bm (x)

=

2−m (1 + y + y2 + y3 + · · · + y2

m

−1

)cm (x)

= 2−m (1 + y)(1 + y2 )(1 + y4 ) . . . (1 + y2 = β(x0 ) . . . β(xm−1 )c0 (x) ,

m−1

)cm (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, P di = j bj γi−2j 2 Para cada i calculamos los promedios por rectas bi = 12 (di + di−v )

Similarmente, se tiene que los promedios m

am i

2 −1 1 X m ci−k,j−l = m 4 k,l=0

15.7. Subdivisi´ on de mallas triangulares

215

se obtienen a partir de los puntos a0i = c0i con el esquema estacionario representado 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, P di = j aj γi−2j 2 Para cada i calculamos los promedios por rectas fi = 12 (di + di−e1 ) 3 Para cada i calculamos los promedios por rectas ai = 12 (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     1 0 e1 = , 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 promedian v´ertices con respecto a cada una de las direcciones ek , Ak (C) = [ai ]i∈Z2 , donde ai =

1 (ci + ci−ek ) . 2

Para cualquier n = (n1 , n2 , n3 ) ∈ IN30 , el operador compuesto Bn = An1 1 An2 2 An3 3 D representa el algoritmo de promediaci´on en las tres direcciones y Cm = Bnm (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 LaneRiesenfeld, 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 refinamiento R el cual subdivide cada tri´angulo de una malla regular, uniformemente 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:    −1  1 1 0 y   1  . x−1 1 x  1 2 1   1 γ(x, y) = (1 + x)(1 + y)(1 + xe3 )/2 = 2 0 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 = A1 A2 A3 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    1 0 1 1  1 1 x x2  1 2 1   y  . γ(x, y) = 8 y2 1 1 0

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 duplicaci´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 C k , 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 Z

0

1

Z

0

1

Z

0

1

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. ✸ 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 subdivisi´ on de Lane-Riesenfeld para productos tensoriales uniformes de bigrado (n1 , n2 ).

15.9. Subdivisi´ on de mallas hexagonales

15.9

219

Subdivisi´ on de mallas hexagonales

Cualquier malla regular triangular determina una malla hexagonal cuyas aristas 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     .. .. . . . . . .  . .    ∇ ∆   , y  · · · c∇ · · · c · · · C = C∆ =  ij · · ·  , ij    . . . . . . . .. . .. cuyos elementos son los v´ertices de las mallas o se representan por los polinomios X X i i c∆ (x) = c∆ y c∇ (x) = c∇ i x i x .

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 ], [di ]] ,

220

15. Subdivisi´ on estacionaria para mallas regulares

donde ∆ ∇ ∆ ∆ d∆ 2i,2j = d2i+1,2j = d2i+1,2j = d2i+1,2j+1 = cij

y ∇ ∇ ∆ ∇ d∇ 2i,2j = d2i,2j+1 = d2i,2j+1 = d2i+1,2j+1 = cij .

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 ∇ ] = [Ak C ∆ , Ak C ∇ ] . Y para cada n = (n1 , n2 , n3 ) ∈ IN30 , el operador compuesto Hn = An1 1 An2 2 An3 3 Dhex representa el algoritmo de promediaci´ on en tres direcciones para mallas hexagonales introducido en [Prautzsch ’84b]. Los operadores de subdivisi´ on Hn tambi´en pueden representarse con matrices 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:    ∆  ∆ 2  1+x+xy y c (x ) c (x) , = x 1+y+xy c∇ (x2 ) c∇ (x) 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  ∆ 2   ∆ 2  1 c (x ) c (x ) ek , = (1 + x ) c∇ (x2 ) c∇ (x2 ) 2

la cual abreviamos por c(x) = αk (x)c(x) . Por lo tanto Hn se representa por una matriz polin´omica 2 × 2 α1n1 α2n2 α3n3 D . La Figura 15.12 muestra la m´ ascara asociada con el operador de promediaci´ on sim´etrica A111 = A1 A2 A3 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 = [Cm , Cm ] converge uniformemente a una funci´on c(x) si los supremos m ∇ m sup max{kc∆ im − c((i+(e1 −e3 )/3)/2 )k, kcim − c((i+(e2 −e3 )/3)/2 )k} 2 i∈Z

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, Cm y Cm , convergen a c(x). ∆ ∇ Sea Cm = [Cm , Cm ] una secuencia de mallas hexagonales obtenida por la aplicaci´ on repetida del operador de promediaci´on Hn definido en 15.9. Claramente, 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 on creciente, tal como se des(Ak Hn )m C se obtiene de Hnm C por promediaci´ 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, similarmente a 15.8, se obtiene lo siguiente: para k = min{ni + nj |i 6= j} − 1, la secuencia Cm converge sobre cualquier compacto a un spline C k . 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 detenimiento en el Cap´ıtulo 17. En particular, los operadores sim´etricos Hnnn generan splines C 2n−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 aplicaciones repetidas del algoritmo de la mariposa, converge a una superficie C 1 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 X cm+1 = cm j γ2i−j i

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, X N (x) = γi N (2x − i) ,

223

15.11. Ejercicios

la cual define una base, esto es, que la funci´on l´ımite para cualquier malla C0 , se puede expresar como X −m c(x) = cm x − i) . i N (2 3 Sea N (x) una base continua para el esquema de subdivisi´ on del Ejercicio 2 y sea v ∈ Z2 . Demuestre que Z 1 N (x − tv)dt N (x) = 0

es la funci´ on base para el esquema de subdivisi´ on cuya m´ascara tiene los coeficientes 1 γ i = (γi + γi−v ) . 2

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 .

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 subdivisi´on de splines producto tensorial bicuadr´ aticos. Simult´ aneamentente, Catmull 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 convergen 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 extraordinarios. 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 Min C 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 espec´ıficas de los algoritmos de Doo-Sabin [Doo & Sabin ’78] y CatmullClark [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 Min C, i ≥ 1, son mallas de cuadril´ ateros y si n es par, los v´ertices interiores de cada malla Min C, i ≥ 1, pueden tener solamente valencia 4. Las mallas cuyos pol´ıgonos no son cuadril´ ateros y los v´ertices internos de valencia 6= 4 se denominan mallas extraordinarias y v´ ertices extraordinarios, respectivamente.

Cada v´ertice extraordinario de una malla Min C es el resultado de una combinaci´ on af´ın de v´ertices que yacen alrededor del v´ertice extraordinario correspondiente de la malla Mi−1 n C. Como un elemento extraordinario de i Mi−1 n C corresponde a lo sumo a un elemento extraordinario en Mn C, entonces el n´ umero de ´estos u ´ltimos est´ a acotado por el n´ umero de elementos extraordinarios en C. Si C es una malla sin frontera, entonces el n´ umero de elementos extraordinarios es el mismo para cada una de las mallas Min C, 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 Min C 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 Min C, 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. ateros n × n Cada submalla regular de la malla Min C que consiste de cuadril´ es la B-malla de control de un parche de la superficie polin´omica s. Los parches definidos por todas estas submallas regulares de Min C 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ρ2n 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 r1i , . . . , 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 r51 para ρn = 3.

Figura 16.4: Los parches rji adyacentes, para m = 5.

229

16.3. La parametrizaci´on standard

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 simples C n−1 . De acuerdo con 9.7 esto significa que

(1)

∂κ j ∂uκ ri (1, v)

=

∂ κ j+1 (0, v) ∂uκ ri

,

∂ κ j+1 (u, 0) ∂v κ ri

=

∂ κ j+2 (u, 1) ∂v κ ri

,

∂ κ j+2 (u, 0) ∂v κ ri

j+3 ∂ (0, u) = − ∂u κ ri

κ

y ∂κ j ∂v κ ri+1 (u, 1)

=

∂κ j u ∂v κ ri ( 2 , 0)

∂ κ j+1 ∂v κ ri+1 (u, 1)

=

∂κ j 1 u ∂v κ ri ( 2 + 2 , 0)

∂ κ j+1 ∂uκ ri+1 (1, v)

=

∂ κ j+2 (0, 12 + v2 ) ∂uκ ri

∂ κ j+2 ∂uκ ri+1 (1, v)

=

∂ κ j+2 (1, v2 ) ∂uκ ri

,

,

(2)

,

,

para todo u, v ∈ [0, 1], i ∈ IN, κ = 0, 1, . . . , n − 1, y j = 1, 4, 7, . . . , 3n − 2, donde ri3n+1 = r1i . 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) = rji (u, v) =

p X

cl Blj (u, v) ,

l=1

donde Blj (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    N  2   3 · · · N0,0 0,−2 B6 B82 B92 B3 B53 B73  .. ..  B32 B52 B72  =  B13 B23 B43  =   ,  . . 2 2 2 3 3 3 B10 B12 B15 B1 B2 B4 N−2,−2 · · · N−2,0

2 (v) de B-splines cuadr´aticos donde Nkm denota el producto tensorial Nk2 (u)Nm sobre los nodos k, . . . , k + 3 y m, . . . , m + 3, respectivamente.

230

16.4

16. Subdivisi´ on estacionaria para mallas arbitrarias

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 X R={ cl Blj (u, v) | cl ∈ IR} . Sea ri (j, u, v) =

X

cil Blj (u, v) ∈ IR3

la superficie anular obtenida por aplicaciones sucesivas del esquema Mn del punto medio a partir de los puntos del control iniciales c01 , . . . , c0p . Como los puntos cil son combinaciones afines ci−1 , se tiene una matriz de subdivisi´ on l S, de dimension p × p tal que para todo i ≥ 1, t [ci1 . . . cip ]t = S[ci−1 . . . ci−1 p ] . 1

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 c2l dependen de los v´ertices extraordinarios de la malla inicial c01 . . . c0p . Por lo tanto, S 2 tiene una fila estrictamente positiva, lo cual implica que uno es un autovalor simple de S 2 , v´ease [Micchelli & Prautzsch ’89]. En consecuencia las mallas de control [ci1 . . . cip ] convergen a un punto [c . . . c] de multiplicidad p, el cual representa un punto extraordinario c, de la superficie 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   S1 S2 · · · Sm  1   Sm S1 · · · Sm−1  S=  .  .. .. .. 16  .  . . S2 · · · S m S1

Los Si son bloques 9 × 9 de la forma  Ai Si = O

O O



,

donde O denota matrices cero de varios tama˜ nos, A3 = . . . = Am−1 = [4/m] ,

231

16.5. Continuidad de superficies obtenidas por subdivisi´ on 

      A1 =       

a 9 9 3 3 3 3 3 1

. 3 . 9 9 . 9 1 3

. . 3 . 1 9 1 9 3

 . . . .   . .   . .   3 .   , . .   . 3   . 3  . 9





b . .  3 . 1   A2 =   . . .  , 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   x1  ..  r0 =  .  xp

y cualquier superficie de subdivisi´ on obtenida por aplicaciones sucesivas de S es una imagen de la superficie r conformada por los anillos  m  S x1   .. rm = S m r0 =   , m ∈ IN0 , . S m xp

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 cortos” S m [x2 . . . xp ]t . En consecuencia para analizar la suavidad es suficiente suponer |λ1 | < 1.

Note sin embargo que cualquier esquema de subdivisi´ on afinmente independiente tiene una matriz de subdivisi´ on con el autovalor uno asociado a autovectores 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).

t Bajo estas condiciones rm /λm 1 converge a [x1 x2 0 . . . 0] . Por lo tanto si r tiene un plano tangente en el origen , ´este coincide con el plano x1 x2 . 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 on caracter´ıstica del introducida en [Reif ’93] y se denomina la aplicaci´ 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 S∞ sobre U = m=0 λm R, es decir, la i-´esima coordenada es la funci´on (3)

16.7

−1 ri (x) = λm (x/λm )) , donde x ∈ λm R . i xi (c

Suavidad de orden superior

Si una superficie de subdivisi´ on r es regular y k veces continuamente diferenciable, 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  m λi ∂(xi ◦ c−1 )(x/λm ) ∂ri (x) = λκ

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 autovectores x1 y x2 que definen una aplicaci´ on caracter´ıstica. Entonces la superficie de subdivisi´ on r es regular y C k 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 β k espacio generado {xα 1 x2 | α + β = κ} o |λi | < |λ| . 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. Similarmente, 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 controla una superficie que consiste de parches triangulares. En general, estos parches no tienen porque ser polin´omicos. Alrededor de un punto extraordinario 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 constituir 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.

235

16.9. Ejercicios

Figura 16.7: Parches triangulares (cuadrilaterales) alrededor de un punto extraordinario.

16.9

Ejercicios

1 Sea S una matriz estoc´ astica n × n con una columna estrictamente positiva. 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 algoritmo 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



2π 3 1 2π 1 . < α(n) < + cos cos n 4 4 n 4

4 Refine una malla triangular arbitraria subdividiendo cada tri´ angulo uniformemente en cuatro subtri´ angulos. Calcule los centros de los subtri´ angulos. Estos puntos son los v´ertices de una malla hexagonal. Finalmente calcule los centroides de todos los pol´ıgonos ordinarios y extraordinarios 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 superficie polin´omica por trozos C 2 , obtenida por subdivisi´ on con curvatura Gaussiana positiva en su punto extraordinario tiene necesariamente grado ≥ 6.

Parte III

Splines Multivariados

17 Box splines

17.1 Definici´ on de box splines — 17.2 Box splines como sombras — 17.3 Propiedades 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 superficies 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 halfbox 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,   1/| det[v1 . . . vs ]| si x ∈ [v1 . . . vs ][0, 1)s . Bs (x) = 0 en caso contrario Z 1 Bk (x) = Bk−1 (x − tvk )dt, k > s . 0

Esto se ilustra en la Figura 17.1 para s = 2 y   1 0 1 1 . [v1 . . . v4 ] = 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 Z Bk (x)dx = 1 , IRs la cual puede ser verificada directamente para k = s y por inducci´on para k > s. Concretamente, Z Z 1 Z 1Z Z 1 Bk−1 (x − tvk )dtdx = Bk−1 (x − tvk )dxdt = dt = 1 . IRs 0 0 IRs 0

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 7→ [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−s βk (x) , volk βk

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) = (βk−1 + suk ) ∩ π −1 x . s∈[0,1)

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

Z

0

1

  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 Z volk−s βk (x) dx = volk βk IRs queda demostrada la ecuaci´ on (1). ✸

y

Z

IRs

Bk (x)dx = 1 ,

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 Z Z B(x|v . . . v )f (x)dx = f ([v1 . . . vk ]t)dt 1 k IRs [0,1)k 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     1 1 1 0 1 1 1 1 0 [v1 . . . vk ] = y [v1 . . . vk ] = . −1 0 1 1 0 0 1 1 1

243

17.4. Derivadas de un box spline

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

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 , . . . , vr∗ , . . . , 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 . . . vr∗ . . . vk ) , esto es, B(y) =

Z

1

B ∗ (y − t)dt =

0

(2)

=

Z

y

−∞

Z

y

B ∗ (t)dt

y−1

B ∗ (t) − B ∗ (t − 1)dt .

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 , . . . , vr∗ , . . . , vk generan IRs para r = 1, . . . , s, entonces B(x|v1 . . . vk ) es continuo y su derivadas direccionales se pueden escribir como una combinaci´ on de trasladados de los box splines B(x|v1 . . . vr∗ . . . vk ). Aplicando este argumento repetidamente se obtiene B(x) es r veces continuamente diferenciable si todos los subconjuntos 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 C 1 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 ]| .

umero finito, digamos m, de subconComo Zs se puede descomponer en un n´ juntos de la forma i + [v1 . . . vs ]Zs , vea la Figura 17.5, se tiene que X B(x−i|v1 . . . vs ) = mγ . s i∈Z

Como

R1 0

mγdt = mγ, se obtiene que mγ

=

X

B(x−i|v1 . . . vk )

s

i∈Z

=

X

B(x−i|e1 . . . es v1 . . . vk ) ,

s

i∈Z

´ltima suma es donde ei es el i-´esimo vector unitario. Finalmente, por (4) la u 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 X ci B(x − i) s(x) = s i∈Z

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 control 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 ]| = 6 1. Como el box spline no depende del orden de los vi , esta secuencia es linealmente dependiente si existe una subsecuencia inde6 1. El rec´ıproco tambi´en es pendiente vi1 . . . vis tal que |det[vi1 . . . vis ]| = 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 submatriz [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 X ∇vk ci B(x−i|v1 . . . vk−1 ) , (5) Dvk s(x) = s i∈Z

donde ∇v ci = ci −ci−v . Es m´ as, si para todo j = 1, . . . , k las k −1 direcciones v1 , . . . , vj∗ , . . . , vk generan IRs , entonces B(x) es continua, como se demuestra en 17.3 y sus trasladados generan los polinomios lineales. En particular, si 1 mi = i + (v1 + · · · + vk ) 2

denota el centro del soporte suppB(x − i), entonces X mi B(x − i) = x . (6) s i∈Z

De hecho, por simetr´ıa, esta ecuaci´on se verifica para x = mo para todo j = 1, . . . , s y se tiene X Dvj mi B(x − i) = vj . Como la representaci´on box spline es afinmente invariante, para todo polinomio lineal l(x) se tiene X l(x) = l(mi )B(x − i . Nos referimos tambi´en a esta propiedad como la precisi´ on lineal de la representaci´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 ˆi = trasladados de la caja escalada βˆ = β/2 generada por las direcciones u ui /2. En [Prautzsch ’84a] se usa esta observaci´on para probar que la “sombra” no normalizada Mβ (x) = volk−s (π −1 x ∩ β) de β bajo la proyecci´ on de π : [t1 . . . tk ]t 7→ [t1 . . . ts ]t

247

17.6. Subdivisi´ on de superficies box spline

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 X c1i B(x − i) s(x) = s i∈Z

con B(x) = B(x|v1 . . . vk ) tambi´en tiene una representaci´on m´as “fina” X c2i B(2x − i) . s(x) = s i∈Z

Los nuevos puntos de control c2i pueden ser calculados iterativamente a partir de los puntos de control iniciales c1i por medio de la relaci´on de recurrencia  o 6∈ Zs , d0 (i) = si i/2 1 ci/2 ∈ Zs  1  r−1 d (i) + dr−1 (i − vr ) , r = 1, . . . , k , dr (i) = 2

c2i

2s dk (i) .

=

Para la prueba se puede utilizar una t´ecnica similar a la presentada en ˆ r−1 ur . . . uk ][0, 1)k [Prautzsch ’84a]: se subdivide cada caja βr−1 = [ˆ u1 . . . u ˆ r + βr . Las sombras asociadas satisfacen en βr y u ˆr ) , Mβr−1 (x) = Mβr (x) + Mβr (x − v ˆ r = vr /2. Dividiendo esta ecuaci´ donde v on por volβr−1 = 2 volβr , se obtiene Br−1 (x) =

 1 ˆr ) , Br (x) + Br (x − v 2

ˆ r vr+1 . . . vk ). Usando esta identidad repetidadonde Br (x) = B(x|ˆ v1 . . . v mente y la relaci´on ˆ k ) = 2s B(2x|v1 . . . vk ) B(x|ˆ v1 . . . v resulta s(x)

=

X

s

i∈Z

=

X

s

i∈Z

c1i B0 (x − i)

dr (i)Br (x − i/2) ,

r = 0, 1, . . . , k ,

248

17. Box splines

o sea s(x) =

X

s

i∈Z

c2i B0 (2x − i) ,

lo cual concluye la prueba. ✸ 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 dsi = c1⌊i/2⌋ y cada punto c2i es una combinaci´ on convexa de los puntos iniciales c1i . 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 X cm s(x) = i B(mx − i) , s i∈Z s k donde los “puntos” cm es i = m d (i) se pueden calcular sucesivamente a trav´ de las f´ormulas  o 6∈ Zs , y si i/m d0 (i) = c1i/m ∈ Zs

dr (i)

=

m−1 1 X r−1 d (i − lvr ) , m

r = 1, . . . , k .

l=0

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 presentada arriba, muestra que cada punto de control cm j depende de los puntos de control c1i , 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)

1 kcm j k ≤ h sup kci k . s i∈Z

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

249

17.7. Convergencia bajo subdivisi´ on

β/(mn) es u ´nica, los puntos de control cmn resultantes se pueden calcular a i partir de los c1i 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 X cm donde B(x) = B(x|v1 . . . vk ) , s(x) = i B(mx − i) , s i∈Z

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{k∇vr c1i k, i ∈ Zs

y

v1 , . . . , vr∗ , . . . , vk

generan

IRs } .

Entonces se tiene el siguiente teorema Si [v1 . . . vk ]Zk = Zs , entonces kcm i − s(x)k ≤ 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 . . . vi∗ . . . vk ]Zk−1 = Zs y que B(x|v1 . . . vk ) sea diferenciable.

Para la prueba ordenamos v1 , . . . , vk de manera que v1 , . . . , vr∗ , . . . , vk generan IRs si y s´ olo si r ≥ q para alg´ un q ∈ {1, . . . , k + 1}. Entonces IRs es la suma directa IRs = v1 IR ⊕ · · · ⊕ vq−1 IR ⊕ [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 . . . vr∗ . . . 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

m Por lo tanto, si cm i y ck 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

v1 Z ⊕ . . . vq−1 Z ⊕ [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 ∇v cm i se puede expresar como una suma de , r = q, . . . , k. Entonces para terminar la prueba es sufidiferencias ∇vr cm i . 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 k∇vr cm i k ≤ hM/m , s

i∈Z

lo cual termina la prueba. ✸ En caso contrario, cuando [v1 . . . vk ]Zk 6= 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 un j ∈ J = i+[v1 . . . vs ]Zs yace en [v1 . . . vk ]Zk . [v1 . . . P vk ]Zk , entonces ning´ 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 X cm B(x) = i B(mx − i) . s i∈Z

La derivaci´ on geom´etrica del algoritmo de 17.6 demuestra que cm i 6= 0 si y s´ olo si i ∈ [v1 . . . vk ]Zkm .

Entonces, si [v1 . . . vk ]Zk 6= Zs o J 6= ∅, 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.

251

17.8. Half-box splines

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 constante  1 si x ∈ ∆ H∆ (x|) = 0 en caso contrario y  1 si x ∈ ∇ H∇ (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, Z 1 H∆ (x|v3 . . . vk ) = H∆ (x − tvk |v3 . . . vk−1 )dt 0

y H∇ (x|v3 . . . vk )

=

Z

0

1

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|e1 e2 v3 . . . vk ), inclusive para k = 2. La Figura 17.6 ilustra dos half-box splines C 1 . 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 Z H(x)dx = 1/2 . IR2

252

17. Box splines

Figura 17.6: Dos half-box splines C 1 c´ubicos por trozos. Cualesquierea k direcciones independientes u1 , . . . , uk ∈ IRk definen un halfbox spline X ϑ={ 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 volk−2 (π −1 x ∩ ϑ) . 2 volk ϑ

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 . . . vr∗ . . . vk ) − H(x−vr |v3 . . . vr∗ . . . 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. . e1 e2 . k. . e2 e3 . k. . e3 ) son continuamente diferenciables 2k − 1 veces y tienen grado ≤ 3k.

253

17.9. Superficies half-box

17.9

Superficies half-box

La suma de cualquier par de half-box splines

H∆ (x)

= H(x|e3 v3 . . . vk ) ,

H∇ (x)

= H(x|e3 v3 . . . vk )

es el box spline B(x|e1 e2 e3 v3 . . . vk ). Por lo tanto los trasladados H∆ (x − i) on de la unidad. y H∇ (x − i), i ∈ Z2 , forman una partici´

Por lo tanto cualquier superficie half-box spline X ∇ (c∆ s(x) = i H∆ (x − i) + ci H∇ (x − i)) 2 i∈Z

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∆ angulos asociados i + ∆ i y cj cuyos tri´ y j + ∇ tienen una arista en com´ un, entonces obtenemos una malla hexagonal, 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, X ∗ ∇vr c∆ Dvr s(x) = i H∆ (x − i|v3 . . . vr . . . vk ) s i∈Z ∗ +∇vr c∇ i H∇ (x − i|v3 . . . vr . . . vk ) ) ,

donde ∇v ci = 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 P 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 X X H∇ (x − i) = 1/2 . H∆ (x − i) = (8) 2 2 i∈Z i∈Z

En particular, esto implica que los trasladados de H∆ y H∇ son linealmente dependientes. Adem´as, si el box spline B(x) = B(x|e1 e2 v3 . . . vk ) = H∆ (x) + H∇ (x) es continuo, entonces a partir de (6) en 17.5 se obtiene X mi (H∆ (x − i) + H∇ (x − i)) = x , 2 i∈Z

donde mi es el centro de suppB(x − i). Si H∆ es continuo, usando (8) para cualquier v ∈ IR2 se tiene X ((mi + v)H∆ (x − i) + (mi − v)H∇ (x − i)) = x . 2 i∈Z ∇ Por ejemplo, si v = (e1 − e2 )/6, los puntos m∆ i = mi + v y mi = 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 X ∇ (l(m∆ l(x) = i )H∆ (x − i) + l(mi )H∇ (x − i)) . 2 i∈Z

Nos referimos a esta propiedad como precisi´ on lineal de la representaci´on half-box spline. Observaci´ on 11: Cualquier superficie half-box spline X ∇ (c∆ s(x) = i H∆ (x − i) + ci H∇ (x − i)) 2 i∈Z

17.10. Ejercicios

255

∇ Figura 17.8: La malla hexagonal de “centros” m∆ i y mi .

tambi´en tiene una representaci´on “m´as fina” X ∇ (d∆ s(x) = i H∆ (mx − i) + di H∇ (mx − i)) 2 i∈Z

para cualquier m ∈ IN. En particular, para m = 2k , k ∈ IN, los nuevos ∇ puntos de control d∆ i y di (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 di 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 diferenciable. Dado un polinomio c(x) de grado total d ≤ r + 1 demuestre por inducci´ on sobre k que X c(i)B(x − i) s(x) = s i∈Z

tambi´en es un polinomio de grado d. Use la f´ormula (5) de 17.5

256

17. Box splines

2 Bajo lasPmismas condiciones del Ejecicio 1 verifique que la aplicaci´ on c(x) 7→ 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 ), olo si [v1 . . . vk ] es unimodular. i ∈ Zs es linealmente independiente si y s´

4 Verifique la siguiente relaci´on de recurrencia para box splines k

B(x|v1 . . . vk )

=

1 X (αr B(x|v1 . . . vr∗ . . . vk ) k − s r=1

+(1 − αr )B(x − vr |v1 . . . vr∗ . . . vk )),

Pk donde x = r=1 αr vr . 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 C 1 , 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 hexagonal 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. P 6 Dada una superficie cu´ artica C 2 con representaci´on box spline i∈Z2 ci B(x − i|e1 e1 e2 e2 e3 e3 ) 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

257

17.10. Ejercicios

continuaci´on se usa la m´ ascara ilustrada en la Figura 17.10 para calcular 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 c1i 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.   1 0 1 −1 . Verifique que los puntos c2i 10 Sea k = 4 y [v1 . . . vk ] = 0 1 1 1 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 c1i c1i−v1 y c1i c1i−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 c2i . 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 Simplex 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 proyectando 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, respectivamente.

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  1 si x ∈ σ Mσ (x) = χσ (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 dimensi´ 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. ✸ 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 Z Z M (x)f (x)dx = f (πy)dy . σ IRs σ

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

Z

Mσ (x)dx = volk σ , IRs 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, Z M (x|a0 . . . ak )dx = 1 . IRs Observaci´ on 3: Las propiedades de suavidad establecidas en 18.2 caracterizan 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 N (x|a0 . . . ak ) , ak − a0

donde suponemos que [a0 , ak ] es el soporte.

263

18.4. Inserci´ on de nodos

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 X

αi ai ,

1=

k X

αi ,

i=0

i=0

un nodo “nuevo”, el cual consideraremos como la proyecci´on del punto X pk+1 = αi pi

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 X

(signαi )Mσi .

i=0

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. P Para la prueba considere un punto y = ηi pi y sean ηk+1 = 0 y αk+1 = −1. Entonces, para cualquier λ ∈ IR se tiene la ecuaci´ on y=

k+1 X 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 6= 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α0 Mσ0 + · · · + signαk Mσk y concluye la prueba. ✸ Si se normaliza la expresi´ on anterior obtenemos la f´ ormula de inserci´ on de nodos (1)

M (x|a0 . . . ak ) =

k X

αi M (x|a0 . . . a∗i . . . ak+1 )

i=0

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.

265

18.5. Una relaci´ on de recurrencia

18.5

Una relaci´ on de recurrencia

Si el nuevo nodo insertado ak+1 coincide con x, entonces la f´ormula de inserci´ 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 X

ξi M (x|x a0 . . . a∗i . . . ak ) ,

i=0

donde x =

P

ξi ai y 1 =

P

ξ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 “simplex base” ρ, definido por los v´ertices p1 , . . . , pk yace en el hiperplano ortogonal 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 h · volk−1 ρ k

y

1 h · volk−s−1 (ρ ∩ π −1 x) k−s tal como se ilustra en la Figura 18.6 para k = 3 y s = 1. volk−s (σ0 ∩ π −1 x) =

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 M (x|a1 . . . ak ) . k−s

266

18. Simplex splines

Entonces hemos deducido la relaci´ on de recurrencia de Micchelli k

(2)

M (x|a0 . . . ak ) =

k X ξi M (x|a0 . . . a∗i . . . ak ) , k − s i=0

Esta relaci´on representa un simplex spline con k + 1 nodos como una combinaci´ 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  k . . as ) = . . a0 . . . as i.s +1 M (x|a0 i.0 +1

s

vols ∆

Bik−s (u) ,

donde i = (i0 . . . is ), k = i0 + · · · + is + s, ∆ denota el simplex a0 . . . as y u 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 ,

267

18.6. Derivadas

P P P donde x0 = αi pi con αi = 1, representa un punto y v = νi pi con P ν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 M˙ i = M (x| a0 . . . a∗i . . . ak ), X (3) M˙ = k νi M i .

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¯0 , . . . , a ¯k en ciones bajo π : [x1 . . . xk−1 ]t 7→ [x1 . . . xs ]t de ciertos puntos a IRk−1 . Se obtiene   Z Z x k−s−1 ¯ k )dy . (4) M (x|a0 . . . ak ) = ... M( |¯ a0 . . . a y IR IR

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   Z Z d d x k−s−1 ¯k )dy . M( |¯ a0 . . . a ... M (x|a0 . . . ak ) = y dt dt IR IR

Aplicando (3) al integrando y usando (4) se obtiene la expresi´on para M˙ dada por (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 k k X (νi Mi + ξi M˙ i ) . M˙ = k − s i=0

Por (3) ´esto es equivalente a la f´ormula k

M˙ =

k X ˙ 1 ˙ ξi Mi , M+ k − s i=0 k−s

lo cual se puede transformar en la relaci´ on de recurrencia para la derivada [Micchelli ’80] k

X d k d ξi M (x|a0 . . . a∗i . . . ak ) . M (x|a0 . . . ak ) = k − s − 1 i=0 dt dt

268

18. Simplex splines

18.7

Ejercicios

1 El volumen de un simplex q0 . . . qk−s en IRk−s est´ a dado por   1 q0 . . . qk−s det volk−s [q0 . . . qk−s ] = . 1 ... 1 (k − s)!

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.

v v

p3

p1 v p2 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]. k

M (x|a0 . . . ak ) =

1 X M (x|a0 a1 . . . ai ai . . . ak ) . k + 1 i=0

19 Splines multivariados

19.1 Generalizaci´ on del algoritmo de de Casteljau — 19.2 B-polinomios y Bparches — 19.3 Precisi´ on lineal — 19.4 Derivadas de un B-parche — 19.5 Bsplines 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 manera 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 univariados y muchas de las propiedades de estos u ´ltimos 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 interpretados 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 algoritmo 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) denotamos 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 u ´ltimos 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¯ c[¯ trol c[0¯ 0], c[¯ 0¯ 1], c[¯ 11], c[¯ 1¯ 2], c[22], 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 a0i , . . . , 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 superficie polin´ omica s-variada c(x) con forma polar c[x1 . . . xs ] est´ a completamente definida por sus B-puntos ci = c[a00 . . . ai00 −1 . . . a0s . . . aiss −1 ] , donde i = [i0 . . . is ] ∈ ∆n y

∆n = {i|i ∈ Zs+1 , o ≤ i, i0 + · · · + is = n} .

Concretamente c(x) se puede calcular a trav´es de la relaci´on de recurrencia cj = ξ0 cj+e0 + · · · + ξs cj+es

j

∈ ∆ = ∆n−1 ∪ · · · ∪ ∆0 ,

271

19.2. B-polinomios y B-parches donde ξk son las coordenadas baric´entricas de x con respecto al simplex Sj = [aj00 . . . ajss ] y ek denota el k-´esimo vector unitario de IRs+1 . Esto significa que cj = c[a00 . . . a0j0 −1 . . . a0s . . . asjs −1 x . . . x]

y que los nodos est´ an en posici´ on general si todos los simples Sj son no degenerados. Observaci´ on 1: Si c(x) es cuadr´atico, entonces sus puntos de B´ezier bi sobre el simplex So satisfacen bei +ej = cei +ej

para todo i 6= j ,

y bei +ei yace en el plano generado por los puntos cei +ej , 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 ci , |i| ∈ ∆n . En particular, si los puntos de control est´ an dados por  1 si i = k ci = , i ∈ ∆n , 0 en caso contrario

los polinomios Ckn (x), a valores reales, forman una base para el espacio vectorial 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 polinomio c(x) de grado ≤ n se puede representar X c(x) = ci Cin (x) , i∈∆n

donde ci est´ a definido en 19.1. Adem´as, como el n´ umero de polinomios Cin n+s coincide con la dimensi´on s del espacio de los polinomios de grado total ≤ n, tenemos que ´estos son linealmente independientes.

Los polinomios Cin , los denominaremos B-polinomios y la representaci´on anterior de c(x), como una combinaci´ on lineal de los B-polinomios, se denomina 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: X Cin (x) = 1 , i∈∆n

• son positivos para todo x del interior de la intersecci´ on Γ, de todos los simples Sj , |j| ≤ n − 1, • satisfacen la relaci´ on de recurrencia Cin (x) =

s X

ξk Cin−1 −ek (x) ,

k=0

donde ξk es la k-´esima coordenada baric´entrica de x con respecto a Si−ek y Cj = 0 si j tiene alguna coordenada negativa. La intersecci´on Γ de los simples Sj , j ≤ 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 combinaci´ on af´ın de los puntos ci . 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 ci pues los B-polinomios son no negativos sobre Γ. Observaci´ on 2: Si todos los nodos de cada cadena son iguales, es decir, So = Sj para todo j, entonces los B-polinomios Cin coinciden con los polinomios de Bernstein Bin sobre el simplex So 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 Bparche de grado n con respecto a los nodos aji introducidos en 19.1. Como

273

19.4. Derivadas de un B-parche la forma polar de x es x[x1 . . . xn ] =

1 (x1 + · · · + xn ) , n

sus B-puntos son xi =

1 0 (a + · · · + ai00 −1 + · · · + a0s + · · · + asis −1 ) . n 0

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 ci = c(xi ). 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   X x , donde c(x) = ci Cin (x) . c(x) = c(x)

´ Esto es, los B-puntos de c(x) son ci = [xti ci ]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 X c(x) = ci Cin (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 An−e tiene una representaci´on como un B-parche de grado n − 1 con respecto a la secuencia de nodos An−2e . Esta representaci´on depende de los puntos ci de una manera elemental. Sea ∆x una direcci´on cualquiera de IRs y denotemos por c˙ (x) =

d c(x + t∆x)|t=0 dt

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˙cj = nc[∆x a00 . . . ai00 −1 . . . a0s . . . aiss −1 ] ,

j

∈ ∆n−1 .

Expresando ∆x con respecto a Sj , es decir, rescribiendo ∆x como ∆x =

s X

νk ajkk ,

0=

s X

νk ,

k=0

k=0

y usando que las formas polares son multiafines, se obtiene c˙ j =

s X

k=0

νk cj+ek .

275

19.5. B-splines multivariados La Figura 19.6 ilustra el caso s = n = 2.

Figura 19.6: Las diferencias c˙ j . Observaci´ on 4: Sean xi los B-puntos del polinomio identidad p(x) = x con respecto a los nodos aik . Entonces, podemos pensar en la B-malla de c(x) como una colecci´on de parches lineales cj (x) =

s X

γk cj+ek ,

k=0

j

∈ ∆n−1 ,

sobre los simples xj+e0 . . . xj+es , donde γ0 , . . . , γs son las coordenadas baric´entricas de x respecto a xj+e0 . . . xj+es . Como γ˙ k = nνk , la derivada direccional de cj (x) en la direcci´on ∆x es n˙cj 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 Ci , i ∈ ∆n , est´ an definidos con respecto a los nodos a00 , . . . , an−1 , . . . , a0s , . . . , an−1 . s 0 Si se agregan s + 1 nodos a0n , . . . , asn demostraremos que los simplex splines normalizados Ni =

vol Si M (x|Ai ) , ( n+s s )

i

∈ ∆n ,

276

19. Splines multivariados

Figura 19.7: La derivada direccional de una B-malla para n = s = 2. con la secuencias de nodos Ai = a00 . . . ai00 . . . a0s . . . aiss coinciden con los B-polinomios Ci (x) para todo \ x ∈ Ω = interior ( Sj ) . j∈∆0 ∪···∪∆n

Este resultado fue probado en [Dahmen et al. ’92]. alogas Los splines Ni son B-splines multivariados y tienen propiedades an´ a las de los splines univariados. De hecho, si s = 1, los B-splines Ni (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  1 si x ∈ So No0 (x) = 0 en caso contrario , Nj (x) =

s X vol Sj j + s σjk vol Sjk  M (x|Aj−ek ) , j+s σj vol Sj s s k=0

j = |j| ,

donde Sjk se obtiene a partir de Sj reemplazando ajkk por x. Las orientaciones −1 y +1 de las secuencias Sj y Sjk se denotan por σj y σjk , respectivamente.

Como ambos simples, Sj y Sj−ek , contienen a Ω, sus orientaciones son iguales

277

19.6. Combinaciones lineales de B-splines y la ecuaci´ on anterior es equivalente a Nj (x)

(1)

s X

σjk

vol Sjk Nj−ek (x) k σ vol S j − e k j−ek k=0 s X = ξjk−ek Nj−ek (x) ,

=

k=0

donde ξjk−ek es la k-´esima coordenada baric´entrica con respecto a Sj−ek . Para que todos los t´erminos est´en bien definidos, para jk = 0, convenimos ξjk−ek

(2)

Nj−ek (x)

= σjk vol(Sjk )/σj , σj−ek vol (Sj−ek ) = 1 1  M (x|Aj−ek ) . = j+s−1

y

s

Entonces, si jk = 0, tenemos que Nj−ek es un simplex spline sobre la secuencia de nodos Aj−ek , la cual no contiene ning´ un nodo de la k-´esima nube a0k . . . ank . Su soporte tiene intersecci´ on vac´ıa con Ω, lo cual probamos a continuaci´ on. apsula convexa de los nodos Aj−ek . Por lo tanto El soporte de Nj−ek es la c´ 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 a0i , . . . , 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 Sk , para los cuales o ≤ k ≤ j, entonces tambi´en est´a contenido en cualquier simplex a0 a01 . . . a0s . Repitiendo este razonamiento se demuestra que el abierto Ω est´a contenido en el simplex a0 . . . as , lo cual implica que Ω y el soporte de Nj−ek son disjuntos. Por lo tanto para todo x ∈ Ω la recurrencia para los B-splines Nj coincide con la recurrecia para los B-polinomios Cj . Luego, Ni (x) = Ci (x) para todo x ∈ Ω. ✸

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.

on IRs y denotemos por K ⊂ Sean a0k , k ∈ Z, los v´ertices de una triangulaci´ s+1 Z el conjunto de ´ındices para los splines.

a0k0 . . . a0ks ,

k

= [k0 . . . ks ] ∈ K ,

de la triangulaci´on. Supongamos adem´as que cada uno de estos v´ertices pertenece a una cadena a0k . . . ank , y denotamos por Skj al simplex ajk00 . . . ajkss

278

19. Splines multivariados

y por Akj la secuencia de nodos a0k0 . . . ajk00 . . . a0ks . . . ajkss ,

donde

k

Finalmente, supondremos que para todo Ωk = interior

∈ K,

y

j

∈ ∆0 ∪ . . . ∆n−1 .

∈ K la intersecci´on \ Skj

k

j∈∆0 ∪···∪∆n

es no vac´ıa y como en 19.5, denotamos por Nki el B-spline multivariado definido sobre la cadena de nodos Aki . Cualquier combinaci´ on lineal s(x) =

X X

cki Nki (x)

k∈K i∈∆n

de los B-splines Nki conforman una superficie C n−1 polin´omica por trozos de grado total ≤ n si los nodos est´ an en posici´on general. Los coeficientes cki 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 ∈ K. Estas son las B-mallas de los segmentos polin´ omicos s(x), x ∈ Ωk .

Figura 19.8: La malla de control de un spline cuadr´atico bivariado sobre dos tri´ angulos.

Decimos que los puntos de control cki ,

k

∈K ,

i

∈ ∆n ,

279

19.7. Una relaci´ on de recurrencia

forman una malla conexa, si para cualesquiera dos simples adyacentes Sko y Sko es de un cambio adecuado de ´ındices de manera que ¯ , despu´ k0 6= k¯0

[k1 . . . ks ] = [k¯1 . . . k¯s ] ,

y

los puntos de control cki y cki ¯ son iguales para todos los i0 = 0.

19.7

i

, para los cuales

Una relaci´ on de recurrencia

Si el spline s(x) =

XX i

k

cki Nki (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 combias precisamente, naci´on de B-splines Nkj de grado |j| = n − 1. M´ X X (3) s(x) = dkj Nkj (x) , k∈K j∈∆n−1

donde dkj =

s X

l ξkj c k , j+ e l

l=0

0

s

y ξkj , . . . , ξkj son las coordenadas baric´enticas de x respecto a Skj . Para la prueba aplicamos la relaci´ on de recurrencia (1) de 19.5 a los B-splines Nki , obteni´endose s(x) =

s XXX

k

i l=0

ξkl ,i−el cki Nk,i−el .

Esta suma envuelve t´erminos ck,j+el Nkj , 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 k = [0 . . . s]. Adicionalmente podemos suponer ¯ = [−1 1 . . . s] est´ a tambi´en en K. Por lo tanto los simples Sk0 y Sk¯ 0 que k tienen orientaciones opuestas, es decir,

kj,

σko = −σko . ¯

280

19. Splines multivariados

Por aplicaciones sucesivas del argumento usado para deducir (1) se obtiene σk,j = −σk¯ ,j y consecuentemente 0 0 = −ξkj ξkj ¯ .

Como la malla de control es conexa y Nkj = Nkj ¯ , vea (2), se obtiene 0 0 ck,j+e0 Nkj + ξkj ξkj ¯ ,j+e0 Nkj ¯ =0 , ¯ ck

lo cual concluye la prueba. ✸

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 recurrencia, 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 multivariados 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) XX s(x) = cki Nki (x) k∈K i

a dada por de grado n = |i| con una malla de control conexa est´

XX d c˙ kj Nkj (x) , s(x + t∆x)|t=0 = n dt k∈K j∈∆

donde c˙ kj =

s X

νl ck,j+el

l=0

y ν0 , . . . , νs son las coordenadas baric´entricas de la direcci´on ∆x con respecto al simplex Skj . V´ease tambi´en 19.4. Observaci´ on 5: Como ya se observ´o en 19.4 las direcciones c˙ kj est´an relacionadas con las derivadas respecto a ∆x de las mallas de control ckj (x) de s(x) sobre los simples xk,j+e0 . . . xk,j+es .

281

19.9. El teorema fundamental

19.9

El teorema fundamental

En esta secci´ on usamos la notaci´on de 19.6 y suponemos que los primeros r nodos a0k , . . . , akr−1 de cada nube de nodos son iguales. Tomando en cuenta que los simples Sko forman una triangulaci´on de IRs probaremos que cualquier funci´on polin´ omica por trozos, con continuidad C n−r sobre esta triangulaci´on es una combinaci´ on lineal de los B-splines Nki . En segundo lugar, expresaremos 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 Sko coincide con un polinomio sk (x) de grado ≤ n. Entonces la versi´on multivariada del teorema principal de 5.5 tiene la siguiente formulaci´on [Seidel ’92]: El spline s(x) se puede expresar como X X (4) s(x) = sk [Ak,i−e ]Nki (x) , k∈K i∈∆n

donde sk [x1 . . . xn ] es la forma polar de sk . La prueba de este teorema es por inducci´on sobre n − r. Si n − r = −1, entonces los B-splines Nki son los polinomios de Bernstein sobre Sko . 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 X X Ds(x) = Dsk [Ak,j−e ]Nkj (x) . k∈K j∈∆n−1

En 11.6 demostramos que la forma polar de Dsk se puede experesar en t´erminos de la forma polar de sk , esto es Dsk [Ak,j−e ]

= nsk [∆x Ak,j−e ] s X = n νl sk [Ak,j−e+el ] , l=0

donde ν0 , . . . , νs son las coordenadas baric´entricas de ∆x con respecto a Skj . Por la Observaci´on 7 in 11.7 los puntos de control sk [Ak,i−e ] forman una malla conexa. Entonces 19.8 implica que XX D sk [Ak,i−e ]Nki = Ds k

i

Por lo tanto (4) se verifica, salvo una constante. Pero como (2) es cierto sobre Ωk , (vea 19.4 y 19.5), esta constante es cero, lo cual concluye la prueba. ✸

282

19. Splines multivariados

En particular se tiene que los B-splines froman una partici´ on de la unidad X X Nki = 1 . k∈K i∈∆n

El polinomio identidad p(x) = x tiene puntos de control xki =

1 Aki e . n

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 secuencia de cadenas de nodos An = a00 . . . ans en IRs y cualquier polinomio p(x) de grado n, considere las dos representaciones por B-parches X p(x) = pi Cin (x) i∈∆n

y

p(x) =

X

k∈∆n+1

pk Ckn+1 (x)

con respecto a An−e y An , respectivamente. Exprese los puntos de control pk como combinaciones afines de los puntos pi . 2 Encuentre un algoritmo que permita rescribir un spline sobre la triangulaci´on Sk,o , k ∈ K, definida en 19.9 con nodos a0k = · · · = akr−1 , de multiplicidad r, como una combinaci´on lineal de B-splines con nodos de multiplicidad r + 1, a0k = · · · = ark . 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 Sko , k ∈ K, definida en 19.9. 5 Sea An = [a00 . . . ans ] la matriz de s+1 cadenas, cada una con n+1 nodos y denotemos por xi = n1 Ai e, sus abscisas de Greville. V´ease la Observaci´ on 3 de 19.3. Decimos que los puntos xj est´an bien posicionados si todos los simples, xj+e0 . . . xj+es , j ∈ ∆n−1 tienen interiores disjuntos. Demuestre que los xi est´an bien posicionados si cualquier nodo aµν se puede expresar como

aµν = aµ0 +

s X

k=0

αk ak0 ,

19.10. Ejercicios

283

donde 0 = α0 + · · · +αs y |α0 |, . . . , |αs | < 1/2. V´ease tambi´en [Prautzsch ’97, Teorema 4.2]. 6 Sea An , n0 = n1 = n2 = 2, una secuencia de nodos con abscisas de Greville bien posicionadas. Demuestre que cualquier polinomio cuadr´atico bivariado (a valores en IR2 ) es convexo sobre IR2 si la malla de su Bparche, con respecto a An , es convexa. Vea 10.6 y las Figuras 10.6 y 19.5. 7 Sea An una secuencia de nodos en IR2 con abscisas de Greville bien posicionadas. Demuestre que cualquier polinomio cuadr´atico bivariado, a valores en R, es convexo sobre el dominio Ω, definido en 19.5 si su Bmalla con respecto a An 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. ComputerAided 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 Geometric 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, Wiesbaden 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 Schumaker, 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, Philadelphia, 1987. ¨ llig (1982). Recurrence relations for multivariate C. de Boor and K. Ho B-splines. Proceedings of the American Mathematical Society, 85(3). ¨ llig, and S. Riemenschneider (1993). Box Splines. C. de Boor, K. Ho Applied Mathematical Sciences 98. Springer, New York. M. do Carmo (1976). Differential Geometry of Curves and Surfaces. Prentice Hall, Englewood Cliffs, New Jersey, 1976. J.M. Carnicer and W. Dahmen (1992). Convexity preserving interpolation 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). Stationary subdivision. Memoirs of the American Mathematical Society, 93(453):1–186. G.M. Chaikin (1974). An algorithm for high-speed curve generation. Computer 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 Geometric Design, 5:259–268. A.D. DeRose, R.N. Goldmann, H. Hagen, and S. Mann (1993). Functional composition algorithms via blossoming. ACM Transactions on Graphics, 12:113–135. D.W.H. Doo and M.A. Sabin (1978). Behavior of recursive division surfaces 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 binary subdivision schemes for curve design. Constructive Approximation, 7:127–147. N. Dyn, D. Levin, and J.A. Gregory (1987). A 4-point interpolatory subdivision scheme for curve design. Computer Aided Geometric Design, 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. ComputerAided Design, 27 (11):845–853. G. Farin (1979). Subsplines u ¨ber Dreiecken. Diss., TU Braunschweig, Germany, 1979. G. Farin (1982). Visually C 2 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 Design. 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 Analysis, 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 Datenverarbeitung. B.G. Teubner, Stuttgart, second edition. English translation: 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., Universit¨ at Karlsruhe, 1994. √ L. Kobbelt (2000). 3-Subdivision. Proceedings of SIGGRAPH 2000, Academic 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 surfaces. IEEE Transactions on Pattern Analysis and Machine Intelligence, 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 computing 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 Mountain 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 Analysis, 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 control 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 multivariate 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 smoothing 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 approximations 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). Preprint, 2002.

B-splines with arbitrary connection matrices.

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 C k -piecewise polynomial 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, California, 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 extraordinary vertices. Computer Aided Geometric Design, 12:153–174. U. Reif (1996). A degree estimate for subdivision surfaces of higher regularity. 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 differential equations and their applications. Russian Math. Surveys, 45:87– 120. M.A. Sabin (1977). The use of piecewise forms for the numerical representation 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 polynomial 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. Mathematical 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 Computational and Applied Mathematics, 102(1):157–180. ¨rk (1976). Mehrfach differenzierbare B´ezier-Kurven und B´ezierE. Sta Fl¨ achen. Diss., TU Braunschweig, 1976. W. Trump (2001). Neue Algorithmen zur Graderh¨ oung und Umparametrisierung von B´ezier- und B-Spline-Darstellungen. Diss., Universit¨at Karlsruhe, 2001. W. Trump and H. Prautzsch (1996). Arbitrary degree elevation for simplicial B´ezier polynomials. Computer Aided Geometric Design, 13:387– 398.

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

Indice convexa, 12, 14, 64, 145, 245 conexi´on C r 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 C 1 , 179 general C k , 189 general GC r , 92 geom´etrica G1 , 179 simple C r , 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 subdivisi´ 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 C r -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 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 N j−1 con N 0 , 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

297 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

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

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

Hagen, 167 half-box spline, 251 normalizados, 251 superficies, 253 Half-box splines sobre mallas triangulares, 221 Hoschek, 52 H¨ ollig, 249, 256

γ-A-marco, 95 γ-spline, 95, 108 Goldman, 167 Gordon, 65 graficaci´ on programa de, 30 Grandine, 151 Gravesen, 41 Gregory, 118, 222

identidad de Marsden, 70, 75 inserci´on de nodos, 77, 105, 263 repetida de nodos, 78 integral de una curva polin´omica, 19 intercambio

299

Indice entre formas monomial y de B´ezier, 131 interpolaci´ on, 43, 84, 169 C 1 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 ν-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

Indice 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 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

301 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 simplex splines, 259 sombras de simples, 259 soporte, 260 soporte compacto, 69 spline C 1 de grado cinco de topolog´ıa arbitraria, 175 c´ ubicos, interpolaci´ on, 86 bases, 106, 107 bic´ ubico C 1 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

Indice 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 C r -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 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

303