Graphics.DrawBeziers 方法

定義

Point 結構陣列繪製一系列的貝茲曲線。

多載

DrawBeziers(Pen, Point[])

Point 結構陣列繪製一系列的貝茲曲線。

DrawBeziers(Pen, PointF[])

PointF 結構陣列繪製一系列的貝茲曲線。

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

DrawBeziers(Pen, Point[])

來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs

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。

例外狀況

pennull

-或-

pointsnull

範例

下列程式代碼範例是設計來搭配 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

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。

例外狀況

pennull

-或-

pointsnull

範例

下列程式代碼範例是設計來搭配 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
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
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

適用於