Graphics.DrawClosedCurve 方法

定义

绘制由 Point 结构的数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of Point structures.

重载

DrawClosedCurve(Pen, Point[], Single, FillMode)

使用指定的张力绘制由 Point 结构数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of Point structures using a specified tension.

DrawClosedCurve(Pen, PointF[], Single, FillMode)

使用指定的张力绘制由 PointF 结构数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of PointF structures using a specified tension.

DrawClosedCurve(Pen, Point[])

绘制由 Point 结构的数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of Point structures.

DrawClosedCurve(Pen, PointF[])

绘制由 PointF 结构的数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of PointF structures.

DrawClosedCurve(Pen, Point[], Single, FillMode)

使用指定的张力绘制由 Point 结构数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of Point structures using a specified tension.

public:
 void DrawClosedCurve(System::Drawing::Pen ^ pen, cli::array <System::Drawing::Point> ^ points, float tension, System::Drawing::Drawing2D::FillMode fillmode);
public void DrawClosedCurve (System.Drawing.Pen pen, System.Drawing.Point[] points, float tension, System.Drawing.Drawing2D.FillMode fillmode);
member this.DrawClosedCurve : System.Drawing.Pen * System.Drawing.Point[] * single * System.Drawing.Drawing2D.FillMode -> unit
Public Sub DrawClosedCurve (pen As Pen, points As Point(), tension As Single, fillmode As FillMode)

参数

pen
Pen

Pen,它确定曲线的颜色、宽度和高度。Pen that determines the color, width, and height of the curve.

points
Point[]

Point 结构数组,这些结构定义样条。Array of Point structures that define the spline.

tension
Single

大于或等于 0.0F 的值,该值指定曲线的张力。Value greater than or equal to 0.0F that specifies the tension of the curve.

fillmode
FillMode

FillMode 枚举的成员,它确定填充曲线的方式。Member of the FillMode enumeration that determines how the curve is filled. 需要此参数但被忽略。This parameter is required but ignored.

例外

pennullpen is null.

- 或 --or- pointsnullpoints is null.

示例

下面的代码示例旨在与 Windows 窗体一起使用,并且它需要作为 PaintEventArgs e Paint 事件处理程序的参数。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. 此代码执行以下操作:The code performs the following actions:

  • 创建红色和绿色笔。Creates red and green pens.

  • 创建七个点来定义曲线。Creates seven points to define the curve.

  • 在七个点之间绘制七个红色直线,形成多边形。Draws seven red straight lines between the seven points to form a polygon.

  • 创建张力和填充模式设置。Creates tension and fill mode settings.

  • 绘制经过七个点的绿色闭合曲线。Draws a green closed curve through the seven points.

方法使用张力为1.0,并将填充模式设置为 FillMode.AlternateThe method uses a tension of 1.0 and sets the fill mode to FillMode.Alternate.

private:
   void DrawClosedCurvePointTension( PaintEventArgs^ e )
   {
      // Create pens.
      Pen^ redPen = gcnew Pen( Color::Red,3.0f );
      Pen^ greenPen = gcnew Pen( Color::Green,3.0f );

      // Create points that define curve.
      Point point1 = Point(50,50);
      Point point2 = Point(100,25);
      Point point3 = Point(200,5);
      Point point4 = Point(250,50);
      Point point5 = Point(300,100);
      Point point6 = Point(350,200);
      Point point7 = Point(250,250);
      array<Point>^ curvePoints = {point1,point2,point3,point4,point5,point6,point7};

      // Draw lines between original points to screen.
      e->Graphics->DrawLines( redPen, curvePoints );

      // Create tension and fill mode.
      float tension = 1.0F;
      FillMode aFillMode = FillMode::Alternate;

      // Draw closed curve to screen.
      e->Graphics->DrawClosedCurve( greenPen, curvePoints, tension, aFillMode );
   }
