Buscar en este blog

domingo, 29 de mayo de 2011

Splines (3ª parte)

El método de representación de curvas B-splines a partir de los vértices de su polígono de control (Método = VC) quedó expuesto en las entregas anteriores de esta serie, donde también explicamos el efecto que tiene la opción Grado (Degree) en la naturaleza de la curva resultante. En esta entrega veremos las características del otro método que proporciona el comando SPLINE para dibujar las curvas, en el que se especifican sus puntos de paso o puntos de ajuste (Método = Ajustar). Completaremos la exposición con el análisis de la información que ofrecen el comando LIST y la paleta de Propiedades cuando se aplican sobre una curva B-spline.


El comando SPLINE

En la entrega anterior de esta serie vimos el grado de flexibilidad y control que ofrecen las curvas B-splines no uniformes. Sin embargo, por sorprendente que pueda parecer, son incapaces de modelar curvas tan sencillas y utilizadas como las circunferencias o las secciones cónicas, a excepción de la parábola. Para resolver este problema es necesario utilizar curvas racionales, en cuya formulación matemática intervienen cocientes (razones) de dos polinomios.

Las curvas B-splines racionales no uniformes, que se conocen con el acrónimo inglés de NURBS (Non Uniform Rational B-Spline), constituyen por tanto una generalización de las B-splines no uniformes. Tienen todas las propiedades de estas últimas y permiten, además, la representación de nuevos tipos de curvas, entre las que destacan por su importancia las secciones cónicas (elipse e hipérbola).

Además del parámetro local y del vector de nodos, en la expresión matemática de las curvas B-splines racionales no uniformes interviene un tercer parámetro, denominado peso, que se asocia a cada uno de los vértices del polígono de control y establece su grado de influencia en la forma final de la curva. Al incrementar el peso de un determinado vértice se consigue un acercamiento de la curva a dicho vértice. Aunque no entremos en las consideraciones matemáticas, es importante saber que cuando los pesos de todos los vértices son iguales, pueden eliminarse los denominadores en las ecuaciones, con lo que las curvas dejan de ser racionales y no necesitan ser tratadas como NURBS.

El comando SPLINE [alias: SPL] permite dibujar curvas B-splines no uniformes precisando los puntos de paso de la curva, que AutoCAD denomina puntos de ajuste, o bien indicando los vértices de su polígono de control. La elección entre un método u otro se efectúa a través de la opción Método (Method), que es una de las ofrecidas en el mensaje de solicitud al iniciar el comando, o por medio de la variable de sistema SPLMETHOD.

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

La opción Ajustar (Fit) determina la representación de la curva a partir de sus puntos de paso, mientras que la opción VC (CV) establece la representación a partir de los vértices del polígono de control. El valor de la variable SPLMETHOD se modifica automáticamente al elegir cualquiera de estas dos opciones; la primera asigna el valor 0 a la variable y la segunda el valor 1. Cuando se inicia un dibujo nuevo, el método de representación siempre está predefinido en Ajustar (SPLMETHOD = 0).

