Curvas spline cardinales

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

Ilustración en la que se muestra una spline cardinal que pasa a través de seis puntos definidos

Una curva spline física es una pieza fina de madera u otro material flexible. Antes de la llegada de curvas spline matemáticas, los diseñadores usaron curvas spline físicas para dibujar las curvas. Un diseñador colocaría la curva spline en un trozo 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 varias de curvas, dependiendo de las propiedades de la curva spline física. Por ejemplo, una curva spline con una alta resistencia al doblado produciría una curva diferente a una curva spline extremadamente flexible.

Las fórmulas de las curvas spline matemáticas se basan en las propiedades de las barras flexibles, por lo que las curvas producidas por curvas spline matemáticas son similares a las curvas que una vez se produjeron mediante curvas spline físicas. Al igual que las curvas spline físicas de diferentes tensiones producirán diferentes curvas a través de un conjunto determinado de puntos, las curvas spline 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 curvas spline cardinales que pasan por el mismo conjunto de puntos. Se muestra la tensión para cada curva 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 no corresponde a ninguna tensión física, lo que permite que la curva spline tome el camino de la curva mínima 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 en la que se muestran 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);