Procedimiento para dibujar curvas spline cardinales

Una curva spline cardinal es una curva que pasa suavemente por un conjunto determinado de puntos. Para dibujar una curva spline cardinal, cree un objeto Graphics y pase la dirección de una matriz de puntos al método DrawCurve.

Dibujo de una curva spline cardinal con forma de campana

  • En el ejemplo siguiente se dibuja una curva spline cardinal con forma de campana que pasa por cinco puntos designados. En la ilustración siguiente se muestran la curva y los cinco puntos.

    Diagrama que muestra una spline cardinal en forma de campana.

Point[] points = {
   new Point(0, 100),
   new Point(50, 80),
   new Point(100, 20),
   new Point(150, 80),
   new Point(200, 100)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points);
Dim points As Point() = { _
   New Point(0, 100), _
   New Point(50, 80), _
   New Point(100, 20), _
   New Point(150, 80), _
   New Point(200, 100)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points)

Dibujo de una curva spline cardinal cerrada

  • Use el método DrawClosedCurve de la clase Graphics para dibujar una curva spline cardinal cerrada. En una curva spline cardinal cerrada, la curva continúa hasta el último punto de la matriz y se conecta con el primer punto de la matriz. En el ejemplo siguiente se dibuja una curva spline cardinal cerrada que pasa por seis puntos designados. En la ilustración siguiente se muestran la curva spline cerrada y los seis puntos:

Diagrama que muestra una spline cardinal cerrada.

Point[] points = {
   new Point(60, 60),
   new Point(150, 80),
   new Point(200, 40),
   new Point(180, 120),
   new Point(120, 100),
   new Point(80, 160)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawClosedCurve(pen, points);
Dim points As Point() = { _
   New Point(60, 60), _
   New Point(150, 80), _
   New Point(200, 40), _
   New Point(180, 120), _
   New Point(120, 100), _
   New Point(80, 160)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawClosedCurve(pen, points)

Cambio de la curvatura de una curva spline cardinal

  • Para cambiar la forma en que se dobla una curva spline cardinal, pase un argumento de tensión al método DrawCurve. En el ejemplo siguiente se dibujan tres curvas spline cardinales que pasan por el mismo conjunto de puntos. En la ilustración siguiente se muestran las tres curvas spline y sus valores de tensión. Tenga en cuenta que, cuando la tensión es 0, los puntos están conectados por líneas rectas.

Diagrama que muestra tres splines cardinales.

Point[] points = {
   new Point(20, 50),
   new Point(100, 10),
   new Point(200, 100),
   new Point(300, 50),
   new Point(400, 80)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points, 0.0f);
e.Graphics.DrawCurve(pen, points, 0.6f);
e.Graphics.DrawCurve(pen, points, 1.0f);
Dim points As Point() = { _
   New Point(20, 50), _
   New Point(100, 10), _
   New Point(200, 100), _
   New Point(300, 50), _
   New Point(400, 80)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points, 0.0F)
e.Graphics.DrawCurve(pen, points, 0.6F)
e.Graphics.DrawCurve(pen, points, 1.0F)

Compilar el código

Los ejemplos anteriores están diseñados para su uso con Windows Forms y requieren PaintEventArgse, que es un parámetro del controlador de eventos Paint.

Consulte también