矢量图形概述

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

GDI+ 的基础元素

GDI Plus 默认坐标系的屏幕截图。

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

矩形数组的屏幕截图,其中三个像素的坐标为 0、0、4、2 和 12,8。

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

矩形数组的屏幕截图,其中显示了从坐标为 4,2 的像素到坐标 12,8 的像素绘制的线条。

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

  • 直线

  • 矩形

  • 椭圆

  • 弧线

  • 多边形

  • 基数样条

  • 贝塞尔曲线样条

使用图形对象绘制的方法

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)

另请参阅