B-spline

B-spline

B-spline

En el subcampo matemático de análisis numérico, una B-spline es una función spline que tiene el mínimo apoyo con respecto a un determinado grado, suavidad, y partición del dominio. Un teorema fundamental establece que cada función spline de un determinado grado, suavidad, y partición del dominio, se puede representar como una combinación lineal de B-splines del mismo grado y suavidad, y sobre la misma partición.[1] El término B-spline fue acuñado por Isaac Jacob Schoenberg y es la abreviatura de spline básica.[2] Las B-splines pueden ser evaluadas de una manera estable numéricamente por el algoritmo de Boor.

En el subcampo de informática de diseño asistido por computadora y de gráficos por computadora, el término B-spline se refiere con frecuencia a una curva spline parametrica por funciones spline que se expresan como combinaciones lineales de B-splines (en el sentido matemático anterior). Una B-spline es simplemente una generalización de una curva de Bézier, que puede evitar el fenómeno Runge sin necesidad de aumentar el grado de la B-spline.

Contenido

Definición

Dado m valores reales ti, llamados nudos, con

t_0 \le t_1 \le \cdots \le t_{m-1}

una B-spline de grado n es una curva paramétrica

\mathbf{S}:[t_0, t_{m-1}] \to \mathbb{R}^2

compuesta por una combinación lineal de B-splines básicas bi,n de grado n


\mathbf{S}(t)= \sum_{i=0}^{m-n-2} \mathbf{P}_{i} b_{i,n}(t) \mbox{ , } t \in [t_{n-1},t_{m-n}].

Los Pi se llaman puntos de control o puntos de Boor. Hay m-(n+1) puntos de control que forman un casco convexo.

Las m-n+1 B-splines básicas de grado n se pueden definir mediante la fórmula de recursión Cox-de Boor

b_{j,0}(t) := \left\{
\begin{matrix} 
1 & \mathrm{si} \quad t_j \leq t < t_{j+1} \\
0 & \text{resto} 
\end{matrix}
\right.
b_{j,n}(t) := \frac{t - t_j}{t_{j+n} - t_j} b_{j,n-1}(t) + \frac{t_{j+n+1} - t}{t_{j+n+1} - t_{j+1}} b_{j+1,n-1}(t).

Cuando los nudos son equidistantes, la B-spline se dice que es uniforme, de otro modo seria no uniforme. Si dos nudos tj son idénticos, cualquiera de las posibles formas indeterminadas 0/0 se consideran 0.

Nótese que j+n+1 no puede exceder de m-1, lo que limita tanto a j como a n.

B-spline uniforme

Cuando la B-spline es uniforme, las B-splines básica para un determinado grado n son sólo copias cambiadas de una a otra. Una alternativa no recursiva de la definición de la B-splines m-n+1 básica es

b_{j,n}(t) = b_n(t - t_j), \qquad\; j = 0, \ldots, m-n-1

con

b_{n}(t) := \frac{n+1}{n} \sum_{i=0}^{n+1} \omega_{i,n}(t - t_i)_+^{n} \,\;

y

\omega_{i,n} := \prod_{j=0, j \neq i}^{n+1} \frac{1}{t_j - t_i} \,\;

dónde

(t - t_i)_+^n \,\;

es la función de potencia truncada.

B-spline cardinal

Si se define B0 como la función característica de [-\tfrac{1}{2}, \tfrac{1}{2}], y Bk recursivamente como el producto convolución

B_k := B_{k-1} * B_0, ~k =1, 2, \dots

entonces Bk se llaman B-splines cardinal (centrada). Esta definición se remonta a Schoenberg.

Bk tiene soporte compacto [-\tfrac{k+1}{2}, \tfrac{k+1}{2}] y es una función impar. Como k \rightarrow \infty las B-splines cardinales normalizadas tienden a la función de Gauss [4].

Notas

Cuando el número de puntos de control de Boor es el mismo que el grado, la B-Spline degenera en una curva de Bézier. La forma de las funciones base es determinada por la posición de los nudos. Escalar o trasladar el vector de nudo no altera las funciones de base.

El spline esta contenido en el casco convexo de sus puntos de control.

Una B-spline básica de grado n

b_{i,n}(t)\,\;

es distinta de cero sólo en el intervalo [ti, ti+n+1] esto es

b_{i,n}(t) = \left\{\begin{matrix} 
>0 & \text{si} \quad t_{i} \le t < t_{i+n+1} \\
0 & \text{resto} 
\end{matrix}
\right.

En otras palabras si manipulamos un punto de control cambiamos sólo el comportamiento local de la curva y no el comportamiento global como con las curvas de Bézier.

La función base se pueda obtener del polinomio Bernstein.

Ejemplos

B-spline constante

La B-spline constante es la spline más simple. Se define en un solo tramo de nudo y ni siquiera es continua en los nudos. Es sólo la función indicador de los diferentes tramos de nudo.

b_{j,0}(t) = 1_{[t_j,t_{j+1})} =
\left\{\begin{matrix} 
1 & \text{si} \quad t_j \le t < t_{j+1} \\
0 & \text{resto} 
\end{matrix}
\right.

B-spline lineal

La B-spline lineal se define en dos tramos de nudo consecutivos y es continua sobre los nudos, pero no diferenciable.

b_{j,1}(t) = 
\left\{\begin{matrix} 
\frac{t - t_j}{t_{j+1} - t_j} & \text{si} \quad t_j \le t < t_{j+1} \\
\frac{t_{j+2} - t}{t_{j+2} - t_{j+1}} & \text{si} \quad t_{j+1} \le t < t_{j+2} \\
0 & \text{resto} 
\end{matrix}
\right.

B-spline cuadrática Uniforme

B-splines cuadráticas con nudo-vector uniforme es una forma común de B-spline. La función de mezclado puede ser calculada fácilmente , y es igual para cada segmento, en este caso.

b_{j,2}(t) = \begin{cases} \frac{1}{2}t^2 \\ -t^2 + t + \frac{1}{2} \\ \frac{1}{2}(1-t)^2 \end{cases}

Puesto en forma de matriz, esto es: http://graphics.idav.ucdavis.edu/education/CAGDNotes/Quadratic-Uniform-B-Spline-Curve-Splitting/Quadratic-Uniform-B-Spline-Curve-Splitting.html

 \mathbf{S}_i(t) = \begin{bmatrix} t^2 & t & 1 \end{bmatrix} \frac{1}{2} \begin{bmatrix}
1 & -2 & 1 \\
-2 & 2 & 0 \\
1 & 1 & 0 \end{bmatrix}
\begin{bmatrix} \mathbf{p}_{i-1} \\ \mathbf{p}_{i} \\ \mathbf{p}_{i+1} \end{bmatrix}
para t \in [0,1], i = 1,2 \ldots m-1

B-spline cúbica

Una formulación B-spline para un solo segmento puede ser escrita como:

\mathbf{S}_{i} (t) = \sum_{k=0}^3 \mathbf{P}_{i-3+k} b_{i-3+k,3} (t) \mbox{ ; }\ t \in [0,1]

donde Si es el imo segmento B-spline y P es el conjunto de puntos de control, el segmento i y k es el índice del punto de control local. Un conjunto de puntos de control sería PP_i^w = ( w_i x_i, w_i y_i, w_i z_i, w_i) donde el wi es el peso, tirando de la curva hacia el punto de control Pi mientras que aumenta o se desplazan fuera de la curva, mientras que disminuye.

Toda una serie de segmentos, las curvas m-2 (S3,S4,...,Sm) definidas por m+1 puntos de control (P_0,P_1,...,P_m, m \ge 3) como un B-spline en t se definiría como:

\mathbf{S}(t) = \sum_{i=0}^{m-1} \mathbf{P}_{i} b_{i,3} (t)

donde i es el número de puntos de control y t es un parámetro global dado los valores de los nudos. Esta formulación expresa una curva B-spline como una combinación lineal de funciones B-spline básicas, de ahí el nombre.

Hay dos tipos de B-spline - uniforme y no uniforme. Una B-spline no uniforme es una curva donde los intervalos entre los puntos sucesivos de control no es, o no necesariamente es, iguald (el vector de nudos de espacios de nudo interiores no son iguales). Una forma común es donde los intervalos se reducen sucesivamente a cero, interpolando los puntos de control.

B-splines cúbica uniforme

La B-splines cúbica con vector-nudo uniforme es la forma más usual de B-spline. La función de mezcla puede ser fácilmente calculada, y es igual para cada segmento, en este caso. Puesto en forma de matriz, esto es:

 \mathbf{S}_i(t) = \begin{bmatrix} t^3 & t^2 & t & 1 \end{bmatrix} \frac{1}{6} \begin{bmatrix}
-1 & 3 & -3 & 1 \\
 3 & -6 &  3 & 0 \\
-3 & 0 & 3 & 0 \\
 1 &  4 &  1 & 0 \end{bmatrix}
\begin{bmatrix} \mathbf{p}_{i-1} \\ \mathbf{p}_{i} \\ \mathbf{p}_{i+1} \\ \mathbf{p}_{i+2} \end{bmatrix}
para t \in [0,1].

Véase también

References

  1. Carl de Boor (1978). A Practical Guide to Splines. Springer-Verlag, pp. 113–114.
  2. Carl de Boor (1978). A Practical Guide to Splines. Springer-Verlag, pp. 114–115.
Obtenido de "B-spline"

Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Spline — can refer to:* Flat spline, a device to draw curves * Rotating spline, a mating mechanism on a driveshaft. * Spline (mathematics), a mathematical function used for interpolation or smoothing. * Spline cord, a type of thin rubber cord used to… …   Wikipedia

  • Spline drive — Spline drive, is a fastener specification. A spline drive bit or socket has 12 teeth. Spline drives are sized via numbers. #5 is one common size. It is different from the 12 toothed triple square and double hex driversThe primary advantage spline …   Wikipedia

  • Spline cubique d'hermite — On appelle spline cubique d Hermite une spline de degré 3, nommée ainsi en hommage à Charles Hermite, et dont chaque polynôme Pi(x) se trouve sous la forme suivante: avec …   Wikipédia en Français

  • Spline — 〈[splaın] f. 10; EDV〉 durch Kontrollpunkte bestimmte, mit minimaler Krümmung verlaufende Kurve, die mathematisch beschreibbar ist ● Spline Interpolation [engl., „Kurvenlineal“, eigtl. „Keil; Metall , Holzfeder“] * * * Spline   [von engl. spline… …   Universal-Lexikon

  • Spline-Interpolation —   [ splaɪn ; spline englisch »Straklatte«, »Kurvenlineal«], ein mathematisches Interpolationsverfahren, bei dem durch die n Punkte der Ebene (x1, y1), (x2, y2),. .., (x …   Universal-Lexikon

  • Spline-Kurve — Spline Kurve,   in Grafik und CAD Programmen benutzte Kurven, die mithilfe mathematischer Funktionen (Splines) berechnet werden. Auf diese Weise lassen sich gegebene Punkte durch weiche gerundete Linien verbinden oder bei Animationen flüssig… …   Universal-Lexikon

  • spline — [splīn] n. [< E Anglian dial., prob. akin to Norw dial. splindra, a large, flat splinter: for IE base see SPLIT] 1. a long, flat, pliable strip, as of wood or metal, esp. one used in drawing curves 2. a) a flat key or strip that fits into a… …   English World dictionary

  • Spline — Spline, n. 1. A rectangular piece fitting grooves like key seats in a hub and a shaft, so that while the one may slide endwise on the other, both must revolve together; a feather; also, sometimes, a groove to receive such a rectangular piece.… …   The Collaborative International Dictionary of English

  • Spline — [splain] der; s, s <aus gleichbed. engl. spline, Herkunft ungeklärt> biegsames Kurvenlineal, das man zum Zeichnen einer glatten Kurve durch vorgegebene Punkte benutzt …   Das große Fremdwörterbuch

  • Spline — Spline. См. Шпонка. (Источник: «Металлы и сплавы. Справочник.» Под редакцией Ю.П. Солнцева; НПО Профессионал , НПО Мир и семья ; Санкт Петербург, 2003 г.) …   Словарь металлургических терминов

  • Spline — 〈[splaın] f.; Gen.: , Pl.: s; EDV〉 durch Kontrollpunkte bestimmte, mit minimaler Krümmung verlaufende Kurve, die mathematisch beschreibbar ist [Etym.: engl., »Kurvenlineal«, eigtl. »Keil; Metall , Holzfeder«] …   Lexikalische Deutsches Wörterbuch

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”