Partilhar via


Como: Desenhar Cardinal Splines

Uma spline cardinais é uma curva suavemente passa por meio de um determinado conjunto de pontos. Para desenhar uma spline cardinais, criar um Graphics de objetos e passar o endereço de uma matriz de pontos para a DrawCurve método.

Uma spline em forma de sino Cardinal

  • O exemplo a seguir desenha uma spline cardinais em forma de sino que passa por cinco pontos designados. A ilustração a seguir mostra a curva e cinco pontos.

    Spline cardinal

        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)

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);

Desenhar uma Spline fechada do Cardinal

  • Use o DrawClosedCurve método o Graphics classe para desenhar uma spline cardinais fechada. Em uma spline cardinais fechada, a curva continua através do último ponto na matriz e conecta-se com o primeiro ponto na matriz. O exemplo a seguir desenha uma spline cardinais fechada que passa através de seis pontos designados. A ilustração a seguir mostra o spline fechada juntamente com seis pontos.

Spline cardinal

        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)

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);

Alterar a curvatura de uma Cardinal Spline

  • Alterar a maneira como uma spline cardinais se dobra, passando um argumento de tensão para o DrawCurve método. O exemplo a seguir desenha três splines cardinais que passam pelo mesmo conjunto de pontos. A ilustração a seguir mostra as três splines junto com seus valores de tensão. Observe que, quando a tensão é 0, os pontos são conectados por linhas retas.

Spline cardinal

        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)

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);

Compilando o código

Exemplos anteriores são projetados para uso com o Windows Forms e que precisam ter PaintEventArgs e, que é um parâmetro da Paint manipulador de eventos.

Consulte também

Outros recursos

Linhas, curvas e formas

Construindo e desenho de curvas