private void DrawClosedCurvePointTension(PaintEventArgs e)
{

    // Create pens.
    Pen redPen = new Pen(Color.Red, 3);
    Pen greenPen = new Pen(Color.Green, 3);

    // Create points that define curve.
    Point point1 = new Point(50, 50);
    Point point2 = new Point(100, 25);
    Point point3 = new Point(200, 5);
    Point point4 = new Point(250, 50);
    Point point5 = new Point(300, 100);
    Point point6 = new Point(350, 200);
    Point point7 = new Point(250, 250);
    Point[] curvePoints = {point1, point2, point3, point4, point5, point6, point7};

    // Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints);

    // Create tension and fill mode.
    float tension = 1.0F;
    FillMode aFillMode = FillMode.Alternate;

    // Draw closed curve to screen.
    e.Graphics.DrawClosedCurve(greenPen, curvePoints, tension, aFillMode);
}
Private Sub DrawClosedCurvePointTension(ByVal e As PaintEventArgs)

    ' Create pens.
    Dim redPen As New Pen(Color.Red, 3)
    Dim greenPen As New Pen(Color.Green, 3)

    ' Create points that define curve.
    Dim point1 As New Point(50, 50)
    Dim point2 As New Point(100, 25)
    Dim point3 As New Point(200, 5)
    Dim point4 As New Point(250, 50)
    Dim point5 As New Point(300, 100)
    Dim point6 As New Point(350, 200)
    Dim point7 As New Point(250, 250)
    Dim curvePoints As Point() = {point1, point2, point3, point4, _
    point5, point6, point7}

    ' Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints)

    ' Create tension and fill mode.
    Dim tension As Single = 1.0F
    Dim aFillMode As FillMode = FillMode.Alternate

    ' Draw closed curve to screen.
    e.Graphics.DrawClosedCurve(greenPen, curvePoints, tension, _
    aFillMode)
End Sub

注解

此方法绘制经过数组中每个点的闭合基数样条。This method draws a closed cardinal spline that passes through each point in the array. 如果最后一个点与第一个点不匹配,则从最后一个点向第一个点添加一个曲线段,以将其关闭。If the last point does not match the first point, an additional curve segment is added from the last point to the first point to close it.

点数组必须至少包含四个 Point 结构。The array of points must contain at least four Point structures.

tension参数确定样条的形状。The tension parameter determines the shape of the spline. 如果参数的值 tension 为 0.0 f,此方法将绘制直线段以连接点。If the value of the tension parameter is 0.0F, this method draws straight line segments to connect the points. 通常, tension 参数小于或等于 1.0 f。Usually, the tension parameter is less than or equal to 1.0F. 超过 1.0 F 的值会产生异常结果。Values over 1.0F produce unusual results.

适用于

DrawClosedCurve(Pen, PointF[], Single, FillMode)

使用指定的张力绘制由 PointF 结构数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of PointF structures using a specified tension.

public:
 void DrawClosedCurve(System::Drawing::Pen ^ pen, cli::array <System::Drawing::PointF> ^ points, float tension, System::Drawing::Drawing2D::FillMode fillmode);
public void DrawClosedCurve (System.Drawing.Pen pen, System.Drawing.PointF[] points, float tension, System.Drawing.Drawing2D.FillMode fillmode);
member this.DrawClosedCurve : System.Drawing.Pen * System.Drawing.PointF[] * single * System.Drawing.Drawing2D.FillMode -> unit
Public Sub DrawClosedCurve (pen As Pen, points As PointF(), tension As Single, fillmode As FillMode)

参数

pen
Pen

Pen,它确定曲线的颜色、宽度和高度。Pen that determines the color, width, and height of the curve.

points
PointF[]

PointF 结构数组,这些结构定义样条。Array of PointF structures that define the spline.

tension
Single

大于或等于 0.0F 的值,该值指定曲线的张力。Value greater than or equal to 0.0F that specifies the tension of the curve.

fillmode
FillMode

FillMode 枚举的成员,它确定填充曲线的方式。Member of the FillMode enumeration that determines how the curve is filled. 需要此参数但被忽略。This parameter is required but is ignored.

例外

pennullpen is null.

- 或 --or- pointsnullpoints is null.

示例

下面的代码示例旨在与 Windows 窗体一起使用,并且它需要作为 PaintEventArgs e Paint 事件处理程序的参数。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. 此代码执行以下操作:The code performs the following actions:

  • 创建红色和绿色笔。Creates red and green pens.

  • 创建七个点来定义曲线。Creates seven points to define the curve.

  • 在七个点之间绘制七个红色直线,形成多边形。Draws seven red straight lines between the seven points to form a polygon.

  • 创建张力和填充模式设置。Creates tension and fill mode settings.

  • 绘制经过七个点的绿色闭合曲线。Draws a green closed curve through the seven points.