Veamos ahora, mediante un ejemplo práctico, las características y particularidades de la representación de curvas B-splines cuando se utiliza el método de puntos de ajuste (Método = Ajustar). Comenzaremos marcando las coordenadas que vamos a utilizar como puntos de paso de la curva. De este modo, tendremos una referencia visual de los puntos cuando la curva esté representada.
  1. Inicie AutoCAD con un dibujo nuevo.
  2. En la ficha Inicio de la cinta de opciones, expanda el grupo Utilidades y pulse el icono Tipo de punto (comando DDPTYPE) para abrir el cuadro de diálogo Estilo de punto. Seleccione uno cualquiera de los iconos de la segunda fila, asegúrese de que esté seleccionada la opción Establecer tamaño relativo a pantalla y cierre el cuadro de diálogo pulsando el botón Aceptar.
  3. A continuación, expanda el grupo Dibujo, en la ficha Inicio de la cinta de opciones, pulse el icono Varios puntos e introduzca las coordenadas que se indican en la siguiente secuencia:

    Precise un punto: 50,150
    Precise un punto: 200,150
    Precise un punto: 200,200
    Precise un punto: 300,200
    Precise un punto: (Esc)

  4. Una vez efectuados estos ajustes previos, estamos en condiciones de dibujar la curva. Expanda el grupo Dibujo de la ficha Inicio de la cinta de opciones, pulse el icono Spline y responda a las solicitudes de AutoCAD tal y como se indica a continuación:

    Comando: SPLINE
    Parámetros actuales: Método=Ajustar Nudos=Cuerda
    Precise primer punto o [Método/Nudos/Objeto]: 50,150
    Especifique punto siguiente o [iniciar Tangencia/toLerancia]: Tangencia
    Precise tangente inicial: @1<0
    Especifique punto siguiente o [iniciar Tangencia/toLerancia]: 200,150
    Especifique punto siguiente o [finalizar Tangencia/.../Cerrar]: 200,200
    Especifique punto siguiente o [finalizar Tangencia/.../Cerrar]: 300,200
    Especifique punto siguiente o [finalizar Tangencia/.../Cerrar]: Tangencia
    Precise tangente final: @1<90

    Tenga en cuenta que todas las coordenadas de los puntos de paso de este ejemplo son absolutas, por lo que, si utiliza la Entrada de puntero, probablemente tendrá que anteponer el prefijo # (almohadilla) para que AutoCAD interprete como absolutas las coordenadas del segundo punto y de los siguientes.
  5. Por último, inicie el comando MOSTRARVC (CVSHOW) y seleccione la curva que acabamos de dibujar para que AutoCAD muestre su polígono de control, el cual se ha calculado en función de los datos que hemos indicado y del soporte de interpolación de nodos actual, que por defecto es el de longitud de cuerda (Nudos = Cuerda). Más adelante veremos qué significa el soporte de interpolación de nodos y cuál es su incidencia en la forma de la curva.

Al completar la operación habrá obtenido una curva B-spline como la mostrada en la figura siguiente.
Una particularidad que presenta el comando SPLINE es que las direcciones de las tangentes en los puntos inicial y final de la curva no se pueden precisar solamente mediante su valor angular como en los comandos POL (PLINE) o EDITPOL (PEDIT). En este caso, las direcciones de las tangentes deben indicarse con un punto, que se puede señalar en pantalla o por medio de sus coordenadas. Por ese motivo hemos empleado coordenadas polares relativas para indicar ambas direcciones en la secuencia del ejemplo. La tangente en el punto inicial de nuestra curva sigue la dirección positiva del eje X (0º), mientras que en el punto final se corresponde con la dirección positiva del eje Y (90º).

Si no se indican las direcciones de las tangentes en los puntos inicial y final, éstas se establecen automáticamente de acuerdo con las direcciones de los segmentos extremos del polígono de control.

Veamos ahora la información que proporciona AutoCAD sobre la curva B-spline que acabamos de dibujar.
  1. Pulse el icono Lista del grupo Propiedades en la ficha Inicio de la cinta de opciones, designe la curva y pulse Intro. AutoCAD abrirá la ventana de texto y mostrará los datos que reproducimos a continuación.
Los primeros datos son los habituales para cualquier objeto de dibujo, su tipo, la capa en la que reside, etc. El primer dato específico de la curva es su longitud total. Después, AutoCAD indica que el grado de la curva es 4, lo que no es cierto. La curva es de tercer grado (cúbica) y, por lo tanto, de orden 4. Todas las curvas que dibuja el comando SPLINE mediante el método Ajustar (Fit) son cúbicas, si bien el orden se puede incrementar posteriormente utilizando el comando EDITSPLINE (SPLINEDIT).

