animal_procedure.ps 1000 Bytes
%animal_procedure%

/ccircle {
    0 360 arc
    stroke
} def

/ctriangle {
    moveto
    rlineto
    rlineto
    fill
} def

/cligne {
    moveto
    rlineto
    stroke
} def

%yeux
/ceye {
    gsave
    0 0 0 setrgbcolor
    1 setlinewidth
    2 copy
    20 ccircle
    2 0 360 arc
    fill
    grestore
} def

/cmoustache {
    1 eq {
        170
        /x exch def
        100 10 x 370 cligne
        100 0 x 390 cligne
        100 -10 x 410 cligne
    }
    {
        330
        /x exch def
        100 10 x 400 cligne
        100 0 x 390 cligne
        100 -10 x 380 cligne
    }ifelse
} def

%yeux
330 450 ceye
270 450 ceye

%moustaches
1 cmoustache
2 cmoustache

%oreilles
gsave
0.5 0 0 setrgbcolor
15 -25 30 50 227 470 ctriangle
30 -50 15 25 328 495 ctriangle
grestore

%nez
gsave
1 0.75 0.796 setrgbcolor
15 -15 15 15 285 390 ctriangle
grestore

%tete
gsave
4 setlinewidth
0.5 0 0 setrgbcolor
300 400 100 ccircle
stroke
grestore

%bouche
newpath
300 380 60 -160 -20 arc
closepath
stroke