La documentation donne :
To make the user coordinates of picture
picrepresent multiples ofxunits in the x direction andyunits in the y direction, usevoid unitsize(picture pic=currentpicture, real x, real y=x);When nonzero, these
xandyvalues override the corresponding size parameters of picturepic.
L’image suivante :
peut être envisagée de deux manières différentes en ce qui concerne l’écriture des coordonnées des points. Le code de cette image est le suivant :
<partie variable du code> pair A, B, C, D; A=(0,0); B=(2,0); C=(4,0); D=(4,2); draw (A--B); draw (C--D);
Soit on utilise les unités directement dans les coordonnées (en ne donnant aucune contrainte sur les paramètres de size ) :
size(0,0); pair A, B, C, D; A=(0,0); B=(2cm,0); C=(4cm,0); D=(4cm,2cm); draw (A--B); draw (C--D);
Soit on définit au préalable l’unité qui sera implicitement utilisée dans les coordonnées via unitsize :
unitsize(1cm); pair A, B, C,D; A=(0,0); B=(2,0); C=(4,0); D=(4,2); draw (A--B); draw (C--D);
On peut donner deux “unités” différentes en première coordonnée et deuxième coordonnée, comme dans :
unitsize(x=1cm, y=.5cm); pair A, B, C,D; A=(0,0); B=(2,0); C=(4,0); D=(4,2); draw(A--B); draw(C--D);
ce qui donne comme image :







