Compartir a través de


Splines cardinales

Una spline cardinal es una secuencia de curvas individuales unidas para formar una curva más grande. La spline se especifica mediante una matriz de puntos y un parámetro de tensión. Una spline cardinal pasa sin problemas a través de cada punto de la matriz; no hay esquinas afiladas y ningún cambio brusco en la apretura de la curva. En la ilustración siguiente se muestra un conjunto de puntos y una spline cardinal que pasa por cada punto del conjunto.

ilustración que muestra una spline cardinal que pasa a través de seis puntos definidos

Una spline física es una pieza delgada de madera u otro material flexible. Antes de la llegada de splines matemáticos, los diseñadores usaron splines físicos para dibujar curvas. Un diseñador colocaría la spline en una pieza de papel y la anclaría a un conjunto determinado de puntos. Después, el diseñador podría crear una curva dibujando a lo largo de la spline con un lápiz. Un conjunto determinado de puntos podría producir una variedad de curvas, dependiendo de las propiedades de la spline física. Por ejemplo, una spline con una alta resistencia a la flexión produciría una curva diferente a una spline extremadamente flexible.

Las fórmulas de las splines matemáticas se basan en las propiedades de las barras flexibles, por lo que las curvas producidas por splines matemáticos son similares a las curvas producidas una vez por splines físicos. Al igual que las splines físicas de diferentes tensiones producirán diferentes curvas a través de un conjunto determinado de puntos, las splines matemáticas con valores diferentes para el parámetro de tensión producirán diferentes curvas a través de un conjunto determinado de puntos. En la ilustración siguiente se muestran cuatro splines cardinales que pasan por el mismo conjunto de puntos. La tensión se muestra para cada spline. Tenga en cuenta que una tensión de 0 corresponde a la tensión física infinita, obligando a la curva a tomar la forma más corta (líneas rectas) entre puntos. Una tensión de 1 corresponde a ninguna tensión física, lo que permite que la spline tome el camino de la curva menos total. Con valores de tensión mayores que 1, la curva se comporta como un muelle comprimido, empujado para tomar un trazado más largo.

ilustración que muestra cuatro splines cardinales a través de los mismos tres puntos

Tenga en cuenta que las cuatro splines de la ilustración anterior comparten la misma línea tangente en el punto inicial. La tangente es la línea dibujada desde el punto inicial hasta el siguiente punto a lo largo de la curva. Del mismo modo, la tangente compartida en el punto final es la línea dibujada desde el punto final hasta el punto anterior de la curva.

Para dibujar una spline cardinal, necesita un objeto Graphics, un objeto Pen y una matriz de objetos Point. El objeto Graphics proporciona el método DrawCurve, que dibuja la spline y el objeto Pen almacena atributos de la spline, como el ancho de línea y el color. La matriz de objetos Point almacena los puntos a los que pasará la curva. En el ejemplo siguiente se dibuja una spline cardinal que pasa por los puntos de myPointArray. El tercer parámetro es la tensión.

myGraphics.DrawCurve(&myPen, myPointArray, 3, 1.5f);