方法使用张力为1.0,并将填充模式设置为 FillMode.AlternateThe method uses a tension of 1.0 and sets the fill mode to FillMode.Alternate.

private:
   void DrawClosedCurvePointFTension( PaintEventArgs^ e )
   {
      // Create pens.
      Pen^ redPen = gcnew Pen( Color::Red,3.0f );
      Pen^ greenPen = gcnew Pen( Color::Green,3.0f );

      // Create points that define curve.
      PointF point1 = PointF(50.0F,50.0F);
      PointF point2 = PointF(100.0F,25.0F);
      PointF point3 = PointF(200.0F,5.0F);
      PointF point4 = PointF(250.0F,50.0F);
      PointF point5 = PointF(300.0F,100.0F);
      PointF point6 = PointF(350.0F,200.0F);
      PointF point7 = PointF(250.0F,250.0F);
      array<PointF>^ curvePoints = {point1,point2,point3,point4,point5,point6,point7};

      // Draw lines between original points to screen.
      e->Graphics->DrawLines( redPen, curvePoints );

      // Create tension and fill mode.
      float tension = 1.0F;
      FillMode aFillMode = FillMode::Alternate;

      // Draw closed curve to screen.
      e->Graphics->DrawClosedCurve( greenPen, curvePoints, tension, aFillMode );
   }
private void DrawClosedCurvePointFTension(PaintEventArgs e)
{

    // Create pens.
    Pen redPen = new Pen(Color.Red, 3);
    Pen greenPen = new Pen(Color.Green, 3);

    // Create points that define curve.
    PointF point1 = new PointF(50.0F, 50.0F);
    PointF point2 = new PointF(100.0F, 25.0F);
    PointF point3 = new PointF(200.0F, 5.0F);
    PointF point4 = new PointF(250.0F, 50.0F);
    PointF point5 = new PointF(300.0F, 100.0F);
    PointF point6 = new PointF(350.0F, 200.0F);
    PointF point7 = new PointF(250.0F, 250.0F);
    PointF[] curvePoints = {point1, point2, point3, point4, point5, point6, point7};

    // Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints);

    // Create tension and fill mode.
    float tension = 1.0F;
    FillMode aFillMode = FillMode.Alternate;

    // Draw closed curve to screen.
    e.Graphics.DrawClosedCurve(greenPen, curvePoints, tension, aFillMode);
}
Private Sub DrawClosedCurvePointFTension(ByVal e As PaintEventArgs)

    ' Create pens.
    Dim redPen As New Pen(Color.Red, 3)
    Dim greenPen As New Pen(Color.Green, 3)

    ' Create points that define curve.
    Dim point1 As New PointF(50.0F, 50.0F)
    Dim point2 As New PointF(100.0F, 25.0F)
    Dim point3 As New PointF(200.0F, 5.0F)
    Dim point4 As New PointF(250.0F, 50.0F)
    Dim point5 As New PointF(300.0F, 100.0F)
    Dim point6 As New PointF(350.0F, 200.0F)
    Dim point7 As New PointF(250.0F, 250.0F)
    Dim curvePoints As PointF() = {point1, point2, point3, point4, _
    point5, point6, point7}

    ' Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints)

    ' Create tension and fill mode.
    Dim tension As Single = 1.0F
    Dim aFillMode As FillMode = FillMode.Alternate

    ' Draw closed curve to screen.
    e.Graphics.DrawClosedCurve(greenPen, curvePoints, tension, _
    aFillMode)
End Sub

注解

此方法绘制经过数组中每个点的闭合基数样条。This method draws a closed cardinal spline that passes through each point in the array. 如果最后一个点与第一个点不匹配,则从最后一个点向第一个点添加一个曲线段,以将其关闭。If the last point does not match the first point, an additional curve segment is added from the last point to the first point to close it.

点数组必须至少包含四个 PointF 结构。The array of points must contain at least four PointF structures.

tension参数确定样条的形状。The tension parameter determines the shape of the spline. 如果参数的值 tension 为 0.0 f,此方法将绘制直线段以连接点。If the value of the tension parameter is 0.0F, this method draws straight line segments to connect the points. 通常, tension 参数小于或等于 1.0 f。Usually, the tension parameter is less than or equal to 1.0F. 超过 1.0 F 的值会产生异常结果。Values over 1.0F produce unusual results.

