Source PostScript (arrow.pps)

Retour Texte non formaté
%% /arrowpointe 12.5 def %% /arrowplume 2.5 def %% /arrow@ngle 60 def %% /arrowscale {1 1} def %% /arrowangle 0 def %% pour l'utilisateur %% %% /arrow { %% gsave %% arrowscale scale %% arrowangle rotate %% newpath %% 0 0 moveto %% arrowpointe neg 0 rmoveto %% ainsi c'est la pointe qui est en (0, 0) %% %% le pt extremal arriere haut %% arrowplume neg %% l'abscisse %% arrow@ngle sin arrow@ngle cos div arrowplume mul %% l'ordonnee %% rlineto %% arrowplume arrowpointe add %% arrow@ngle sin arrow@ngle cos div arrowplume mul neg %% rlineto %% arrowplume arrowpointe add neg %% arrow@ngle sin arrow@ngle cos div arrowplume mul neg %% rlineto %% closepath fill %% grestore %% } def /arrowlength 15 def /arrowsize 8.5 def /arrowinset 2.5 def /arrowscale {1 1} def /arrowangle 0 def %% pour l'utilisateur /arrow { gsave arrowscale scale arrowangle rotate newpath 0 0 moveto arrowlength neg arrowsize 2 div rlineto arrowinset arrowsize 2 div neg rlineto arrowinset neg arrowsize 2 div neg rlineto closepath fill stroke grestore } def %/ahalpha 35 def /ahlength 7 def %% %% syntaxe : C B A Arrow --> fleche d'extremite A %% /Arrow { %% 8 dict begin %% /A defpoint %% /B defpoint %% /C defpoint %% /alpha ahalpha 2 div def %% C A alpha rotatepoint /C0 defpoint %% B A alpha rotatepoint /B0 defpoint %% C A alpha neg rotatepoint /C1 defpoint %% B A alpha neg rotatepoint /B1 defpoint %% C C0 C1 axesympoint /C2 defpoint %% newpath %% C0 smoveto %% [C0 .. B0 .. A] draw_ %% [A .. B1 .. C1] draw_ %% C2 C C2 vecteur addv slineto %% closepath %% gsave fill grestore %% stroke %% end %% } def