实例109绘图路径

GraphicsPath 类

https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.drawing2d.graphicspath?view=dotnet-plat-ext-3.1

表示一系列相互连接的直线和曲线。 

属性

 
FillMode

获取或设置一个 FillMode 枚举,确定此 GraphicsPath 中的形状的内部如何填充。

PathData

获取一个 PathData,它封装此 points 的点(types)和类型(GraphicsPath)的数组。

PathPoints

获取路径中的点。

PathTypes

获取 PathPoints 数组中相应点的类型。

PointCount

获取 PathPoints 或 PathTypes 数组中的元素数。

 

方法

表 3
AddArc(Int32, Int32, Int32, Int32, Single, Single)

向当前图形追加一段椭圆弧。

AddBezier(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

在当前图形中添加一段立方贝塞尔曲线。

AddClosedCurve(Point[])

向此路径添加一个闭合曲线。 由于曲线经过数组中的每个点,因此使用基数样条曲线。

AddCurve(Point[])

向当前图形添加一段样条曲线。 由于曲线经过数组中的每个点,因此使用基数样条曲线。

AddEllipse(Int32, Int32, Int32, Int32)

向当前路径添加一个椭圆。

AddLine(Int32, Int32, Int32, Int32)

向当前图形追加一条线段。

AddLines(Point[])

向此 GraphicsPath 末尾追加一系列相互连接的线段。

AddPath(GraphicsPath, Boolean)

将指定的 GraphicsPath 追加到该路径。

AddPie(Int32, Int32, Int32, Int32, Single, Single)

向此路径添加一个扇形轮廓。

AddPolygon(Point[])

向此路径添加多边形。

AddRectangle(Rectangle)

向此路径添加一个矩形。

AddString(String, FontFamily, Int32, Single, Point, StringFormat)

向此路径添加文本字符串。

CloseAllFigures()

闭合此路径中所有开放的图形并开始一个新图形。 它通过连接一条从图形的终结点到起始点的直线,闭合每一开放的图形。

Flatten()

将此路径中的各段曲线转换成相连的线段序列。

Reset()

清空 PathPoints 和 PathTypes 数组并将 FillMode 设置为 Alternate

Warp(PointF[], RectangleF)

对此 GraphicsPath 应用由一个矩形和一个平行四边形定义的扭曲变换。

    对话框具有很多系统事件,Paint事件就是其中一种.当对话框加载或是对话框被遮盖,需要由Windows重新画出对话框时,将触发Paint事件,PaintEventArgS类对象为Paint事件提供数据。

PaintEventArgs类的属性与方法主要包括:
ClipRectangle,指示将在其中绘画的矩形;
Graphics,用于绘图的图形设备对象。
    Graphics类的定义中,定义了有关路径的绘制与填充的方法。

    绘制路径使用方法DrawPath.该方法的定义形式如下所示:
           Public Sub DrawPath  (ByVal pen As Pen,   ByVal path As GraphicsPath)
    该方法用于绘制山路径中已经存往的图形口第一个参数pen是绘图笔对象:第二个参数path即是路径GraphicsPath类对象。

    FiIIPath方法用于填充GraphicsPath对象内部。FiIIPath方法的定义形式如下所示:
           Public Sub Fi/lPath(ByVal brush As Brush,   ByVal path As GraphicsPath)
    第一个参数为画刷对象;第二个参数为路径对象。

没有控件

Imports System.Drawing.Drawing2D
Public Class Form1
    Dim myGraph As Graphics
    Dim myPath As New GraphicsPath

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        myGraph = e.Graphics
        myPath.Reset()
        myPath.AddEllipse(New Rectangle(10, 10, 100, 100))
        myGraph.DrawPath(New Pen(Color.Red, 3), myPath)
        myPath.AddEllipse(New Rectangle(30, 30, 60, 60))
        myGraph.DrawPath(New Pen(Color.Blue), myPath)

        myGraph.FillPath(New SolidBrush(Color.Yellow), myPath)
    End Sub
End Class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值