适用于

DrawClosedCurve(Pen, Point[])

绘制由 Point 结构的数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of Point structures.

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

参数

pen
Pen

Pen,它确定曲线的颜色、宽度和高度。Pen that determines the color, width, and height of the curve.

points
Point[]

Point 结构数组,这些结构定义样条。Array of Point structures that define the spline.

例外

pennullpen is null.

- 或 --or- pointsnullpoints is null.

示例

下面的代码示例旨在与 Windows 窗体一起使用,并且它需要作为 PaintEventArgs e Paint 事件处理程序的参数。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. 此代码执行以下操作:The code performs the following actions:

  • 创建红色和绿色笔。Creates red and green pens.

  • 创建七个点以定义曲线。Creates seven points to define a curve.

  • 在七个点之间绘制七个红色直线,形成一个闭合的多边形。Draws seven red straight lines between the seven points to form a closed polygon.

  • 绘制经过七个点的绿色闭合曲线。Draws a green closed curve through the seven points.

方法使用默认张力0.5。The method uses a default tension of 0.5.

private:
   void DrawClosedCurvePoint( PaintEventArgs^ e )
   {

      // Create pens.
      Pen^ redPen = gcnew Pen( Color::Red,3.0f );
      Pen^ greenPen = gcnew Pen( Color::Green,3.0f );

      // Create points that define curve.
      Point point1 = Point(50,50);
      Point point2 = Point(100,25);
      Point point3 = Point(200,5);
      Point point4 = Point(250,50);
      Point point5 = Point(300,100);
      Point point6 = Point(350,200);
      Point point7 = Point(250,250);
      array<Point>^ curvePoints = {point1,point2,point3,point4,point5,point6,point7};

      // Draw lines between original points to screen.
      e->Graphics->DrawLines( redPen, curvePoints );

      // Draw closed curve to screen.
      e->Graphics->DrawClosedCurve( greenPen, curvePoints );
   }
private void DrawClosedCurvePoint(PaintEventArgs e)
{
    // Create pens.
    Pen redPen   = new Pen(Color.Red, 3);
    Pen greenPen = new Pen(Color.Green, 3);
             
    // Create points that define curve.
    Point point1 = new Point(50,  50);
    Point point2 = new Point(100,  25);
    Point point3 = new Point(200,   5);
    Point point4 = new Point(250,  50);
    Point point5 = new Point(300, 100);
    Point point6 = new Point(350, 200);
    Point point7 = new Point(250, 250);
    Point[] curvePoints =
             {
                 point1,
                 point2,
                 point3,
                 point4,
                 point5,
                 point6,
                 point7
             };
             
    // Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints);
             
    // Draw closed curve to screen.
    e.Graphics.DrawClosedCurve(greenPen, curvePoints);
}
Private Sub DrawClosedCurvePoint(ByVal e As PaintEventArgs)

    ' Create pens.
    Dim redPen As New Pen(Color.Red, 3)
    Dim greenPen As New Pen(Color.Green, 3)

    ' Create points that define curve.
    Dim point1 As New Point(50, 50)
    Dim point2 As New Point(100, 25)
    Dim point3 As New Point(200, 5)
    Dim point4 As New Point(250, 50)
    Dim point5 As New Point(300, 100)
    Dim point6 As New Point(350, 200)
    Dim point7 As New Point(250, 250)
    Dim curvePoints As Point() = {point1, point2, point3, point4, _
    point5, point6, point7}

    ' Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints)

    ' Draw closed curve to screen.
    e.Graphics.DrawClosedCurve(greenPen, curvePoints)
End Sub

注解

此方法绘制经过数组中每个点的闭合基数样条。This method draws a closed cardinal spline that passes through each point in the array. 如果最后一个点与第一个点不匹配,则从最后一个点向第一个点添加一个曲线段以闭合该图形。If the last point does not match the first point, an additional curve segment is added from the last point to the first point to close the figure.

点数组必须至少包含四个 Point 结构。The array of points must contain at least four Point structures.

此方法使用默认张力0.5。This method uses a default tension of 0.5.

适用于

DrawClosedCurve(Pen, PointF[])

绘制由 PointF 结构的数组定义的闭合基数样条。Draws a closed cardinal spline defined by an array of PointF structures.

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

