Поделиться через


Graphics.DrawBeziers Метод

Определение

Рисует ряд сплайнов Bézier из массива Point структур.

Перегрузки

DrawBeziers(Pen, Point[])

Рисует ряд сплайнов Bézier из массива Point структур.

DrawBeziers(Pen, PointF[])

Рисует ряд сплайнов Bézier из массива PointF структур.

DrawBeziers(Pen, ReadOnlySpan<Point>)
DrawBeziers(Pen, ReadOnlySpan<PointF>)

DrawBeziers(Pen, Point[])

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs

Рисует ряд сплайнов Bézier из массива Point структур.

public:
 void DrawBeziers(System::Drawing::Pen ^ pen, cli::array <System::Drawing::Point> ^ points);
public:
 void DrawBeziers(System::Drawing::Pen ^ pen, ... cli::array <System::Drawing::Point> ^ points);
public void DrawBeziers (System.Drawing.Pen pen, System.Drawing.Point[] points);
public void DrawBeziers (System.Drawing.Pen pen, params System.Drawing.Point[] points);
member this.DrawBeziers : System.Drawing.Pen * System.Drawing.Point[] -> unit
Public Sub DrawBeziers (pen As Pen, points As Point())
Public Sub DrawBeziers (pen As Pen, ParamArray points As Point())

Параметры

pen
Pen

Pen, определяющий цвет, ширину и стиль кривой.

points
Point[]

Массив Point структур, представляющих точки, определяющие кривую. Число точек в массиве должно быть кратно 3 плюс 1, например 4, 7 или 10.

Исключения

pen null.

-или-

points null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика событий Paint. Код выполняет следующие действия:

  • Создает черное перо.

  • Создает начальные, конечные и две контрольные точки для первой кривой и конечной точки и двух контрольных точек для второй кривой.

  • Рисует последовательные кривые Bézier на экран.

private:
   void DrawBeziersPoint( PaintEventArgs^ e )
   {
      // Create pen.
      Pen^ blackPen = gcnew Pen( Color::Black,3.0f );

      // Create points for curve.
      Point start = Point(100,100);
      Point control1 = Point(200,10);
      Point control2 = Point(350,50);
      Point end1 = Point(500,100);
      Point control3 = Point(600,150);
      Point control4 = Point(650,250);
      Point end2 = Point(500,300);
      array<Point>^ bezierPoints = {start,control1,control2,end1,control3,control4,end2};

      // Draw arc to screen.
      e->Graphics->DrawBeziers( blackPen, bezierPoints );
   }
private void DrawBeziersPoint(PaintEventArgs e)
{
    // Create pen.
    Pen blackPen = new Pen(Color.Black, 3);
             
    // Create points for curve.
    Point start = new Point(100, 100);
    Point control1 = new Point(200, 10);
    Point control2 = new Point(350, 50);
    Point end1 = new Point(500, 100);
    Point control3 = new Point(600, 150);
    Point control4 = new Point(650, 250);
    Point end2 = new Point(500, 300);
    Point[] bezierPoints =
             {
                 start, control1, control2, end1,
                 control3, control4, end2
             };
             
    // Draw arc to screen.
    e.Graphics.DrawBeziers(blackPen, bezierPoints);
}
Private Sub DrawBeziersPoint(ByVal e As PaintEventArgs)

    ' Create pen.
    Dim blackPen As New Pen(Color.Black, 3)

    ' Create points for curve.
    Dim start As New Point(100, 100)
    Dim control1 As New Point(200, 10)
    Dim control2 As New Point(350, 50)
    Dim end1 As New Point(500, 100)
    Dim control3 As New Point(600, 150)
    Dim control4 As New Point(650, 250)
    Dim end2 As New Point(500, 300)
    Dim bezierPoints As Point() = {start, control1, control2, _
    end1, control3, control4, end2}

    ' Draw arc to screen.
    e.Graphics.DrawBeziers(blackPen, bezierPoints)
End Sub

Комментарии

Число точек в массиве должно быть кратно 3 плюс 1, так как первая строка сплайна требует 4 пункта, а для других сплайнов требуется 3 пункта. Первая линия сплайна Bézier извлекается из первой точки в четвертую точку в массиве точек. Второй и третий точки — это контрольные точки, определяющие форму кривой. Каждая последующая кривая нуждается ровно в трех пунктах: еще две контрольные точки и конечную точку. Конечная точка предыдущей кривой используется в качестве отправной точки для каждой дополнительной кривой.

Применяется к

DrawBeziers(Pen, PointF[])

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs

Рисует ряд сплайнов Bézier из массива PointF структур.

public:
 void DrawBeziers(System::Drawing::Pen ^ pen, cli::array <System::Drawing::PointF> ^ points);
public:
 void DrawBeziers(System::Drawing::Pen ^ pen, ... cli::array <System::Drawing::PointF> ^ points);
