Está en la página 1de 14

Tema 10.

Propiedades

10.1 Funciones base

10.2 Múltiples nodos

10.3 Propiedades de los b-splines

1
Funciones base

Puede calcularse que la expresión de las funciones base de una curva de Bezier de
grado 3 es:

𝑢1 , 𝑢2 :

(𝑡 − 𝑢1 )3
𝐵 𝑡 =
(𝑢2 − 𝑢1 )(𝑢3 − 𝑢1 )(𝑢4 − 𝑢1 )

𝑢2 , 𝑢3 :

𝑡 − 𝑢2 2 (𝑢5 − 𝑡) (𝑡 − 𝑢2 )(𝑡 − 𝑢1 )(𝑢4 − 𝑡)


𝐵 𝑡 = +
(𝑢5 − 𝑢2 )(𝑢4 − 𝑢2 )(𝑢3 − 𝑢2 ) (𝑢4 − 𝑢1 )(𝑢4 − 𝑢2 )(𝑢3 − 𝑢2 )

(𝑡 − 𝑢1 )2 (𝑢3 − 𝑡)
+
(𝑢4 − 𝑢1 )(𝑢3 − 𝑢1 )(𝑢3 − 𝑢2 )
2
Funciones base

La expresión de las funciones base de una curva de Bezier en los siguientes intervalos
es:

𝑢2 , 𝑢3 :

𝑢4 − 𝑡 2 (𝑡 − 𝑢1 ) (𝑢4 − 𝑡)(𝑢5 − 𝑡)(𝑡 − 𝑢2 )


𝐵 𝑡 = +
(𝑢4 − 𝑢1 )(𝑢4 − 𝑢2 )(𝑢4 − 𝑢3 ) (𝑢5 −𝑢2 )(𝑢4 − 𝑢2 )(𝑢4 − 𝑢3 )

(𝑡 − 𝑢3 )(𝑢5 − 𝑡)2
+
(𝑢5 −𝑢2 )(𝑢5 − 𝑢3 )(𝑢4 − 𝑢3 )

𝑢4 , 𝑢5 :

(𝑢5 − 𝑡)3
𝐵 𝑡 =
(𝑢5 −𝑢2 )(𝑢5 − 𝑢3 )(𝑢5 − 𝑢4 )
3
Funciones base

Propiedades de las funciones base:

𝐵(𝑡) es un polinomio de grado 3

𝐵(𝑡) es una función no negativa

𝐵(𝑡) es distinto de cero en el intervalo correspondiente

En cada intervalo hay a lo sumo 3 polinomios de grado 3

La suma de todas las funciones en cada punto es uno

4
Funciones base

Las funciones base están formadas por polinomios de


Bernstein

𝑝 𝑝 𝑝−𝑖 𝑡 𝑖
𝐵𝑖 𝑡 = 1−𝑡
𝑖
𝑝 𝑝!
donde 𝑖
=
𝑝−𝑖 !∙𝑖!

Si generalizamos a un intervalo [𝑢𝑖 , 𝑢𝑖+1 ]

𝑝 𝑝 𝑝−𝑖 (𝑡
𝐵𝑖 𝑡 = 𝑢𝑖+1 − 𝑡 − 𝑢𝑖 )𝑖
𝑖
5
Funciones base

Fuente: Bézier and splines in image processing and machine vision, Biswas, S.
and Lovell, B. C., Springer 2008 6
Múltiples nodos

Un b-spline que contiene un nodo repetido una o más veces se puede


interpretar como un spline que contine una curva de longitud cero en un
intervalo.

La curva en ese punto pierde continuidad

Fuente: http://cagd.cs.byu.edu/ 7
Múltiples nodos

Utilidad: introducir discontinuidades

Fuente: http://cagd.cs.byu.edu/

8
Múltiples nodos

Sin nodos repetidos

Con nodos repetidos

9
B-splines cerrados

B-splines cerrados

Se pueden construir b-splines cerrados de forma análoga.

Hay que hacer coincidir los primeros g puntos con los últimos g
nodos y hacer lo mismo con los puntos de control.

Se puede empezar desde cualquier nodo

10
Fuente: http://cagd.cs.byu.edu/
Unión de curvas

Se quieren unir un b-spline arbitrario y una curva de Bezier con puntos de


control

𝑃1 , 𝑃2 ,… , 𝑃𝑛−1 , 𝑃𝑛 y 𝑃𝑛 = 𝑄0 , 𝑄1 , 𝑄2 , 𝑄3

Si los puntos 𝑃𝑛−1 , 𝑃𝑛 y 𝑄1 no están alineados, entonces la continuidad de la


curva resultante en el punto de unión será 𝐶 0

Puntos de control: 𝑃1 , 𝑃2 ,… , 𝑃𝑛−1 , 𝑃𝑛 , 𝑄1 , 𝑄2 , 𝑄3


Vector de nodos: (… , 𝑘𝑖−1 , 𝑘𝑖 , 𝑘𝑖+1 , 𝑘𝑖+1 , 𝑘𝑖+1 , 𝑒, … )

11
Unión de curvas

Si queremos que sea 𝐶 1 :

| 𝑃𝑛 − 𝑃𝑛−1 𝑘𝑖+1 − 𝑘𝑖 | = | 𝑄1 − 𝑃𝑛 𝑒 − 𝑘𝑖+1 |

Puntos de control: 𝑃1 , 𝑃2 ,… , 𝑃𝑛−1 , 𝑄1 , 𝑄2 , 𝑄3

Vector de nodos: (… , 𝑘𝑖−1 , 𝑘𝑖 , 𝑘𝑖+1 , 𝑘𝑖+1 , 𝑒, … )

12
Unión de curvas

Si queremos que sea 𝐶 2 :

𝑃𝑛−2 − 𝑄2−1 𝑘𝑖+1 − 𝑘𝑖−1 𝑘𝑖+1 − 𝑒 + 𝑃𝑛−1 − 𝑃𝑛−2 𝑒 − 𝑘𝑖−1 (𝑘𝑖+1 −

Y así podemos calcular

𝑘𝑖+1 − 𝑒 𝑃𝑛−2 + (𝑘𝑖+1 − 𝑒)𝑃𝑛−1 𝑘𝑖+1 − 𝑘𝑖 𝑄2 + (𝑒 − 𝑘𝑖+1 )𝑄1


𝑃𝑎 = =
𝑘𝑖+1 − 𝑘𝑖−1 𝑒 − 𝑘𝑖
Puntos de control: 𝑃1 , 𝑃2 ,… , 𝑃𝑛−2 , 𝑃𝑎 , 𝑄2 , 𝑄3

Vector de nodos: (… , 𝑘𝑖−1 , 𝑘𝑖 , 𝑘𝑖+1 , 𝑒, … )

13
Para practicar

Matlab

bspline, spmak, fnbrk, augknt, brk2knt, …

Curve Fitting Toolbox

Mathematica

Splines

Smooth.spline, bs, …

14

También podría gustarte