Buscar en este blog

domingo, 8 de mayo de 2011

Splines (2ª parte)

En esta segunda entrega dedicada a las curvas B-splines completaremos la exposición de sus propiedades más relevantes con la introducción del concepto de vector de nodos, que clasifica a las curvas B-splines en dos clases, uniformes y no uniformes. Como aplicación práctica de todo lo expuesto veremos el procedimiento a seguir para dibujar parábolas con total exactitud y pondremos de manifiesto la propiedad del control local, que probablemente sea la más importante a los efectos del diseño.


Curvas B-splines uniformes y no uniformes

En la entrega anterior de esta serie, al tratar las curvas de Bezier, vimos que los puntos de la curva se calculan cuando el parámetro u recorre el intervalo de valores comprendidos entre 0 y 1. Como las curvas B-splines se calculan por tramos, el parámetro u recorre localmente cada tramo y la curva completa se define en función de un parámetro global, t, cuyos valores determinan los intervalos de variación del parámetro local u en cada tramo de la curva. Este parámetro global se denomina vector de nodos o vector nodal.

El número de elementos del vector de nodos es igual a la suma del número de vértices del polígono de control más el orden de la curva (el número de vértices que definen cada tramo). Los elementos del vector de nodos son números enteros o reales y cada uno de ellos debe ser igual o menor que el siguiente. El valor mínimo es 0 y el máximo es igual al número de vértices menos el orden más 1.

Así, por ejemplo, el vector de nodos de una curva B-spline cuadrática (orden 3) construida a partir de un polígono de control de 6 vértices tendrá 9 elementos, cuyos valores podrían ser los siguientes:
t = { 0, 0.5, 1, 2, 2.5, 2.8, 3, 3.7, 4 }
Cuando los elementos del vector de nodos no están equiespaciados, es decir, cuando la diferencia entre un elemento y el que le precede no es la misma para todos, como sucede en el ejemplo anterior, se dice que la curva B-spline es no uniforme. Por el contrario, cuando la diferencia entre cada dos elementos consecutivos del vector de nodos es la misma, se dice que la curva B-spline es uniforme. La característica más notable de las curvas B-splines uniformes es que no pasan por los extremos del polígono de control.

Por lo tanto, las curvas que dibuja AutoCAD cuando utilizamos el comando SPLINE o aplicamos la opción Spline del comando EDITPOL (PEDIT) son B-splines no uniformes, puesto que siempre pasan por los vértices inicial y final del polígono de control o de la polilínea, respectivamente.

Aunque los valores de los elementos del vector de nodos pueden ser cualesquiera, siempre que cumplan las condiciones que hemos citado, se acordó establecer a efectos de normalización un vector de nodos estándar para las curvas B-splines no uniformes. Este vector estándar tiene sus n primeros elementos iguales a 0, siendo n el orden de la curva, los n últimos iguales al valor máximo y los intermedios equiespaciados en 1 unidad. Según esto, el vector de nodos estándar para una curva B-spline cuadrática no uniforme con un polígono de control de 6 vértices sería el siguiente:
t = { 0, 0, 0, 1, 2, 3, 4, 4, 4 }
A efectos prácticos, lo que se consigue al utilizar vectores de nodos estándar es tratar el primer tramo y el último de la curva como B-splines no uniformes y los tramos intermedios como B-splines uniformes. AutoCAD utiliza vectores de nodos estándar para calcular las curvas B-splines no uniformes que se obtienen al aplicar el comando SPLINE o la opción Spline del comando EDITPOL (PEDIT).

No podemos dar por terminada esta exposición inicial sobre las características y propiedades de las curvas B-splines sin destacar dos singularidades de las B-splines cuadráticas, ambas demostrables acudiendo a su fundamento matemático, que tienen especial interés para el diseñador. La primera es que siempre pasan por los puntos medios de los segmentos intermedios de su polígono de control y la segunda, más importante, es que todos los tramos de la curva son parábolas.


Representación de una parábola

A modo de resumen, veamos un par de aplicaciones prácticas de todo lo expuesto. La primera consiste en resolver un problema que se plantea en no pocas situaciones, como es el de la representación de una parábola. AutoCAD no dispone de un comando específico para dibujar parábolas, pero la representación de estas curvas resulta inmediata si aplicamos algunas de las propiedades que hemos estudiado.