参数

pen
Pen

Pen,它确定曲线的颜色、宽度和高度。Pen that determines the color, width, and height of the curve.

points
PointF[]

PointF 结构数组,这些结构定义样条。Array of PointF structures that define the spline.

例外

pennullpen is null.

- 或 --or- pointsnullpoints is null.

示例

下面的代码示例旨在与 Windows 窗体一起使用,并且它需要作为 PaintEventArgs e Paint 事件处理程序的参数。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. 此代码执行以下操作:The code performs the following actions:

  • 创建红色和绿色笔。Creates red and green pens.

  • 创建七个点以定义曲线。Creates seven points to define a curve.

  • 在七个点之间绘制七个红色直线,形成一个闭合的多边形。Draws seven red straight lines between the seven points to form a closed polygon.

  • 绘制经过七个点的绿色闭合曲线。Draws a green closed curve through the seven points.

方法使用默认张力0.5。The method uses a default tension of 0.5.

private:
   void DrawClosedCurvePointF( PaintEventArgs^ e )
   {
      // Create pens.
      Pen^ redPen = gcnew Pen( Color::Red,3.0f );
      Pen^ greenPen = gcnew Pen( Color::Green,3.0f );

      // Create points that define curve.
      PointF point1 = PointF(50.0F,50.0F);
      PointF point2 = PointF(100.0F,25.0F);
      PointF point3 = PointF(200.0F,5.0F);
      PointF point4 = PointF(250.0F,50.0F);
      PointF point5 = PointF(300.0F,100.0F);
      PointF point6 = PointF(350.0F,200.0F);
      PointF point7 = PointF(250.0F,250.0F);
      array<PointF>^ curvePoints = {point1,point2,point3,point4,point5,point6,point7};

      // Draw lines between original points to screen.
      e->Graphics->DrawLines( redPen, curvePoints );

      // Draw closed curve to screen.
      e->Graphics->DrawClosedCurve( greenPen, curvePoints );
   }
private void DrawClosedCurvePointF(PaintEventArgs e)
{

    // Create pens.
    Pen redPen = new Pen(Color.Red, 3);
    Pen greenPen = new Pen(Color.Green, 3);

    // Create points that define curve.
    PointF point1 = new PointF(50.0F, 50.0F);
    PointF point2 = new PointF(100.0F, 25.0F);
    PointF point3 = new PointF(200.0F, 5.0F);
    PointF point4 = new PointF(250.0F, 50.0F);
    PointF point5 = new PointF(300.0F, 100.0F);
    PointF point6 = new PointF(350.0F, 200.0F);
    PointF point7 = new PointF(250.0F, 250.0F);
    PointF[] curvePoints = {point1, point2, point3, point4, point5, point6, point7};

    // Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints);

    // Draw closed curve to screen.
    e.Graphics.DrawClosedCurve(greenPen, curvePoints);
}
Private Sub DrawClosedCurvePointF(ByVal e As PaintEventArgs)

    ' Create pens.
    Dim redPen As New Pen(Color.Red, 3)
    Dim greenPen As New Pen(Color.Green, 3)

    ' Create points that define curve.
    Dim point1 As New PointF(50.0F, 50.0F)
    Dim point2 As New PointF(100.0F, 25.0F)
    Dim point3 As New PointF(200.0F, 5.0F)
    Dim point4 As New PointF(250.0F, 50.0F)
    Dim point5 As New PointF(300.0F, 100.0F)
    Dim point6 As New PointF(350.0F, 200.0F)
    Dim point7 As New PointF(250.0F, 250.0F)
    Dim curvePoints As PointF() = {point1, point2, point3, point4, _
    point5, point6, point7}

    ' Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints)

    ' Draw closed curve to screen.
    e.Graphics.DrawClosedCurve(greenPen, curvePoints)
End Sub

注解

此方法绘制经过数组中每个点的闭合基数样条。This method draws a closed cardinal spline that passes through each point in the array. 如果最后一个点与第一个点不匹配,则从最后一个点向第一个点添加一个曲线段,以将其关闭。If the last point does not match the first point, an additional curve segment is added from the last point to the first point to close it.

点数组必须至少包含四个 PointF 结构。The array of points must contain at least four PointF structures.

此方法使用默认张力0.5。This method uses a default tension of 0.5.

适用于