Compartir a través de


Splines cardinales en GDI+

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.

Cardinal Spline

Splines físicos y matemáticos

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 bolígrafo o 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. 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.

Splines cardinales Aboutgdip02_art10

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 una instancia de la Graphics clase, un Pen y una matriz de Point objetos. La instancia de la Graphics clase proporciona el DrawCurve método que dibuja la spline, y el Pen que almacena atributos de la spline, como el ancho de línea y el color. La matriz de Point objetos almacena los puntos a los que pasará la curva. En el ejemplo de código siguiente se muestra cómo dibujar una spline cardinal que pasa por los puntos de myPointArray. El tercer parámetro es la tensión.

myGraphics.DrawCurve(myPen, myPointArray, 1.5f);
myGraphics.DrawCurve(myPen, myPointArray, 1.5F)

Consulte también