Vector graphics or geometric modeling describes the use of geometrical primitives such as points, lines, curves, and polygons to represent images in computer graphics. It is used by contrast to the term raster graphics, which is the representation of images as a collection of pixels (dots).
Virtually all modern current computer video displays translate vector representations of an image to a raster format. The raster image, containing a value for every pixel on the screen, is stored in memory and the entire screen is repainted 30 or more times per second.
Starting in the earliest days of computing in the 1950s and into the 1980s, a different type of display, the vector graphics system, was used. In these systems the electron beam of the CRT display monitor was steered directly to trace out the shapes required, line segment by line segment, with the rest of the screen remaining black. This process was repeated many times a second to achieve a flicker-free or near flicker-free picture. These systems allowed very high-resolution line art and moving images to be displayed without the (for that time) unthinkably huge amounts of memory that an equivalent-resolution raster system would have needed.
One of the first uses of vector graphic displays was the US SAGE air defense system. Vector graphics systems were only retired from U.S. enroute air traffic control in 1999 and are likely still in use in military and specialized systems. The term vector graphics is mainly used today in the context of two-dimensional computer graphics. It is one of several modes a programmer can use to create an image on a raster display. Other modes include text, multimedia and 3-d rendering. Virtually all modern 3-d rendering is done using extensions of 2-d vector graphics techniques. Plotters used in technical drafting still draw vectors directly to paper.
For example, consider a circle of radius r. The main pieces of information a program needs in order to draw this circle are
- the radius r
- the location of the center point of the circle
- stroke line style and colour (possibly transparent)
- fill style and colour (possibly transparent)
Advantages to this style of drawing over raster graphics:
- This minimal amount of information translates to a much smaller file size (the size of representation doesn't depend on the dimensions of the object).
- Correspondingly, one can indefinitely zoom in on e.g. a circle arc, and it remains smooth. On the other hand, a polygon representing a curve will reveal being not really curved.
- On zooming in, lines and curves need not get wider proportionally. Often the width is either not increased or less than proportional. On the other hand, irregular curves represented by simple geometric shapes may be made proportionally wider when zooming in, to keep them looking smooth and not like these geometric shapes.
- The parameters of objects are stored and can be later modified. This means that moving, scaling, rotating, filling etc. doesn't degrade the quality of a drawing. Moreover, it is usual to specify the dimensions in device-independent units , which results in the best possible rasterization on raster devices.
Typical primitive objects
This list is not complete. There are various types of curves (Catmull-Rom splines, NURBS etc.), which are useful in certain applications.
Often, a bitmap image is considered as a primitive object. From the conceptual view, it behaves as a rectangle.
Vector graphics editors typically allow to rotate, move, mirror, stretch, skew, generally perform affine transformations of objects, change z-order and combine the primitives into more complex objects.
More sophisticated transformations include boolean operations on closed shapes (union, difference, intersection...)
Vector graphics are ideal for simple or composite drawings that need to be device-independent, or do not need to achieve photo-realism. For example, the PostScript and PDF page description languages use a vector graphics model.
In 3D computer graphics, vectorized surface representations are most common (bitmaps can be used for special purposes such as surface texturing, height-field data and bumpmapping). At the low-end, simple meshes of polygons are used to represent geometric detail in applications where interactive frame rates or simplicity are important. At the high-end, where one is willing to trade-off higher rendering times for increased image quality and precision, smooth surface representations such as Bézier patches, NURBS or Subdivision surfaces are used. One can however achieve a smooth surface rendering from a polygonal mesh through the use of shading algorithms such as Phong.
- http://cairographics.org/ open vector graphics library
Last updated: 05-07-2005 17:57:39
Last updated: 05-13-2005 07:56:04