A continuación se indican tres propiedades importantes. En este caso, se informa de que la curva es plana, no racional y no periódica. Es plana porque todos los puntos de paso que hemos precisado para su trazado tienen la misma coordenada Z. La segunda propiedad indica que es no racional, lo que significa, como sabemos, que en su formulación matemática no intervienen cocientes y los pesos de todos los vértices de su polígono de control son iguales. Finalmente, el término no periódica indica que la curva es abierta. Para que sea periódica es necesario que sus extremos coincidan y que, además, sean iguales las direcciones de las tangentes en el cierre. Cuando el trazado se termina utilizando la opción Cerrar (Close), AutoCAD únicamente solicita la dirección de una tangente (ignorando la tangente inicial, si se hubiera precisado), que se aplica a los dos extremos y, por tanto, la curva resultante siempre es periódica.

Del análisis de estos primeros datos podemos deducir una característica muy interesante del comando SPLINE y es que, cuando se precisan los puntos de paso, sólo permite representar curvas B-splines cúbicas no uniformes y no racionales. Para que el orden de la curva sea mayor o para que la curva sea racional (NURBS) es preciso modificarla por medio del comando EDITSPLINE (SPLINEDIT). Más adelante veremos que, con ayuda de la opción Objeto (Object), el comando SPLINE también puede representar curvas B-splines cuadráticas.

Continuando con el listado de información de la curva, el siguiente dato que se proporciona es el rango de parámetros. El valor inicial siempre es 0 y el valor final es igual a la suma de las longitudes de los segmentos rectos definidos por los puntos de paso. El lector puede comprobar fácilmente este dato a partir de las coordenadas de los puntos que hemos precisado para dibujar la curva.

Después del rango de parámetros se indica el número y las coordenadas de los puntos de apoyo y de los puntos de ajuste, que no conviene confundir. AutoCAD denomina puntos de apoyo a los vértices del polígono de control y puntos de ajuste a los puntos por donde pasa la curva. Cuando se emplea el método Ajustar (Fit), los primeros se calculan automáticamente, mientras que los segundos deben ser precisados por el usuario. En nuestro ejemplo, el polígono de control resultante tiene 6 vértices (puntos de apoyo), como hemos visto en la primera figura.

El siguiente dato del listado de información es la tolerancia de los puntos de ajuste, que siempre vale 0 salvo que se haya indicado un valor diferente durante el trazado haciendo uso de la opción toLerancia (toLerance). Sorprendentemente, el valor que se indica en el listado no es 0, sino 1x10-10.

La información se completa con las direcciones de las tangentes en los puntos inicial y final de la curva, expresadas como vectores unitarios. Estos vectores siempre apuntan en el sentido de trazado de la curva. En nuestro ejemplo, especificamos un ángulo de 0º para precisar la tangente en el punto inicial, lo que equivale a un vector tangente de coordenadas (1, 0, 0). El ángulo de la tangente en el punto final fue de 90º, por lo que las coordenadas del vector tangente son (0, 1, 0).

Es interesante observar también la información que proporciona el comando PROPIEDADES (Properties) cuando se aplica sobre una curva B-spline.
  1. Seleccione la curva de nuestro ejemplo y pulse la combinación de teclas Ctrl+1 para abrir la paleta de Propiedades.
Como es natural, la mayor parte de la información es idéntica a la que hemos obtenido con el comando LIST. Sin embargo, hay algunas diferencias curiosas. En la sección Varios, las casillas Grado y Ajustar tolerancia muestran valores correctos, lo que no hacía el comando LIST. También se indica si la curva es Plana y Cerrada, pero se omite si es racional o no. Para terminar, una curiosidad más: aquí se proporciona el Área de la curva pero, sorprendentemente, no ocurre lo mismo con la longitud. Sería deseable que los dos comandos ofrecieran la misma información y, a ser posible, sin errores.

Ir a 2ª parte ...

0 comentarios: