Google
En toda la web
En eumed·net






B-splines con Mathematica 5.1

 

Introducción

 

 

 

L

a construcción de curvas de forma libre en un ambiente industrial se remonta a la época Romana, con la construcción naval. Las costillas de una nave producidas con tablones de madera que emanan de la quilla debían producirse con plantillas que pudieran usarse muchas veces. Esto llevó al empleo de técnicas que fueron perfeccionadas por los venecianos (siglos XIII al XVI). La forma de las costillas se definió en términos de arcos circulares tangentes continuos. El casco de la nave se obtuvo variando la forma de las costillas a lo largo de la quilla (una manifestación temprana de las superficies definidas mediante producto tensorial en la actualidad). Hasta esta época no existió ningún dibujo para definir el casco de una nave, estos se hicieron populares en Inglaterra allá por el año 1600. Y probablemente en aquella época se inventó el clásico “spline” definido como una tira flexible de madera o caucho usada para dibujar curvas lisas.

 

            En general, las curvas fueron empleadas para diseñar durante siglos; la mayoría de estas curvas eran círculos, pero algunas fueron de “forma libre”. El empleo de estas curvas parte desde el diseño de naves hasta llegar a la arquitectura. Cuando las curvas tuvieron que ser dibujadas exactamente, la herramienta comúnmente usada fue un juego de plantillas conocidas como “curvas francesas” que consisten en porciones de cónicas y espirales. Otra herramienta mecánica utilizada fue el llamado spline, tira de madera a la que se le daba cierta forma y para mantener esa forma se utilizaban pesas de metal conocidas como ducks. La contraparte matemática de un spline mecánico es una curva spline definida en forma paramétrica y que al igual que un spline mecánico se utilizó para diseñar.

 

Posteriormente, en los años cincuenta, dos matemáticos franceses (Paul de Faget de Casteljau y Pierre Bézier) trabajando en forma independiente llegaron a resultados similares descubriendo así las hoy conocidas curvas de Bézier. El descubrimiento de estas curvas fue de tal trascendencia que su uso en el diseño se adoptó a nivel mundial. Posteriormente se mejoran los resultados obtenidos con las curvas de Bézier al descubrirse su generalización: las curvas de B-splines (nombre corto para Basis Splines).

 

            Alrededor de los años sesenta, C. de Boor empezó a trabajar para los laboratorios de investigación de la General Motors usando en este trabajo los B‑splines para efectuar representaciones geométricas. Más tarde se vuelve uno de los más arduos propulsores de los B‑splines en la teoría de aproximación. La evaluación recursiva de las curvas B‑splines se debe a él y en la actualidad se conoce como el algoritmo de de Boor. Esta evaluación recursiva fue descubierta en forma independiente por de Boor, L. Mansfield y M. Cox. Gracias a esta evaluación recursiva los B-splines se convierten en una herramienta viable en CAGD, ya que antes de su descubrimiento los B-splines se definieron usando un tedioso método de diferencias divididas que era muy inestable.

 

            La programación de los B-splines en lenguajes tradicionales como Fortran, Pascal, C, etc. mediante la evaluación recursiva propuesta por de Boor está sumamente difundida. Sin embargo, a partir de la década de los ochenta con el nacimiento de los sistemas de cálculo simbólico (Mathematica, Maple, etc.) es posible avanzar un poco más y obtener las expresiones analíticas de los B-splines que resultarían útiles, en primera instancia, para fines académicos en cursos de Pre‑Grado y Post‑Grado (Maple ya incluye un paquete (CurveFitting) en el que se han implementado comandos para obtener estas expresiones).  Con la finalidad de aprovechar estas nuevas herramientas, específicamente Mathematica, es que hemos elaborado este texto en el que se plantea un algoritmo nuevo basado en el de de Boor que al codificarse en Mathematica 5.1 nos permite construir el paquete BsplinesCurves con el cual generamos las expresiones analíticas de los B-splines.