Los datos de partida para dibujar una parábola deben ser dos tangentes y sus respectivos puntos de contacto con la curva. Si los datos fueran otros, sería necesario efectuar previamente las construcciones geométricas apropiadas para obtener dos tangentes cualesquiera con sus puntos de tangencia respectivos.

A partir de aquí, sólo tenemos que iniciar el comando SPLINE, seleccionar la opción Método (Method) y la subopción VC (CV). De este modo, la curva se dibujará a partir de su polígono de control. A continuación debemos seleccionar la opción Grado (Degree) y precisar el valor 2 para el grado de la spline (ecuación de segundo grado). Una vez hechos estos ajustes iniciales, ya sólo queda precisar los tres vértices del polígono de control: primero uno de los puntos de tangencia, después el punto de intersección de las tangentes y finalmente el otro punto de tangencia. La secuencia de la operación sería la siguiente:

Comando: SPLINE
Parámetros actuales: Método=Ajustar Nudos=Cuerda
Precise primer punto o [Método/Nudos/Objeto]: Método
Introduzca método de creación de spline [Ajustar/VC] <Ajustar>: VC
Parámetros actuales: Método=VC   Grado=3
Precise primer punto o [Método/Grado/Objeto]: Grado
Indique grado de spline <3>: 2
Parámetros actuales: Método=VC   Grado=2
Precise primer punto o [Método/Grado/Objeto]: (precise un punto de tangencia)
Especifique punto siguiente: (precise el punto de intersección de las tangentes)
Especifique punto siguiente o [Cerrar/desHacer]: (precise el otro punto de tangencia)
Especifique punto siguiente o [Cerrar/desHacer]: (Intro)

El resultado de esta operación será una parábola representada con total exactitud, lo que implica que cualquier otra operación efectuada sobre ella será también exacta, como la obtención de sus puntos de intersección con otras líneas o curvas, el trazado de tangentes desde un punto exterior o la construcción de una superficie parabólica.

El control local

La segunda aplicación práctica consiste en poner de manifiesto una de las propiedades más útiles de la curvas B-splines a los efectos de su aplicación al diseño: el control local. Recuerde que, en virtud de esta propiedad, al cambiar la posición de un vértice del polígono de control solamente se ven afectados los tramos de la curva en los que interviene dicho vértice, manteniéndose intactos los demás.

Inicie el comando SPLINE, asegúrese de que los parámetros actuales sean Método=VC y Grado=2, y dibuje una curva cualquiera cuyo polígono de control tenga al menos cinco vértices. La curva resultante será una B-spline cuadrática que, como sabemos, pasa por los puntos medios de los segmentos interiores del polígono de control, los cuales marcan los diferentes tramos de la curva.

Ahora designe la curva para que AutoCAD muestre el polígono de control con los pinzamientos de sus vértices. Seleccione el pinzamiento correspondiente al segundo vértice y desplace el cursor para iniciar la operación de estirar. Observe cómo la curva se deforma dinámicamente de acuerdo con la posición que va ocupando el vértice seleccionado, pero la deformación sólo afecta a los dos primeros tramos de la curva, que son los únicos en los que interviene dicho vértice, tal y como muestra la figura siguiente. Termine la operación señalando un punto cualquiera para fijar la nueva posición del vértice.

En consecuencia, si al ajustar la forma de una curva por estiramiento de un vértice del polígono de control, la deformación se extendiera más allá de lo requerido, bastaría incrementar el número de vértices para reducir la zona afectada por el estiramiento.

Existen dos formas de incrementar el número de vértices del polígono de control sin alterar la forma de la curva: elevando el orden o añadiendo puntos de desviación. Ambas posibilidades están disponibles a través de la opción Editar vértices (Edit vertex) del comando EDITSPLINE (SPLINEDIT), que analizaremos con detalle más adelante. El orden de la curva también se puede elevar desde la paleta de Propiedades, aunque en este caso ha de hacerse a través de la opción Grado, que es igual al orden menos 1.


0 comentarios: