-5 5 setxrange
quadrillage
marks
/regle_graduee_var_dim {
%% on copie la parametre + les coordonnées du point d'appel, puis
%% on jette les coordonnees du point.
3 copy pop pop
1 add 0 jtoppoint
-1 -1 jtoppoint
exchp
} def
/regle_graduee_var {
5 dict begin
/longueur exch def
gsave
currentpoint ptojpoint stranslate
%% le corps de la regle
-1 -1 longueur 1 add 0 frame
%% l'etendue de ses graduations
0 longueur .01 add setxrange
.1 setxsubtkstep %% le pas pour les sous-graduations
%% redef des macros de graduations (chgt de longueur)
/xtick {4 xt@ck} def
/xsubtick {2.5 xt@ck} def
%% du coup on descend l'inscription des marques
/xmarkstyle {(0 -4) dctext} def
%% le dessin
gsave
0 -4 translate %% pour que les traits ne depassent pas de la regle
xticks %% les graduations
xmarks %% les marques
O xmark %% et le 0 qui n'est pas marque par defaut
grestore
0 -2.5 translate %% pour que les traits ne depassent pas de la regle
xsubticks %% les graduations
grestore
end
} def
8 %% longueur de la regle
O %% point d'appel
dupp point %% qu'on represente
() %% decalage (option)
[1 dup] %% echelle (option)
{30} %% angle de la rotation (option)
(regle_graduee_var) bcpict
%% une autre
3
-3 -4
dupp point
(regle_graduee_var) bbpict
%% une dernière
6
-4 4
dupp point
()
[.5 dup]
(regle_graduee_var) drpict
%% allez, encore une petite
6
-2 2
dupp point
[5 dup]
{-45}
(regle_graduee_var) bcpict
|