Vector Graphics Overview

GDI+ draws lines, rectangles, and other shapes on a coordinate system. You can choose from a variety of coordinate systems, but the default coordinate system has the origin in the upper-left corner with the x-axis pointing to the right and the y-axis pointing down. The unit of measure in the default coordinate system is the pixel.

The Building Blocks of GDI+

Screenshot of the GDI Plus default coordinate system.

A computer monitor creates its display on a rectangular array of dots called picture elements or pixels. The number of pixels that appear on the screen varies from one monitor to the next, and the number of pixels that appear on an individual monitor can usually be configured to some extent by the user.

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

When you use GDI+ to draw a line, rectangle, or curve, you provide certain key information about the item to be drawn. For example, you can specify a line by providing two points, and you can specify a rectangle by providing a point, a height, and a width. GDI+ works in conjunction with the display driver software to determine which pixels must be turned on to show the line, rectangle, or curve. The following illustration shows the pixels that are turned on to display a line from the point (4, 2) to the point (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.

Over time, certain basic building blocks have proven to be the most useful for creating two-dimensional pictures. These building blocks, which are all supported by GDI+, are given in the following list:

  • Lines

  • Rectangles

  • Ellipses

  • Arcs

  • Polygons

  • Cardinal splines

  • Bezier splines

Methods For Drawing with a Graphics Object

The Graphics class in GDI+ provides the following methods for drawing the items in the previous list: DrawLine, DrawRectangle, DrawEllipse, DrawPolygon, DrawArc, DrawCurve (for cardinal splines), and DrawBezier. Each of these methods is overloaded; that is, each method supports several different parameter lists. For example, one variation of the DrawLine method receives a Pen object and four integers, while another variation of the DrawLine method receives a Pen object and two Point objects.

The methods for drawing lines, rectangles, and Bézier splines have plural companion methods that draw several items in a single call: DrawLines, DrawRectangles, and DrawBeziers. Also, the DrawCurve method has a companion method, DrawClosedCurve, that closes a curve by connecting the ending point of the curve to the starting point.

All of the drawing methods of the Graphics class work in conjunction with a Pen object. To draw anything, you must create at least two objects: a Graphics object and a Pen object. The Pen object stores attributes, such as line width and color, of the item to be drawn. The Pen object is passed as one of the arguments to the drawing method. For example, one variation of the DrawLine method receives a Pen object and four integers as shown in the following example, which draws a rectangle with a width of 100, a height of 50 and an upper-left corner of (20, 10):

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

See also