public void DrawBeziers (System.Drawing.Pen pen, System.Drawing.PointF[] points);
public void DrawBeziers (System.Drawing.Pen pen, params System.Drawing.PointF[] points);
member this.DrawBeziers : System.Drawing.Pen * System.Drawing.PointF[] -> unit
Public Sub DrawBeziers (pen As Pen, points As PointF())
Public Sub DrawBeziers (pen As Pen, ParamArray points As PointF())

Параметры

pen
Pen

Pen, определяющий цвет, ширину и стиль кривой.

points
PointF[]

Массив PointF структур, представляющих точки, определяющие кривую. Число точек в массиве должно быть кратно 3 плюс 1, например 4, 7 или 10.

Исключения

pen null.

-или-

points null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика событий Paint. Код выполняет следующие действия:

  • Создает черное перо.

  • Создает начальные, конечные и две контрольные точки для первой кривой и конечной точки и двух контрольных точек для второй кривой.

  • Рисует последовательные кривые Bézier на экран.

private:
   void DrawBeziersPointF( PaintEventArgs^ e )
   {
      // Create pen.
      Pen^ blackPen = gcnew Pen( Color::Black,3.0f );

      // Create points for curve.
      PointF start = PointF(100.0F,100.0F);
      PointF control1 = PointF(200.0F,10.0F);
      PointF control2 = PointF(350.0F,50.0F);
      PointF end1 = PointF(500.0F,100.0F);
      PointF control3 = PointF(600.0F,150.0F);
      PointF control4 = PointF(650.0F,250.0F);
      PointF end2 = PointF(500.0F,300.0F);
      array<PointF>^ bezierPoints = {start,control1,control2,end1,control3,control4,end2};

      // Draw arc to screen.
      e->Graphics->DrawBeziers( blackPen, bezierPoints );
   }
private void DrawBeziersPointF(PaintEventArgs e)
{
    // Create pen.
    Pen blackPen = new Pen(Color.Black, 3);
             
    // Create points for curve.
    PointF start = new PointF(100.0F, 100.0F);
    PointF control1 = new PointF(200.0F, 10.0F);
    PointF control2 = new PointF(350.0F, 50.0F);
    PointF end1 = new PointF(500.0F, 100.0F);
    PointF control3 = new PointF(600.0F, 150.0F);
    PointF control4 = new PointF(650.0F, 250.0F);
    PointF end2 = new PointF(500.0F, 300.0F);
    PointF[] bezierPoints = { start, control1, control2, end1,
         control3, control4, end2 };      
                 
    // Draw arc to screen.
    e.Graphics.DrawBeziers(blackPen, bezierPoints);
}
Private Sub DrawBeziersPointF(ByVal e As PaintEventArgs)

    ' Create pen.
    Dim blackPen As New Pen(Color.Black, 3)

    ' Create points for curve.
    Dim start As New PointF(100.0F, 100.0F)
    Dim control1 As New PointF(200.0F, 10.0F)
    Dim control2 As New PointF(350.0F, 50.0F)
    Dim end1 As New PointF(500.0F, 100.0F)
    Dim control3 As New PointF(600.0F, 150.0F)
    Dim control4 As New PointF(650.0F, 250.0F)
    Dim end2 As New PointF(500.0F, 300.0F)
    Dim bezierPoints As PointF() = {start, control1, control2, _
    end1, control3, control4, end2}

    ' Draw arc to screen.
    e.Graphics.DrawBeziers(blackPen, bezierPoints)
End Sub

Комментарии

Число точек в массиве должно быть кратно 3 плюс 1, так как первая строка сплайна требует 4 пункта, а для других сплайнов требуется 3 пункта. Первая кривая Bézier извлекается из первой точки в четвертую точку в массиве точек. Второй и третий точки — это контрольные точки, определяющие форму кривой. Каждая последующая кривая нуждается ровно в трех пунктах: еще две контрольные точки и конечную точку. Конечная точка предыдущей кривой используется в качестве отправной точки для каждой дополнительной кривой.

Применяется к

DrawBeziers(Pen, ReadOnlySpan<Point>)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
public:
 void DrawBeziers(System::Drawing::Pen ^ pen, ReadOnlySpan<System::Drawing::Point> points);
public void DrawBeziers (System.Drawing.Pen pen, ReadOnlySpan<System.Drawing.Point> points);
member this.DrawBeziers : System.Drawing.Pen * ReadOnlySpan<System.Drawing.Point> -> unit
Public Sub DrawBeziers (pen As Pen, points As ReadOnlySpan(Of Point))

Параметры

pen
Pen

Применяется к

DrawBeziers(Pen, ReadOnlySpan<PointF>)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
public:
 void DrawBeziers(System::Drawing::Pen ^ pen, ReadOnlySpan<System::Drawing::PointF> points);
public void DrawBeziers (System.Drawing.Pen pen, ReadOnlySpan<System.Drawing.PointF> points);
member this.DrawBeziers : System.Drawing.Pen * ReadOnlySpan<System.Drawing.PointF> -> unit
Public Sub DrawBeziers (pen As Pen, points As ReadOnlySpan(Of PointF))

Параметры

pen
Pen

Применяется к