Compartir a través de


Curvas spline cardinales en GDI+

Una curva spline cardinal es una secuencia de curvas individuales combinadas 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 suavemente por cada punto de la matriz; no hay esquinas definidas ni cambios abruptos en la tensión de la curva. En la siguiente ilustración se muestra un conjunto de puntos y una curva spline cardinal que pasa por cada punto del conjunto.

Curva spline cardinal

Curvas spline físicas y matemáticas

Una curva spline física es un trozo fino de madera o de otro material flexible. Antes de la aparición de las curvas spline matemáticas, los diseñadores utilizaban curvas spline físicas para dibujar curvas. Un diseñador colocaba la curva spline en un trozo de papel y la delimitaba con respecto a un conjunto determinado de puntos. Después, el diseñador podía crear una curva dibujando a lo largo de la curva spline con un lápiz. Un conjunto determinado de puntos podría generar varias curvas, en función de las propiedades de la curva spline física. Por ejemplo, una curva spline con una resistencia alta a curvarse genera una curva distinta a la de una curva spline extremadamente flexible.

Las fórmulas que se utilizan para calcular curvas spline matemáticas se basan en las propiedades de barras flexibles, de modo que las curvas creadas por curvas spline matemáticas son similares a las curvas que se crearon una vez con las curvas spline físicas. Del mismo modo que las curvas spline físicas de distinta tensión generan curvas distintas a través de un conjunto determinado de puntos, las curvas spline matemáticas con valores diferentes para el parámetro de tensión generan curvas diferentes a través de un conjunto determinado de puntos. En la siguiente ilustración se muestran cuatro curvas spline cardinales que pasan por el mismo conjunto de puntos. Se muestra la tensión de cada curva spline. Una tensión de 0 se corresponde con una tensión física infinita, lo que obliga a la curva a tomar el camino más corto (líneas rectas) entre puntos. Una tensión de 1 corresponde a la ausencia de tensión física, que permite a la curva spline tomar el trazado de menor curvatura total. Con valores de tensión superiores a 1, la curva se comporta como un muelle comprimido, al que se empuja para tomar un trazado más largo.

Curvas spline cardinales

Las cuatro curvas spline de la ilustración anterior comparten la misma línea tangente en el punto inicial. La tangente es la línea que va desde el punto inicial hasta el siguiente punto de la curva. De forma similar, la tangente compartida en el extremo es la línea que va desde el extremo hasta el punto anterior de la curva.

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

        myGraphics.DrawCurve(myPen, myPointArray, 1.5F)

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

Vea también

Otros recursos

Líneas, curvas y formas

Crear y dibujar curvas