asymptote: Figure size
3.3 Figure size
===============
In 'Asymptote', coordinates like '(0,0)' and '(100,100)', called
_pairs_, are expressed in 'PostScript' "big points" (1 'bp' = 1/72
'inch') and the default line width is '0.5bp'. However, it is often
inconvenient to work directly in 'PostScript' coordinates. The next
example produces identical output to the previous example, by scaling
the line '(0,0)--(1,1)' to fit a rectangle of width '100.5 bp' and
height '100.5 bp' (the extra '0.5bp' accounts for the line width):
size(100.5,100.5);
draw((0,0)--(1,1));
[diagonal]
One can also specify the size in 'pt' (1 'pt' = 1/72.27 'inch'),
'cm', 'mm', or 'inches'. Two nonzero size arguments (or a single size
argument) restrict the size in both directions, preserving the aspect
ratio. If 0 is given as a size argument, no restriction is made in that
direction; the overall scaling will be determined by the other direction
(size):
size(0,100.5);
draw((0,0)--(2,1),Arrow);
[bigdiagonal]
To connect several points and create a cyclic path, use the 'cycle'
keyword:
size(3cm);
draw((0,0)--(1,0)--(1,1)--(0,1)--cycle);
[square]
For convenience, the path '(0,0)--(1,0)--(1,1)--(0,1)--cycle' may be
replaced with the predefined variable 'unitsquare', or equivalently,
'box((0,0),(1,1))'.
To make the user coordinates represent multiples of exactly '1cm':
unitsize(1cm);
draw(unitsquare);