Vector Graphics Info
Motivation
For example, consider a circle of radius r. The main pieces of information a program needs in order to draw this circle are
an indication that what is to be drawn is a circle
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 compared to large raster images (the size of representation doesn't depend on the dimensions of the object), though a vector graphic with a small file size is often said to lack detail compared with a real world photo.
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.
From a 3-D perspective, rendering shadows is also much more realistic with vector graphics, as shadows can be abstracted into the rays of light which form them. This allows for photo realistic images and renderings.
Typical primitive objects
Lines and polylines
Polygons
Circles and ellipses
Bézier curves
Bezigons
Text (in computer font formats such as TrueType where each letter is created from Bézier curves)
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 operations
Vector graphics editors typically allow rotation, movement, mirroring, stretching, skewing, affine transformations, changing of z-order and combination of primitives into more complex objects.
More sophisticated transformations include set operations on closed shapes (union, difference, intersection, etc.).
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.
Printing
Vector art is key for printing. Since the art is made from a series of mathematical curves it will print very crisply even when resized. For instance, one can print a vector logo on a small sheet of copy paper, and then enlarge the same vector logo to billboard size and keep the same crisp quality. A low-resolution raster graphic would blur or pixelate excessively if it were enlarged from business card size to billboard size.
If we regard typographic characters as images, then the same considerations that we have made for graphics apply even to composition of written text for printing (typesetting). Older character sets were stored as bitmaps, therefore to achieve maximum print quality they had to be used at a given resolution only; these font formats are said to be non-scalable. High quality typography is nowadays based on character drawings (fonts) which are typically stored as vector graphics, and as such are scalable to any size. Examples of these vector formats for characters are Postscript fonts and TrueType fonts.
3D modelling
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 bump mapping). 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 and Gouraud.