PostScript Coordinates and Transformations
In PostScript there are essentially two coordinate systems, the user coordinate system and the device coordinate system.
The former is where you tell PostScript to draw things, and the latter is where the actual drawing is done. The device could be, for example, a computer screen or a laser printer. Computer devices draw digitally, that is to say they render things as pixels (dots), and the unit of length in the device coordinate system is usually one pixel. It is PostScript which makes the necessary transformation from one coordinate system to the other in order to draw what you tell it to. Next we shall discuss the mathematics of these transformations.
Transformations
At any point in a PostScript program there are six parameters which determine where a point with coordinates (x y) set by the user is placed on the device. Afterwards, these are mapped to a pair of device coordinates (x' y'). The formula that describes how user coordinates are mapped to device coordinates depends on six parameters. These are stored in a single array of the form [a b c d s t] and are substituted in the formula:
x' = ax + cy + s
y' = bx + dy + t
Thus, a defines the horizontal scaling, whereas d defines the vertical scaling. The middle parameters b and c define the skewing, and the last parameters s and t define the displacement, translation or shift along the X and Y axes respectively.