矢量图形概述

GDI+ 在坐标系统上绘制线条、矩形和其他形状。 可以从各种坐标系统中进行选择,但默认坐标系统的原点位于左上角,其中 x 轴指向右,y 轴指向下。 默认坐标系统中的度量单位是像素。

GDI+ 的构建基块

Screenshot of the GDI Plus default coordinate system.

计算机监视器在称为图片元素或像素的点的矩形数组上创建它的显示。 屏幕上显示的像素数因监视器而异,单个监视器上显示的像素数在一定程度上通常可由用户配置。

Screenshot of a rectangular array showing three pixels at coordinates 0,0, 4,2, and 12,8.

使用 GDI+ 绘制线条、矩形或曲线时,可以提供有关要绘制的项的某些关键信息。 例如,可以通过提供两个点来指定一条线,并且可以通过提供点、高度和宽度来指定矩形。 GDI+ 与显示驱动程序软件协同工作,确定必须打开哪些像素以显示线条、矩形或曲线。 下图显示了打开的像素以显示从点 (4, 2) 到点 (12, 8) 的一条线。

Screenshot of a rectangular array showing a line being drawn from a pixel at coordinate 4,2 to a pixel at coordinate 12,8.

随着时间的推移,某些基本构建基块被证明在创建二维图片方面是最有用的。 以下列表中提供了这些构建基块,它们均受 GDI+ 的支持:

  • 矩形

  • 椭圆

  • 弧线

  • Polygon(多边形)

  • 基数自由绘制曲线

  • 贝塞尔曲线样条

使用 Graphics 对象进行绘制的方法

GDI+ 中的 Graphics 类提供以下方法来绘制上一列表中的项:DrawLineDrawRectangleDrawEllipseDrawPolygonDrawArcDrawCurve(对于基数样条)和 DrawBezier。 其中每个方法都是重载的;也就是说,每个方法都支持多个不同的参数列表。 例如,DrawLine 方法的一个变体接收一个 Pen 对象和四个整数,而 DrawLine 方法的另一个变体接收一个 Pen 对象和两个 Point 对象。

绘制线条、矩形和贝塞尔曲线的方法具有复数形式的配套方法,用于在单个调用中绘制多个项:DrawLinesDrawRectanglesDrawBeziers。 此外,DrawCurve 方法还有一个配套方法 DrawClosedCurve,该方法通过将曲线的终点连接到起点来闭合曲线。

Graphics 类的所有绘制方法都与 Pen 对象协同工作。 若要绘制内容,必须至少创建两个对象:一个 Graphics 对象和一个 Pen 对象。 Pen 对象存储要绘制的项的线条宽度和颜色等属性。 Pen 对象作为参数之一传递给绘制方法。 例如,DrawLine 方法的一个变体接收一个 Pen 对象和四个整数,如以下示例所示,它将绘制宽度为 100、高度为 50 以及左上角位于 (20, 10) 的矩形:

myGraphics.DrawRectangle(myPen, 20, 10, 100, 50);
myGraphics.DrawRectangle(myPen, 20, 10, 100, 50)

另请参阅