home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 24 / CDACTUAL24.iso / corel / CUSTOM / USERPROC.PS < prev   
Encoding:
Text File  |  1997-11-07  |  94.6 KB  |  4,048 lines

  1. %%  --------------------------------------------------------------------
  2. %%  ----------- ARCHIVO DE FUNCIONES DEFINIDAS POR EL USUARIO ------------------
  3. %%  ------El nombre del archivo es: USERPROC.PS---------------------------------
  4. %% NOTAS:
  5.  
  6.  
  7.     Hay dos tipos de funciones definidas por el usuario: "Punto" y "Relleno"
  8.  
  9.     - Una funci≤n "Punto" es aquella que toma dos argumentos de coma flotante,
  10.         X e Y, ambas entre -1 y 1,  y devuelve un solo valor real entre
  11.         -1 y 1 (de lo contrario ocurre un error de ejecuci≤n) llamado Z.
  12.         El dominio es un rectßngulo de 2 X 2 que se asignarß (durante la impresi≤n)
  13.         a cada celda de la trama de medios tonos.
  14.         La representaci≤n en 3-D de la funci≤n Z = f(X,Y) (no necesita
  15.         ser continua, pero  f(X,Y) debe estar definida para todo -1 <= X, Y <= 1 )
  16.         es una superficie cuyos puntos mßs altos se blanquearßn primero en cada 
  17.         celda.
  18.         Para mßs informaci≤n sobre funciones de punto, consulte la secci≤n 4.8 de
  19.         POSTSCRIPT LANGUAGE REFERENCE MANUAL (de Adobe Systems
  20.         Inc.).
  21.  
  22.     - Una funci≤n de Relleno toma entre 0 y 5 argumentos.  Supone que ya hay un
  23.         trayecto dibujado (puede estar cerrado o no, puede estar desconectado) e
  24.         intenta rellenarlo.
  25.         Una funci≤n de relleno simple puede ser:
  26.                 /MiRelleno1 { %0 parßmetros
  27.                     0,70 relleno de gris } bind def
  28.         Para rellenos mßs complejos, la funci≤n de relleno puede referirse al
  29.         recuadro de limitaci≤n del objeto actual que siempre viene definido en
  30.         unidades de CORELDRAW (1/1000) de una pulgada y en relaci≤n al origen
  31.         l≤gico de CORELDRAW.
  32.  
  33.         Pueden usarse siempre Bbllx, Bblly, Bburx, Bbury globales para obtener las
  34.         esquinas inf. izquierda y sup. derecha del recuadro de limitaci≤n del objeto.
  35.  
  36.         NOTA 1: Para objetos con trayectos desconectados como palabras con 
  37.         m·ltiples letras y lφneas y curvas desconectadas, se llamarß a la funci≤n de
  38.          relleno un vez para cada subtrayecto. No obstante, el recuadro de limitaci≤n 
  39.         permanece igual para cada llamada.
  40.  
  41.         NOTA 2: Cuando CORELDRAW la llama, la funci≤n de relleno estarß dentro
  42.         de una secuencia "gsave - grestore" para que la funci≤n de relleno no
  43.         necesite restaurar es estado de los grßficos original. Ademßs, la funci≤n de
  44.         relleno no debe hacer ninguna suposici≤n sobre el estado actual de los 
  45.         grßficos que no sea la siguiente:    - El ßngulo de reotaci≤n actual es 0                                 (-90 para pßginas apaisadas)
  46.                         - La unidad actual es el MIL (1/1000 pulg.)
  47.                         - Hay un trayecto listo para rellenar.
  48.  
  49. SINTAXIS PARA ESTE ARCHIVO:
  50.     - Una definici≤n de funci≤n comienza con una lφnea de comentarios
  51. "%@Spot" o
  52.     "%@Fill" que comience en la lφnea uno indicando que se va a definir una
  53.     funci≤n punto o relleno.  Se ignora el recordatorio de esta lφnea.
  54.     - La lφnea que la sigue inmediatamente debe comenzar con un nombre de funci≤n
  55.     inmediatamente precedido por una '/' (barra) en la columna uno
  56.     (ej: /MiPrimerRelleno).
  57.     Este nombre se usarß para identificar el rellon en el archivo .CDR y los archivos
  58.     .EPS. El recordatorio de una lφnea indica el nombre que aparece en la ventana de
  59.     dißlogo de la funci≤n personalizada de CORELDRAW y los parßmetros de usuario
  60.     para esa funci≤n: Las funciones de punto no admiten parßmetros de usuario, s≤lo un
  61.     nombre de presentaci≤n. Las funciones de punto admiten de 0 a 5 parßmetros
  62.     especificados de la forma siguiente:
  63.  
  64.             %<nombrefnusuario>,<N║deparam> ,<nombreparam1>=<val.pordefecto1>,<nombreparam2>=<val.pordefecto2>,...
  65.  
  66. donde: <nombrefnusuario> es el nombre que se muestra en la lista de selecci≤n  PSFILL 
  67.                 , es la cadena que se traduce a las versiones de idiomas 
  68.                 extranjeros
  69.              <N║deparam> es un valor entero entre 0 y 5
  70.              <nombreparamX> es el significado del parßm. X (hasta 20 carac.)
  71.              <val.pordefectoX> es el valor numΘrico por defecto para ese parßm. (siempre
  72.                 entero)
  73. El n·mero de nombres de parßmetros y valore por defecto debe concordar siempre con el valor <N║deparam>.
  74. Antes de llamar a la funci≤n de relleno, el programa principal debe apilar los parßmetros en el mismo orden en el que se especificaron.
  75.  
  76. TODOS LOS PARAMETROS SON ENTEROS.
  77.  
  78. EJEMPLO: una funci≤n de relleno con 3 parßmetros
  79.  
  80.     %@Fill
  81.     /MiFunci≤n  %MiNombredeFunci≤n,3,GrisáFondo:=100,Gris1eráPlano:=50,Densidad:=4
  82.     {% cuando se llama, PILA= <GrisFondo> <Gris1erPlano> <Densidad>
  83.         /Interc. densidad 1 10 def InRange        % validar densidad
  84.         /Interc. Gris1er.Plano 0 100 def InRange    % validar gris 1er. plano
  85.         /Interc. GrisFondo 0 100 def InRange        % validar gris fondo
  86.             ...
  87.             } bind def
  88.  
  89.             NOTA: la funci≤n PostScript 'InRange'.
  90.             El programa principal no puede validar la gama de los parßmetros.
  91.             La funci≤n de relleno puede usar la funci≤n: 'InRange' que se
  92.             describe a continuaci≤n:
  93.                 <valor> <mφn> <mßx> InRange  ==>  <valnuevo>
  94.             InRange toma 3 argumentos from de la pila y se asegura de que 
  95.             <valor> estΘ entre <mφn> y <mßx>. Si es asφ, deja a <valor>
  96.             en la pila, de lo contrario, introduce un <valnuevo> vßlido en la pila.
  97.  
  98.             Nota: La funci≤n PostScript 'wDstChck' .
  99.             En el caso de que un valor mßximo sea igual a uno mφnimo, la
  100.             diferencia serß nula y en la mayorφa de los casos provocarß una
  101.             divisi≤n por cero.
  102.             La funci≤n de relleno puede usar la funci≤n que se proporciona:
  103.             'wDstChck'  que se describe a continuaci≤n:
  104.                 <ValorMßx> <ValorMφn> wDstChck ==> ValorMßx o ValMßx+1
  105.                 Si los dos valores son iguales, a±ada 1 al ValorMßx y dΘjelo en la
  106.             pila deje el ValorMßx sin cambiar en la pila.
  107.  
  108.     - Las siguientes n lφneas contienen el cuerpo de la funci≤n encerrada entre  llaves y
  109.     seguida de la secuencia "bin def".
  110.     - CORELDRAW no analiza el contenido del cuerpo. Una definici≤n se termina 
  111.     cuando se lee la siguiente secuencia '%@..." o al final del archivo.
  112.     - Las lφneas no debe exceder 150 caracteres de longitud..
  113.     - Los nombres de funci≤n no deben exceder los 20 caracteres.
  114.     - Los nombres de parßmetro no deben exceder los 20 caracteres..
  115.     - No hay lφmite para el n·mero de lφneas de cada funci≤n.
  116.  
  117.  
  118. %@Spot
  119. /Dot2 %Punto2
  120.         { %def --SPOT FUNCTION : DOT2: black around cells
  121.         dup mul exch dup mul add 1 sub
  122.         } bind def
  123.  
  124. %@Spot
  125. /OutCircleBlk %CirExtNeg
  126.         { %def --SPOT FUNCTION : OUTCIRCLE: empty black circles
  127.         dup mul exch dup mul add
  128.         0.6 exch sub abs -0.5 mul
  129.         } bind def
  130.  
  131. %@Spot
  132. /OutCircleWhi %CirExtBlan
  133.         { %def --SPOT FUNCTION : OUTCIRCLE: empty black circles
  134.         dup mul exch dup mul add
  135.         0.6 exch sub abs 0.5 mul
  136.         } bind def
  137.  
  138. %@Spot
  139. /Diamond %Diamante
  140.         { %def --SPOT FUNCTION : DIAMOND
  141.         abs exch abs add 1 exch sub
  142.         } bind def
  143.  
  144. %@Spot
  145. /Diamond2 %Diamante2
  146.         { %def --SPOT FUNCTION : DIAMOND2
  147.                 abs exch abs 2 copy add .75
  148.                 le {dup mul exch dup mul add 1
  149.                 exch sub} {2 copy add 1.25 
  150.                 le {.85 mul add 1 exch sub} 
  151.                 {1 sub dup mul exch 1 sub dup mul
  152.                 add 1 sub} ifelse} ifelse
  153.         } bind def
  154.  
  155. %@Spot
  156. /MicroWaves %MicroOndas
  157.         { %def --SPOT FUNCTION : MICROWAVES
  158.         /wy exch def
  159.         180 mul cos 2 div wy dup dup dup mul mul sub mul wy add
  160.         180 mul cos
  161.         } bind def
  162.  
  163. %@Spot
  164. /Grid %Rejilla
  165.         { % UNA REJILLA CUADRADA
  166.         2 copy
  167.         abs exch abs
  168.         gt {exch} if
  169.         pop 2 mul 1 exch sub 3.5 div
  170.         } bind def
  171.  
  172. %@Spot
  173. /Lines %Lφneas
  174.         { % LINEAS RECTAS
  175.         pop abs 2 mul 1 exch sub
  176.         } bind def
  177.  
  178. %@Spot
  179. /Star %Estrella
  180.      {
  181.      abs exch abs
  182.      2 copy gt {exch} if
  183.      1  sub
  184.     dup 0 eq {0.01 add}if
  185.      atan 360 div
  186.      } bind def
  187.  
  188. %@Spot
  189. /Euclidean %Euclideana
  190.         { %def --SPOT FUNCTION : EUCLIDEANA composite dot
  191.                 abs exch abs
  192.                 2 copy add 1
  193.                 gt {1 sub dup mul
  194.                 exch 1 sub dup mul 
  195.                 add 1 sub} {dup mul exch
  196.                 dup mul add 1 exch sub}
  197.                 ifelse
  198.         } bind def
  199.  
  200. %@Spot
  201. /Rhomboid %Romboide
  202.              { %def --SPOT FUNCTION : ROMBOIDE
  203.                 abs exch abs .8
  204.                 mul add 2 div
  205.         } bind def
  206.  
  207. %@Spot
  208. /Elliptical %ElφpticaInvertida
  209.              { %def --SPOT FUNCTION : ELIPTICA
  210.                 dup mul .9 mul
  211.                 exch dup mul add
  212.                 1 sub
  213.         } bind def
  214.  
  215. %----------------------------------------------------------------------------
  216.  
  217. %@Fill
  218. /Archimedes %Arquφmedes,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  219.    {
  220.    /BackgroundGray exch -1 100 InRange def
  221.    /ForegroundGray exch 0 100 InRange def
  222.    /Linewidth      exch 0 100 InRange def
  223.    /Frequency      exch 2 100 InRange def
  224.  
  225.    /newfont 10 dict def
  226.    newfont begin
  227.  
  228.    /FontMatrix [3 sqrt 1 add 1 exch div  0  0
  229.                3 sqrt 1 add 1 exch div  0  0] def
  230.    /FontType 3 def
  231.    /FontBBox [0 0 3 sqrt 1 add 3 sqrt 1 add] def
  232.    /Encoding 256 array def
  233.    0 1 255 {Encoding exch /.notdef put} for
  234.  
  235.    /BuildChar
  236.      { 3 sqrt 1 add  0
  237.        -0.1 -0.1 3 sqrt 1.1 add 3 sqrt 1.1 add
  238.        setcachedevice
  239.        pop begin
  240.  
  241.        0 0 moveto
  242.        1 2 div  0 lineto
  243.        0  3 sqrt 2 div lineto
  244.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  245.        0  3 sqrt 2 div 1 add lineto
  246.        0  3 sqrt 2 div lineto
  247.  
  248.        0  3 sqrt 2 div 1 add moveto
  249.        1 2 div  3 sqrt 1 add lineto
  250.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  251.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  252.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  253.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  254.        3 sqrt 1 2 div add  3 sqrt 1 add lineto
  255.        3 sqrt 1 add  3 sqrt 2 div 1 add lineto
  256.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  257.        3 sqrt 1 add  3 sqrt 2 div lineto
  258.        3 sqrt 1 2 div add  0 lineto
  259.        3 sqrt 1 add 2 div  1 2 div lineto
  260.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  261.  
  262.        3 sqrt 1 add 2 div  3 sqrt 1 add moveto
  263.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  264.  
  265.        3 sqrt 1 add 2 div  0  moveto
  266.        3 sqrt 1 add 2 div  1 2 div lineto
  267.  
  268.        1 2 div  0 moveto
  269.        3 sqrt 1 add 2 div  1 2 div lineto
  270.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  271.  
  272.        3 sqrt 1 2 div add  0 moveto
  273.        3 sqrt 1 add  0 lineto
  274.  
  275.        3 sqrt 1 2 div add  3 sqrt 1 add moveto
  276.        3 sqrt 1 add  3 sqrt 1 add lineto
  277.  
  278.        0  3 sqrt 1 add moveto
  279.        1 2 div  3 sqrt 1 add lineto
  280.  
  281.        3 sqrt 1 add  3 sqrt 2 div moveto
  282.        3 sqrt 1 add  3 sqrt 2 div 1 add lineto
  283.  
  284.        Linewidth pntsize div 3 sqrt 1 add mul setlinewidth
  285.        stroke
  286.  
  287.       end
  288.      } def
  289.    end
  290.  
  291.    /pntsize 2000 Frequency div def
  292.    /FillFont newfont definefont pop
  293.    /FillFont findfont pntsize scalefont setfont
  294.  
  295.    eoclip
  296.    BackgroundGray 0 ge
  297.       { BackgroundGray 100 div 1 exch sub setgray fill }
  298.       { newpath } ifelse
  299.  
  300.    ForegroundGray 100 div 1 exch sub setgray
  301.  
  302.    Bblly pntsize Bbury
  303.      { Bbllx pntsize Bburx
  304.        { 1 index moveto
  305.        (a) show
  306.        } for
  307.      pop
  308.      } for
  309.    } bind def
  310.  
  311. %@Fill
  312. /Bars %Barras,4, Ancho:=10, Espaciadoá(%):=100, GrisáMßximo:=100, GrisáMφnimo:=10
  313.    {
  314.    /MinGrey exch 0 100 InRange def
  315.    /MaxGrey exch MinGrey 100 InRange def
  316.    /Spacing exch 0 300 InRange def
  317.    /Width exch 1 100 InRange def
  318.  
  319.    /dgrey MaxGrey MinGrey sub def
  320.    /inc 1 Spacing 100 div add def
  321.  
  322.    eoclip newpath
  323.  
  324.    currentscreen
  325.    3 -1 roll
  326.    pop 90
  327.    3 1 roll
  328.    setscreen
  329.  
  330.    Bbllx Bblly translate
  331.    /dx Bburx Bbllx sub Width div def
  332.    /dy Bbury Bblly sub Width div def
  333.    Width 10 mul dup scale
  334.    /mtx matrix currentmatrix def
  335.    .05 setlinewidth
  336.  
  337.    0 inc dx
  338.      { 0 translate
  339.       -.5 .05 .5
  340.          { dup 0 moveto
  341.            dup dy lineto
  342.            dup mul 0.250001 exch sub sqrt 2 mul
  343.            dgrey mul MaxGrey exch sub 100 div 1 exch sub setgray
  344.            stroke
  345.          } for
  346.       mtx setmatrix
  347.       } for
  348.    dx 0 translate
  349.    90 rotate
  350.    /mtx matrix currentmatrix def
  351.    0 inc dy
  352.      { 0 translate
  353.       -.5 .05 .5
  354.          { dup 0 moveto
  355.            dup dx lineto
  356.            dup mul 0.250001 exch sub sqrt 2 mul
  357.            dgrey mul MaxGrey exch sub 100 div 1 exch sub setgray
  358.            stroke
  359.          } for
  360.       mtx setmatrix
  361.       } for
  362.    } bind def
  363.  
  364. %@Fill
  365. /Basketweave %CestaEntrelazada,4, Frecuencia:=6, AnchoáLφnea:=10, Grisá1eráPlano:=100, AnchoáOndaá(%):=100
  366.    {
  367.    /Width exch 1 200 InRange def
  368.    /Grey exch 0 100 InRange def
  369.    /LineWidth exch 0 100 InRange def
  370.    /Frequency exch 1 100 InRange def
  371.  
  372.    /dif Width 100 sub 100 div def
  373.  
  374.    /newfont 10 dict def
  375.    newfont begin
  376.  
  377.    /FontMatrix [.25  0
  378.                 0    .25
  379.                 0    0] def
  380.    /FontType 3 def
  381.    /FontBBox [0 0 4 4] def
  382.    /Encoding 256 array def
  383.    0 1 255 {Encoding exch /.notdef put} for
  384.    Encoding 97 /Holes put
  385.    Encoding 98 /Weave put
  386.  
  387.    /CharProcs 3 dict def
  388.    CharProcs begin
  389.    /.notdef {} def
  390.    /Holes
  391.       {
  392.       1 dif moveto
  393.       2 dif sub 1 lineto
  394.       1 2 dif sub lineto
  395.       dif 1 lineto
  396.       closepath
  397.       fill
  398.  
  399.       3 2 dif add moveto
  400.       4 dif sub 3 lineto
  401.       3 4 dif sub lineto
  402.       2 dif add 3 lineto
  403.       closepath
  404.       fill
  405.       } def
  406.    /Weave
  407.       {
  408.       0 3 dif add moveto
  409.       1 dif sub 4 lineto
  410.  
  411.       0 1 dif add moveto
  412.       1 dif lineto
  413.  
  414.       3 dif sub 4 moveto
  415.       4 dif sub 3 lineto
  416.  
  417.       1 dif sub 0 moveto
  418.       2 dif sub 1 lineto
  419.  
  420.       4 3 dif add moveto
  421.       3 2 dif add lineto
  422.  
  423.       3 dif sub 0 moveto
  424.       1 2 dif sub lineto
  425.  
  426.       4 1 dif add moveto
  427.       2 dif add 3 lineto
  428.  
  429.       dif 1 moveto
  430.       3 4 dif sub lineto
  431.  
  432.       LineWidth 100 div setlinewidth
  433.       stroke
  434.       } def
  435.    end
  436.  
  437.    /BuildChar
  438.      { 4  0
  439.        -0.1 -0.1 4.1 4.1
  440.        setcachedevice
  441.        exch begin
  442.        Encoding exch get
  443.        CharProcs exch get
  444.        end
  445.        exec
  446.      } def
  447.    end
  448.  
  449.    /pntsize 1000 Frequency div def
  450.  
  451.    /FillFont newfont definefont pop
  452.    /FillFont findfont pntsize scalefont setfont
  453.  
  454.    eoclip newpath
  455.  
  456.    Grey 100 div 1 exch sub setgray
  457.    Bblly pntsize Bbury
  458.      { Bbllx exch moveto
  459.        { (a) show
  460.          currentpoint
  461.          pop Bburx gt
  462.          {exit} if
  463.        } loop
  464.      } for
  465.  
  466.    0 setgray
  467.    Bblly pntsize Bbury
  468.      { Bbllx exch moveto
  469.        { (b) show
  470.          currentpoint
  471.          pop Bburx gt
  472.          {exit} if
  473.        } loop
  474.      } for
  475.  
  476.    } bind def
  477.  
  478. %@Fill
  479. /Birds %Pßjaros,4, Frecuencia:=8, AnchoáLφnea:=4, Grisá1eráPlano:=100, GrisáFondo:=0
  480.    {
  481.    /BackgroundGray exch -1 100 InRange def
  482.    /ForegroundGray exch 0 100 InRange def
  483.    /Linewidth      exch 0 100 InRange def
  484.    /Frequency      exch 2 100 InRange def
  485.  
  486.    /newfont 10 dict def
  487.    newfont begin
  488.  
  489.    /FontMatrix [1 162 div  0
  490.                 0         1 162 div
  491.                 0         0] def
  492.    /FontType 3 def
  493.    /FontBBox [-92 -150 46 12] def
  494.    /Encoding 256 array def
  495.    0 1 255 {Encoding exch /.notdef put} for
  496.  
  497.    /BuildChar
  498.      { 138  0
  499.        -92 -150 46 12
  500.        setcachedevice
  501.        pop begin
  502.  
  503.        2 {
  504.          gsave
  505.          3 {
  506.            -10 -8 moveto
  507.            60 24  -54 60  -9 72 curveto
  508.            -2.5 73.7  11.5 70.3  29 75.4 curveto
  509.  
  510.            -54 6 moveto
  511.            -45 14  -27 16  -18 18 curveto
  512.            27 27  -81 54  -9 90 curveto
  513.  
  514.            -126 9 moveto
  515.            -114 27  -66 66  -54 24 curveto
  516.            -53 21  -49 15  -43 12 curveto
  517.  
  518.            [ -1     0
  519.               0     1
  520.               0     0 ] concat
  521.              135 -81 translate
  522.          } repeat
  523.  
  524.        Linewidth pntsize div 162 mul setlinewidth
  525.        stroke
  526.        grestore
  527.        138 0 translate
  528.  
  529.      } repeat
  530.  
  531.      end
  532.      } def
  533.    end
  534.  
  535.    /pntsize 1174 Frequency div def
  536.  
  537.    /FillFont newfont definefont pop
  538.    /FillFont findfont pntsize scalefont setfont
  539.  
  540.    eoclip
  541.    BackgroundGray 0 ge
  542.       { BackgroundGray 100 div 1 exch sub setgray fill }
  543.       { newpath } ifelse
  544.  
  545.    ForegroundGray 100 div 1 exch sub setgray
  546.  
  547.     Bblly pntsize Bbury
  548.         { Bbllx exch moveto
  549.         { (a) show
  550.           currentpoint
  551.           pop Bburx gt
  552.           {exit} if
  553.         } loop
  554.       } for
  555.     } bind def
  556.  
  557. %@Fill
  558. /Bricks %Ladrillos,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  559.    {
  560.    /BackgroundGray exch -1 100 InRange def
  561.    /ForegroundGray exch 0 100 InRange def
  562.    /Linewidth      exch 0 100 InRange def
  563.    /Frequency      exch 2 100 InRange def
  564.  
  565.    /newfont 10 dict def
  566.    newfont begin
  567.  
  568.    /FontMatrix [1  0  0
  569.                 1  0  0] def
  570.    /FontType 3 def
  571.    /FontBBox [0 0 1 1] def
  572.    /Encoding 256 array def
  573.    0 1 255 {Encoding exch /.notdef put} for
  574.  
  575.    /BuildChar
  576.      { 1  0
  577.        -0.1 -0.1 1.1 1.1
  578.        setcachedevice
  579.        pop begin
  580.  
  581.        0 0 moveto
  582.        1 0 lineto
  583.        1 .5 lineto
  584.        0 .5 lineto
  585.        closepath
  586.        .5 .5 moveto
  587.        .5 1 lineto
  588.  
  589.        Linewidth pntsize div setlinewidth
  590.        stroke
  591.  
  592.       end
  593.      } def
  594.    end
  595.  
  596.    /pntsize 1000 Frequency div def
  597.  
  598.    /FillFont newfont definefont pop
  599.    /FillFont findfont pntsize scalefont setfont
  600.  
  601.    eoclip
  602.    BackgroundGray 0 ge
  603.       { BackgroundGray 100 div 1 exch sub setgray fill }
  604.       { newpath } ifelse
  605.  
  606.    ForegroundGray 100 div 1 exch sub setgray
  607.  
  608.    Bblly pntsize Bbury
  609.      { Bbllx exch moveto
  610.        { (a) show
  611.          currentpoint
  612.          pop Bburx gt
  613.          {exit} if
  614.        } loop
  615.      } for
  616.    } bind def
  617.  
  618. %@Fill
  619. /Bubbles %Burbujas,5, N·meroá(pulgadas2):=25, Tama±oáMßximo:=300, Tama±oáMφnimo:=10, AnchoáLφnea:=10, Funci≤náAleatoria:=0
  620.    { srand
  621.    /LineWidth exch 0 50 InRange def
  622.    /MinSize exch 1 1000 InRange def
  623.    /MaxSize exch MinSize 1000 InRange def
  624.    /Number exch 1 250 InRange def
  625.  
  626.    eoclip
  627.    newpath
  628.    /pntsize MaxSize MinSize div cvi def
  629.    /dx Bburx Bbllx sub def
  630.    /dy Bbury Bblly sub def
  631.  
  632.    dx dy mul Number mul 1000000 div cvi
  633.    {  rand dx mod Bbllx add
  634.       rand dy mod Bblly add
  635.       rand pntsize mod 1 add pntsize exch div MinSize mul
  636.       3 copy
  637.       2 index add
  638.       exch
  639.       moveto
  640.       pop
  641.       0 360 arc
  642.       gsave
  643.       0 setgray
  644.       LineWidth setlinewidth
  645.       stroke
  646.       grestore
  647.       1 setgray
  648.       fill
  649.       } repeat
  650.  
  651.    } bind def
  652.  
  653. %@Fill
  654. /Carpet %Alfombra,5, Frecuenciaá(dpi):=72, Gris:=100, Gammaá(TamáCuadro):=50, FactoráMod:=3, Alpha:=10
  655.    {
  656.    /Alpha exch def
  657.    /Modf exch def
  658.    /Gamma exch def
  659.    /Grey exch 0 100 InRange def
  660.    /Frequency exch 10 300 InRange def
  661.  
  662.    /Beta1 -10 def
  663.    /Beta2 -15 def
  664.  
  665.    eoclip newpath
  666.  
  667.    /wz 360 def
  668.    2 1 Gamma sqrt
  669.       { dup Gamma exch mod
  670.       0 eq { dup wz exch mod
  671.            0 eq { /wz wz 2 index div cvi def
  672.                 } if
  673.            } if
  674.       pop
  675.       } for
  676.  
  677.    /newfont 10 dict def
  678.    newfont begin
  679.  
  680.    /FontMatrix [1 wz div  0
  681.                 0          1 wz div
  682.                 0          0] def
  683.    /FontType 3 def
  684.    /FontBBox [0 0 wz wz] def
  685.    /Encoding 256 array def
  686.    0 1 255 {Encoding exch /.notdef put} for
  687.  
  688.    /BuildChar
  689.      { wz  0
  690.        -0.1 -0.1 wz 0.1 add wz 0.1 add
  691.        setcachedevice
  692.        pop begin
  693.  
  694.       0 1 wz
  695.          { 0 1 wz
  696.             { 1 index 2 copy
  697.             Gamma mul Beta2 add sin
  698.             exch Gamma mul Beta1 add sin
  699.             add Alpha mul cvi Modf mod
  700.             0 eq { moveto
  701.                   1 0 rlineto
  702.                   0 1 rlineto
  703.                   -1 0 rlineto
  704.                   closepath
  705.                   fill }
  706.                  { pop pop } ifelse
  707.             }   for
  708.          pop
  709.          } for
  710.  
  711.        end
  712.      } def
  713.    end
  714.  
  715.    /pntsize wz 1000 mul Frequency div def
  716.  
  717.    /FillFont newfont definefont pop
  718.    /FillFont findfont pntsize scalefont setfont
  719.  
  720.    Grey 100 div 1 exch sub setgray
  721.    Bblly pntsize Bbury
  722.      { Bbllx 1 index moveto
  723.        { (a) show
  724.          currentpoint
  725.          dup 3 index sub
  726.          pntsize 2 div gt { pntsize sub } if
  727.          1 index Bburx gt
  728.          {pop pop pop exit} if
  729.          moveto
  730.        } loop
  731.      } for
  732.    } bind def
  733.  
  734. %@Fill
  735. /CircleGrid %RejillaCircular,5, Frecuencia:=6, AnchoáLφnea1:=6, AnchoáLφnea2:=6, Gris1:=40, Gris2:=40
  736.    {
  737.    /Grey2 exch -1 100 InRange def
  738.    /Grey1 exch -1 100 InRange def
  739.    /LineWidth2 exch 0 100 InRange def
  740.    /LineWidth1 exch 0 100 InRange def
  741.    /Frequency exch 1 72 InRange def
  742.  
  743.    /newfont 10 dict def
  744.    newfont begin
  745.  
  746.    /FontMatrix [1 3 sqrt 3 mul div  0
  747.                 0                   1 3 sqrt 3 mul div
  748.                 0                   0] def
  749.    /FontType 3 def
  750.    /FontBBox [0 0 2 3 sqrt 3 mul] def
  751.  
  752.    /Encoding 256 array def
  753.    0 1 255 {Encoding exch /.notdef put} for
  754.    Encoding 97 /OneCircle put
  755.    Encoding 98 /OneCircleFilled put
  756.    Encoding 99 /TwoCircles put
  757.    Encoding 100 /TwoCirclesFilled put
  758.  
  759.    /CharProcs 5 dict def
  760.    CharProcs begin
  761.    /.notdef {} def
  762.    /OneCircle
  763.      { 1 3 sqrt 2 div add  3 sqrt 5 mul 2 div moveto
  764.        1  3 sqrt 5 mul 2 div  3 sqrt 2 div 0 360 arc
  765.  
  766.        LineWidth1 pntsize div 3 sqrt 3 mul mul setlinewidth
  767.        stroke
  768.    } def
  769.  
  770.    /OneCircleFilled
  771.      { 1 3 sqrt 2 div add  3 sqrt 5 mul 2 div moveto
  772.        1  3 sqrt 5 mul 2 div  3 sqrt 2 div 0 350 arc
  773.  
  774.        fill
  775.    } def
  776.  
  777.    /TwoCircles
  778.      { 1 3 sqrt 2 div add  3 sqrt 2 div moveto
  779.        1 3 sqrt 2 div dup 0 360 arc
  780.  
  781.        1 3 sqrt 2 div add  3 sqrt 3 mul 2 div moveto
  782.        1  3 sqrt 3 mul 2 div  3 sqrt 2 div 0 360 arc
  783.  
  784.        LineWidth2 pntsize div 3 sqrt 3 mul mul setlinewidth
  785.        stroke
  786.    } def
  787.  
  788.    /TwoCirclesFilled
  789.      { 1 3 sqrt 2 div add  3 sqrt 2 div moveto
  790.        1 3 sqrt 2 div dup 0 360 arc
  791.  
  792.        1 3 sqrt 2 div add  3 sqrt 3 mul 2 div moveto
  793.        1  3 sqrt 3 mul 2 div  3 sqrt 2 div 0 360 arc
  794.  
  795.        fill
  796.    } def
  797.  
  798.    end
  799.  
  800.    /BuildChar
  801.      {3 2 div  3 sqrt 3 mul 2 div
  802.       -0.1 -0.1 2.1  3 sqrt 3 mul 0.1 add
  803.       setcachedevice
  804.       exch begin
  805.       Encoding exch get
  806.       CharProcs exch get
  807.       end
  808.       exec
  809.      }def
  810.    end
  811.  
  812.    /pntsize 3000 Frequency div def
  813.  
  814.    /FillFont newfont definefont pop
  815.    /FillFont findfont pntsize scalefont setfont
  816.  
  817.    /Bbllx Bbllx pntsize sub def
  818.    /Bblly Bblly pntsize sub def
  819.    /Bburx Bburx pntsize add def
  820.    /Bbury Bbury pntsize add def
  821.  
  822.    eoclip newpath
  823.  
  824.    Grey1 0 ge
  825.       { Grey1 100 div 1 exch sub setgray
  826.       Bblly pntsize Bbury
  827.         { Bbllx 1 index moveto
  828.           { (b) show
  829.             currentpoint
  830.             dup 3 index sub
  831.             pntsize 2.1 div gt { pntsize sub } if
  832.             1 index Bburx gt
  833.             {pop pop pop exit} if
  834.             moveto
  835.           } loop
  836.        } for
  837.       } if
  838.  
  839.    Grey2 0 ge
  840.       { Grey2 100 div 1 exch sub setgray
  841.       Bblly pntsize Bbury
  842.         { Bbllx 1 index moveto
  843.           { (d) show
  844.             currentpoint
  845.             dup 3 index sub
  846.             pntsize 2.1 div gt { pntsize sub } if
  847.             1 index Bburx gt
  848.             {pop pop pop exit} if
  849.             moveto
  850.           } loop
  851.         } for
  852.       } if
  853.  
  854.    LineWidth1 0 gt
  855.       { 0 setgray
  856.       Bblly pntsize Bbury
  857.         { Bbllx 1 index moveto
  858.           { (a) show
  859.             currentpoint
  860.             dup 3 index sub
  861.             pntsize 2.1 div gt { pntsize sub } if
  862.             1 index Bburx gt
  863.             {pop pop pop exit} if
  864.             moveto
  865.           } loop
  866.         } for
  867.       } if
  868.  
  869.    LineWidth2 0 gt
  870.       { 0 setgray
  871.       Bblly pntsize Bbury
  872.         { Bbllx 1 index moveto
  873.           { (c) show
  874.             currentpoint
  875.             dup 3 index sub
  876.             pntsize 2.1 div gt { pntsize sub } if
  877.             1 index Bburx gt
  878.             {pop pop pop exit} if
  879.             moveto
  880.           } loop
  881.         } for
  882.       } if
  883.  
  884.    } bind def
  885.  
  886. %@Fill
  887. /Construction %Construcci≤n,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  888.    {
  889.    /BackgroundGray exch -1 100 InRange def
  890.    /ForegroundGray exch 0 100 InRange def
  891.    /Linewidth      exch 0 100 InRange def
  892.    /Frequency      exch 2 100 InRange def
  893.  
  894.    /newfont 10 dict def
  895.    newfont begin
  896.  
  897.    /FontMatrix  [ .1     0
  898.                   0      .1
  899.                   0      0] def
  900.    /FontType 3 def
  901.    /FontBBox [-1 -1 9.66 11] def
  902.    /Encoding 256 array def
  903.    0 1 255 {Encoding exch /.notdef put} for
  904.  
  905.    /BuildChar
  906.      { 8.66 5
  907.        -1 -1 9.66 11
  908.        setcachedevice
  909.        pop begin
  910.  
  911.        1 0 moveto
  912.        0 0 1 -60 300 arc
  913.        3 sqrt 5 mul .5 add  5 3 sqrt 2 div sub lineto
  914.        3 sqrt 5 mul  5  1  -60 420 arc
  915.        .5  10 3 sqrt 2 div add lineto
  916.        0 10 1 60 180 arc
  917.        -1 0 lineto
  918.  
  919.        -.5 3 sqrt 2 div moveto
  920.        3 sqrt 5 mul .5 sub  5 3 sqrt 2 div add lineto
  921.        3 sqrt 5 mul .5 sub  5 3 sqrt 2 div sub moveto
  922.        -.5  10 3 sqrt 2 div sub lineto
  923.        1 10 moveto
  924.        1 0 lineto
  925.  
  926.        Linewidth pntsize div 10 mul setlinewidth
  927.        stroke
  928.       end
  929.      } def
  930.    end
  931.  
  932.    /pntsize 1126 Frequency div def
  933.    /FillFont newfont definefont pop
  934.    /FillFont findfont pntsize scalefont setfont
  935.  
  936.    /Bbllx Bbllx pntsize sub def
  937.  
  938.    eoclip
  939.    BackgroundGray 0 ge
  940.       { BackgroundGray 100 div 1 exch sub setgray fill }
  941.       { newpath } ifelse
  942.  
  943.    ForegroundGray 100 div 1 exch sub setgray
  944.  
  945.    Bblly pntsize Bbury
  946.      { Bbllx 1 index moveto
  947.        { (a) show
  948.          currentpoint
  949.          dup 3 index sub
  950.          pntsize 2.1 div gt { pntsize sub } if
  951.          1 index Bburx gt
  952.          {pop pop pop exit} if
  953.          moveto
  954.        } loop
  955.      } for
  956.    } bind def
  957.  
  958. %@Fill
  959. /Cracks %Grietas,5, N·mero:=20, LongáMßx:=125, LongáMφn:=75, LongáEtapa:=14, AnchoáLφnea:=5
  960.    {
  961.    /LineWidth exch 0 100 InRange def
  962.    /StepLength exch 1 100 InRange def
  963.    /MinLength exch 1 300 InRange def
  964.    /MaxLength exch MinLength 300 InRange MinLength wDstChck def
  965.    /Number exch 1 100 InRange def
  966.  
  967.    eoclip newpath
  968.  
  969.    /dx Bburx Bbllx sub def
  970.    /dy Bbury Bblly sub def
  971.  
  972.    Number {
  973.       gsave
  974.       /theta rand 360 mod def
  975.  
  976.       rand dx mod Bbllx add
  977.       rand dy mod Bblly add
  978.       moveto
  979.  
  980.       StepLength dup scale
  981.       LineWidth StepLength div setlinewidth
  982.  
  983.       MinLength
  984.       MaxLength MinLength sub
  985.       rand 1 index mod 2 index add
  986.          {
  987.          currentpoint translate
  988.          rand 120 mod 60 sub theta add dup rotate
  989.          0 0 moveto
  990.          1 0 lineto
  991.          stroke
  992.          1 0 moveto
  993.          neg rotate
  994.          } repeat
  995.       grestore
  996.       pop pop
  997.       } repeat
  998.    } bind def
  999.  
  1000. %@Fill
  1001. /Craters %Crßteres,5, N·mero:=15, Tama±oáMßximo:=300, Tama±oáMφnimo:=75, GrisáFondo:=0, Funci≤náAleatoria:=0
  1002.    { srand
  1003.    /BackgroundGrey exch 0 100 InRange def
  1004.    /MinSize exch 1 500 InRange def
  1005.    /MaxSize exch MinSize 500 InRange MinSize wDstChck def
  1006.    /Number exch 1 50 InRange def
  1007.  
  1008.    eoclip
  1009.    BackgroundGrey 100 div 1 exch sub setgray
  1010.    fill
  1011.  
  1012.    /pntsize 333 def
  1013.    /dx Bburx Bbllx sub def
  1014.    /dy Bbury Bblly sub def
  1015.    /DifSize MaxSize MinSize sub cvi def
  1016.  
  1017.    Bbllx Bblly translate
  1018.  
  1019.    matrix currentmatrix
  1020.    dx dy mul 1000000 div Number mul cvi {
  1021.       dup
  1022.       rand dx mod  rand dy mod  translate
  1023.       /size rand DifSize mod MinSize add def
  1024.       0 0 size .7 mul  0 360 arc
  1025.       BackgroundGrey 100 div 1 exch sub setgray fill
  1026.  
  1027.       0
  1028.          { rand 18 mod add 10 add
  1029.          dup 360 gt { pop exit } if
  1030.          dup rotate
  1031.          size 5 div  0 moveto
  1032.          rand 300 mod 200 add 500 div size mul  0 lineto
  1033.          dup neg rotate
  1034.          } loop
  1035.  
  1036.       0 setgray
  1037.       1 setlinewidth
  1038.       stroke
  1039.       setmatrix
  1040.       } repeat
  1041.    pop
  1042.    } bind def
  1043.  
  1044. %@Fill
  1045. /Crosshatching %RayadoEnCruz,5, Dist.áMßxima:=75, Dist.áMφnima:=0, AnchoáLφnea:=5, Angulo:=45, Funci≤náAleatoria:=0
  1046.    { srand
  1047.    /Angle exch -180 180 InRange def
  1048.    /LineWidth exch 0 100 InRange def
  1049.    /MinDist exch 0 500 InRange def
  1050.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  1051.  
  1052.    eoclip
  1053.    newpath
  1054.  
  1055.    /pntsize MaxDist MinDist sub def
  1056.    /dx2 Bburx Bbllx sub 2 div def
  1057.    /dy2 Bbury Bblly sub 2 div def
  1058.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  1059.  
  1060.    Bbllx Bblly translate
  1061.    dx2 dy2 translate
  1062.    Angle rotate
  1063.    LineWidth setlinewidth
  1064.  
  1065.    /wd hyp2 neg def
  1066.       { /wd rand pntsize mod MinDist add wd add def
  1067.       wd hyp2 neg moveto
  1068.       wd hyp2 lineto
  1069.       stroke
  1070.       wd hyp2 gt {exit} if
  1071.       } loop
  1072.  
  1073.    Angle -2 mul rotate
  1074.    /wd hyp2 neg def
  1075.       { /wd rand pntsize mod MinDist add wd add def
  1076.       wd hyp2 neg moveto
  1077.       wd hyp2 lineto
  1078.       stroke
  1079.       wd hyp2 gt {exit} if
  1080.       } loop
  1081.  
  1082.    } bind def
  1083.  
  1084. %@Fill
  1085. /CrystalLattice %Enrejado,4, Frecuencia:=4, GrisáFondo:=100, Grisá1eráPlano:=0, Escalaá(%):=75
  1086.    {
  1087.    /Scaling exch 10 100 InRange def
  1088.    /FrontGrey exch 0 100 InRange def
  1089.    /BackGrey exch -100 100 InRange def
  1090.    /Frequency exch 1 50 InRange def
  1091.  
  1092.    /newfont 10 dict def
  1093.    newfont begin
  1094.  
  1095.    /FontMatrix [1                   0
  1096.                 0                   1
  1097.                 0                   0] def
  1098.    /FontType 3 def
  1099.    /FontBBox [0 0 1 1] def
  1100.    /Encoding 256 array def
  1101.    0 1 255 {Encoding exch /.notdef put} for
  1102.  
  1103.    /BuildChar
  1104.      { 1 0
  1105.        -0.1 -0.1 1.1 1.1
  1106.        setcachedevice
  1107.        pop begin
  1108.  
  1109.        gsave
  1110.        0 0 moveto
  1111.        3 { 1 0 lineto
  1112.          currentpoint translate
  1113.          90 rotate
  1114.          } repeat
  1115.        closepath
  1116.        .05 setlinewidth
  1117.        stroke
  1118.        grestore
  1119.  
  1120.        gsave
  1121.        4 { .2 0 moveto
  1122.          0 0 .2 0 360 arc
  1123.          fill
  1124.          1 0 translate
  1125.          90 rotate
  1126.          } repeat
  1127.        grestore
  1128.  
  1129.        end
  1130.      } def
  1131.    end
  1132.  
  1133.    /pntsize 1000 Frequency div cvi def
  1134.  
  1135.    /FillFont newfont definefont pop
  1136.    /FillFont findfont pntsize scalefont setfont
  1137.  
  1138.    /dx Bburx Bbllx sub def
  1139.    /dy Bbury Bblly sub def
  1140.  
  1141.    eoclip newpath
  1142.  
  1143.    currentscreen
  1144.    3 -1 roll
  1145.    pop 120
  1146.    3 1 roll
  1147.    setscreen
  1148.  
  1149.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1150.  
  1151.    /dx dx 100 mul Scaling div def
  1152.    /dy dy 100 mul Scaling div def
  1153.  
  1154.    Scaling 100 div dup scale
  1155.    100 Scaling div log 10 div 10 exch exp
  1156.    BackGrey 0 100 InRange 100 div  FrontGrey BackGrey sub 1000 div  FrontGrey .1 sub 100 div
  1157.       { 1 exch sub setgray
  1158.       dup dup scale
  1159.       dy 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1160.         pntsize   dy pntsize add 2 div
  1161.         { dx 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1162.           1 index moveto
  1163.           { (a) show
  1164.             currentpoint
  1165.             dup 3 index sub
  1166.             pntsize 2.1 div gt { pntsize sub } if
  1167.             1 index dx pntsize add 2 div gt
  1168.             { pop pop pop exit } if
  1169.             moveto
  1170.           } loop
  1171.         } for
  1172.       } for
  1173.       pop
  1174.    } bind def
  1175.  
  1176. %@Fill
  1177. /Denim %Tela,5, Frecuencia:=72, GrisáMßximo:=100, GrisáMφnimo:=0, TramaáMedáTonos:=60, Funci≤náAleatoria:=0
  1178.    { srand
  1179.    /Screen exch 30 300 InRange def
  1180.    /MinGrey exch 0 100 InRange def
  1181.    /MaxGrey exch MinGrey 100 InRange def
  1182.    /Frequency exch 1 300 InRange def
  1183.  
  1184.    eoclip newpath
  1185.  
  1186.    currentscreen
  1187.    3 -1 roll
  1188.    pop Screen
  1189.    3 1 roll
  1190.    setscreen
  1191.  
  1192.    /dx Bburx Bbllx sub def
  1193.    /dy Bbury Bblly sub def
  1194.    /wf Frequency 1000 div def
  1195.    /dgrey MaxGrey MinGrey sub 100 div def
  1196.  
  1197.    Bbllx Bblly translate
  1198.    /str 512 string def
  1199.  
  1200.    dx wf mul cvi 1 add  dy wf mul cvi 1 add  8  [wf 0 0 wf 0 0]
  1201.       { dgrey MinGrey 2.55 mul
  1202.       0 1 511
  1203.          { str exch
  1204.          rand -11 bitshift 255 and 4 index mul 3 index add cvi
  1205.          put
  1206.          } for
  1207.       pop pop
  1208.       str
  1209.      }image
  1210.  
  1211.    } bind def
  1212.  
  1213. %@Fill
  1214. /DNA %ADN,5, Frecuencia:=4, AnchoáLφnea:=1, Grisá1eráPlano:=100, GrisáFondo:=0, Espaciadoá(%):=100
  1215.    {
  1216.    /Spacing        exch 1 300 InRange def
  1217.    /BackgroundGray exch -1 100 InRange def
  1218.    /ForegroundGray exch 0 100 InRange def
  1219.    /Linewidth      exch 0 100 InRange def
  1220.    /Frequency      exch 1 100 InRange def
  1221.  
  1222.    /newfont 10 dict def
  1223.    newfont begin
  1224.  
  1225.    /FontMatrix [1 360 div           0
  1226.                 0                   1 360 div
  1227.                 0                   0] def
  1228.    /FontType 3 def
  1229.    /FontBBox [-20 0 20 360] def
  1230.    /Encoding 256 array def
  1231.    0 1 255 {Encoding exch /.notdef put} for
  1232.  
  1233.    /BuildChar
  1234.      { Spacing 110
  1235.        -20  0 20 360
  1236.        setcachedevice
  1237.        pop begin
  1238.  
  1239.        Linewidth pntsize mul 110 div setlinewidth
  1240.        0 0 moveto
  1241.        0 1 360
  1242.           { dup sin 20 mul exch lineto
  1243.           } for
  1244.        stroke
  1245.        20 0 moveto
  1246.        0 1 360
  1247.           { dup cos 20 mul exch lineto
  1248.           } for
  1249.        stroke
  1250.        0 20 360
  1251.           { dup dup sin 20 mul exch moveto
  1252.           dup cos 20 mul exch lineto
  1253.           } for
  1254.        stroke
  1255.  
  1256.        end
  1257.      } def
  1258.    end
  1259.  
  1260.    /pntsize 2000 Frequency div def
  1261.  
  1262.    /FillFont newfont definefont pop
  1263.    /FillFont findfont pntsize scalefont setfont
  1264.  
  1265.    eoclip
  1266.    BackgroundGray 0 ge
  1267.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1268.       { newpath } ifelse
  1269.  
  1270.    ForegroundGray 100 div 1 exch sub setgray
  1271.  
  1272.    Bblly pntsize sub pntsize Bbury pntsize add
  1273.      { Bbllx 1 index moveto
  1274.        { (a) show
  1275.          currentpoint
  1276.          dup 3 index sub
  1277.          pntsize 2.1 div gt { pntsize sub } if
  1278.          1 index Bburx gt
  1279.          {pop pop pop exit} if
  1280.          moveto
  1281.        } loop
  1282.      } for
  1283.    } bind def
  1284.  
  1285. %@Fill
  1286. /Fishscale %Escamas,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  1287.    {
  1288.    /BackgroundGray exch -1 100 InRange def
  1289.    /ForegroundGray exch 0 100 InRange def
  1290.    /Linewidth      exch 0 100 InRange def
  1291.    /Frequency      exch 2 100 InRange def
  1292.  
  1293.    /newfont 10 dict def
  1294.    newfont begin
  1295.  
  1296.    /FontMatrix [1  0  0
  1297.                 1  0  0] def
  1298.    /FontType 3 def
  1299.    /FontBBox [0 0 1 1] def
  1300.    /Encoding 256 array def
  1301.    0 1 255 {Encoding exch /.notdef put} for
  1302.  
  1303.    /BuildChar
  1304.      { 1  0
  1305.        0 0 1 1
  1306.        setcachedevice
  1307.        pop begin
  1308.  
  1309.        0.5 0.5 0.5 360 180 arcn
  1310.        0 1 0.5 270 360 arc
  1311.        1 1 0.5 180 270 arc
  1312.  
  1313.        Linewidth pntsize div setlinewidth
  1314.        stroke
  1315.  
  1316.       end
  1317.      } def
  1318.    end
  1319.  
  1320.    /pntsize 1000 Frequency div def
  1321.    /FillFont newfont definefont pop
  1322.    /FillFont findfont pntsize scalefont setfont
  1323.  
  1324.    eoclip
  1325.    BackgroundGray 0 ge
  1326.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1327.       { newpath } ifelse
  1328.  
  1329.    ForegroundGray 100 div 1 exch sub setgray
  1330.  
  1331.     Bblly pntsize Bbury
  1332.       { Bbllx exch moveto
  1333.         { (a) show
  1334.           currentpoint
  1335.           pop Bburx gt
  1336.           {exit} if
  1337.         } loop
  1338.       } for
  1339.     } bind def
  1340.  
  1341.  
  1342. %@Fill
  1343. /Grass %Hierba,5, N·mero:=100, Tama±oáMßximo:=35, Tama±oáMφnimo:=7, Gris:=0, Funci≤náAleatoria:=0
  1344.     { srand
  1345.     /Grey exch -1 100 InRange def
  1346.     /MinSize exch 1 100 InRange def
  1347.     /MaxSize exch MinSize 100 InRange MinSize wDstChck def
  1348.     /Number exch 1 500 InRange def
  1349.  
  1350.     eoclip
  1351.     Grey 0 ge
  1352.        { Grey 100 div 1 exch sub setgray fill }
  1353.        { newpath } ifelse
  1354.  
  1355.     /Bbllx Bbllx MaxSize sub def
  1356.     /Bblly Bblly MaxSize sub def
  1357.  
  1358.     /dx Bburx Bbllx sub def
  1359.     /dy Bbury Bblly sub def
  1360.     /dSize MaxSize MinSize sub def
  1361.  
  1362.     dx dy mul 1000000 div Number mul cvi
  1363.        {
  1364.  
  1365.        matrix currentmatrix
  1366.  
  1367.        rand dx mod Bbllx add
  1368.        rand dy mod Bblly add
  1369.        translate
  1370.  
  1371.        rand dSize mod MinSize add
  1372.        dup scale
  1373.  
  1374.        -0.5 0 moveto
  1375.        rand 14 mod 7 sub
  1376.        -0.5 3  2 index 3 div 0.3 sub 10  4 index 10 curveto
  1377.        3 div 0.3 add 10 0.5 3 0.5 0 curveto
  1378.        gsave
  1379.        1 setgray
  1380.        fill
  1381.        grestore
  1382.        0.1 setlinewidth
  1383.        0 setgray
  1384.        stroke
  1385.  
  1386.        setmatrix
  1387.  
  1388.        } repeat
  1389.  
  1390.      } bind def
  1391.  
  1392. %@Fill
  1393. /Hatching %Rayado,5, Dist.áMßxima:=75, Dist.áMφnima:=0, AnchoáLφnea:=5, Angulo:=45, Funci≤náAleatoria:=0
  1394.    { srand
  1395.    /Angle exch -180 180 InRange def
  1396.    /LineWidth exch 0 100 InRange def
  1397.    /MinDist exch 0 500 InRange def
  1398.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  1399.  
  1400.    eoclip
  1401.    newpath
  1402.  
  1403.    /pntsize MaxDist MinDist sub def
  1404.    /dx2 Bburx Bbllx sub 2 div def
  1405.    /dy2 Bbury Bblly sub 2 div def
  1406.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  1407.  
  1408.    Bbllx Bblly translate
  1409.    dx2 dy2 translate
  1410.    Angle rotate
  1411.    LineWidth setlinewidth
  1412.  
  1413.    /wd hyp2 neg def
  1414.  
  1415.       { /wd rand pntsize mod MinDist add wd add def
  1416.       wd hyp2 neg moveto
  1417.       wd hyp2 lineto
  1418.       stroke
  1419.       wd hyp2 gt {exit} if
  1420.       } loop
  1421.  
  1422.    } bind def
  1423.  
  1424. %@Fill
  1425. /Hexagons %Hexßgonos,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  1426.    {
  1427.    /BackgroundGray exch -1 100 InRange def
  1428.    /ForegroundGray exch 0 100 InRange def
  1429.    /LineWidth      exch 0 100 InRange def
  1430.    /Frequency      exch 2 100 InRange def
  1431.  
  1432.    /newfont 10 dict def
  1433.    newfont begin
  1434.  
  1435.    /FontMatrix [1 3 sqrt div        0
  1436.                 0                   1 3 sqrt div
  1437.                 0                   0] def
  1438.    /FontType 3 def
  1439.    /FontBBox [0 0 2 3 sqrt] def
  1440.    /Encoding 256 array def
  1441.    0 1 255 {Encoding exch /.notdef put} for
  1442.  
  1443.    /BuildChar
  1444.      { 3 2 div  3 sqrt 2 div
  1445.        -0.1 -0.1 2.1 3 sqrt 0.1 add
  1446.        setcachedevice
  1447.        pop begin
  1448.  
  1449.        1 2 div  0 moveto
  1450.        3 2 div  0 lineto
  1451.        2  3 sqrt 2 div lineto
  1452.        3 2 div  3 sqrt lineto
  1453.        1 2 div  3 sqrt lineto
  1454.        0  3 sqrt 2 div lineto
  1455.        closepath
  1456.  
  1457.        LineWidth pntsize div 3 sqrt mul setlinewidth
  1458.        stroke
  1459.  
  1460.       end
  1461.      } def
  1462.    end
  1463.  
  1464.    /pntsize 1155 Frequency div def
  1465.    /FillFont newfont definefont pop
  1466.    /FillFont findfont pntsize scalefont setfont
  1467.  
  1468.    eoclip
  1469.    BackgroundGray 0 ge
  1470.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1471.       { newpath } ifelse
  1472.  
  1473.    ForegroundGray 100 div 1 exch sub setgray
  1474.  
  1475.    Bblly pntsize Bbury
  1476.      { Bbllx 1 index moveto
  1477.        { (a) show
  1478.          currentpoint
  1479.          dup 3 index sub
  1480.          pntsize 2 div gt { pntsize sub } if
  1481.          1 index Bburx gt
  1482.          {pop pop pop exit} if
  1483.          moveto
  1484.        } loop
  1485.      } for
  1486.    } bind def
  1487.  
  1488. %@Fill
  1489. /Honeycomb %Panal,5, Frecuencia:=4, GrisáFondo:=100, Grisá1eráPlano:=0, Escalaá(%):=75, AnchoáLφnea:=5
  1490.    {
  1491.    /LineWidth exch 0 100 InRange def
  1492.    /Scaling exch 10 100 InRange def
  1493.    /FrontGrey exch 0 100 InRange def
  1494.    /BackGrey exch -100 100 InRange def
  1495.    /Frequency exch 1 50 InRange def
  1496.  
  1497.    /newfont 10 dict def
  1498.    newfont begin
  1499.  
  1500.    /FontMatrix [1 3 sqrt div        0
  1501.                 0                   1 3 sqrt div
  1502.                 0                   0] def
  1503.    /FontType 3 def
  1504.    /FontBBox [0 0 2 3 sqrt] def
  1505.    /Encoding 256 array def
  1506.    0 1 255 {Encoding exch /.notdef put} for
  1507.  
  1508.    /BuildChar
  1509.      { 3 2 div  3 sqrt 2 div
  1510.        -0.1 -0.1 2.1 3 sqrt 0.1 add
  1511.        setcachedevice
  1512.        pop begin
  1513.  
  1514.        1 2 div  0 moveto
  1515.        3 2 div  0 lineto
  1516.        2  3 sqrt 2 div lineto
  1517.        3 2 div  3 sqrt lineto
  1518.        1 2 div  3 sqrt lineto
  1519.        0  3 sqrt 2 div lineto
  1520.        closepath
  1521.  
  1522.        LineWidth pntsize div 3 sqrt mul setlinewidth
  1523.        stroke
  1524.  
  1525.       end
  1526.      } def
  1527.    end
  1528.  
  1529.    /pntsize 1000 Frequency div cvi def
  1530.  
  1531.    /FillFont newfont definefont pop
  1532.    /FillFont findfont pntsize scalefont setfont
  1533.  
  1534.    /dx Bburx Bbllx sub def
  1535.    /dy Bbury Bblly sub def
  1536.  
  1537.    eoclip newpath
  1538.  
  1539.    currentscreen
  1540.    3 -1 roll
  1541.    pop 120
  1542.    3 1 roll
  1543.    setscreen
  1544.  
  1545.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1546.  
  1547.    /dx dx 100 mul Scaling div def
  1548.    /dy dy 100 mul Scaling div def
  1549.  
  1550.    Scaling 100 div dup scale
  1551.    100 Scaling div log 10 div 10 exch exp
  1552.    BackGrey 0 100 InRange 100 div  FrontGrey BackGrey sub 1000 div  FrontGrey .1 sub 100 div
  1553.       { 1 exch sub setgray
  1554.       dup dup scale
  1555.       dy 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1556.         pntsize   dy pntsize add 2 div
  1557.         { dx 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1558.           1 index moveto
  1559.           { (a) show
  1560.             currentpoint
  1561.             dup 3 index sub
  1562.             pntsize 2.1 div gt { pntsize sub } if
  1563.             1 index dx pntsize add 2 div gt
  1564.             { pop pop pop exit } if
  1565.             moveto
  1566.           } loop
  1567.         } for
  1568.       } for
  1569.    pop
  1570.    } bind def
  1571.  
  1572. %@Fill
  1573. /Impact %Impacto,5, AnchoáLφnea:=5, LongáEtapa:=15, AnguloáMßximo:=40, AnguloáMφnimo:=10, Funci≤náAleatoria:=0
  1574.    { srand
  1575.    /MinAng exch 2 90 InRange def
  1576.    /MaxAng exch MinAng 90 InRange MinAng wDstChck def
  1577.    /Step exch 10 500 InRange def
  1578.    /Linewidth exch 0 100 InRange def
  1579.  
  1580.    eoclip
  1581.    newpath
  1582.  
  1583.    /dx Bburx Bbllx sub def
  1584.    /dy Bbury Bblly sub def
  1585.    /DifAng MaxAng MinAng sub def
  1586.  
  1587.    Bbllx Bblly translate
  1588.  
  1589.    dx 2 div  dy 2 div  translate
  1590.    Linewidth Step div setlinewidth
  1591.    Step Step scale
  1592.  
  1593.    /theta 0 def
  1594.       { matrix currentmatrix
  1595.       /theta theta rand DifAng mod add MinAng add def
  1596.       theta 360 gt {pop exit} if
  1597.       theta rotate
  1598.       0 0 moveto
  1599.       rand 150 mod 50 add
  1600.          {
  1601.          currentpoint translate
  1602.          rand 120 mod 60 sub theta add dup rotate
  1603.          1 0 lineto
  1604.          neg rotate
  1605.          } repeat
  1606.       stroke
  1607.       setmatrix
  1608.       } loop
  1609.    } bind def
  1610.  
  1611.  
  1612. %@Fill
  1613. /Landscape %Paisaje,4, Profundidad:=6, GrisáMßximo:=100, GrisáMφnimo:=0, Funci≤náAleatoria:=0
  1614.    {
  1615.    srand
  1616.    /MinGrey exch 0 100 InRange def
  1617.    /MaxGrey exch MinGrey 100 InRange def
  1618.    /maxdepth exch 1 7 InRange def
  1619.  
  1620.    /dGrey MaxGrey MinGrey sub 200 div def
  1621.    /AvGrey MaxGrey MinGrey add 200 div def
  1622.  
  1623.    eoclip newpath
  1624.    /depth 0 def
  1625.    /ardepth 2 maxdepth 1 sub exp cvi def
  1626.    /height 1.8 8 maxdepth sub exp def
  1627.  
  1628.    /horz 0 def
  1629.    /vert 0 def
  1630.    /Array ardepth 1 add array def
  1631.    0 1 ardepth
  1632.       { Array exch ardepth 1 add array put
  1633.       } for
  1634.    0 1 ardepth
  1635.       { Array exch get
  1636.       0 1 ardepth
  1637.          { 2 copy 0 put
  1638.          pop
  1639.          } for
  1640.       pop
  1641.       } for
  1642.  
  1643.    /Square
  1644.       {
  1645.       /depth depth 1 add def
  1646.       depth maxdepth eq
  1647.       {
  1648.       Array horz get vert get dup 1 add dup moveto                    %ur
  1649.       Array horz 1 add get vert get dup 1 add lineto             %ul
  1650.       Array horz 1 add get vert 1 add get dup dup lineto         %ll
  1651.       Array horz get vert 1 add get dup 1 add exch lineto             %lr
  1652.       closepath
  1653.       sub
  1654.       dGrey mul AvGrey add
  1655.       setgray
  1656.       fill }
  1657.  
  1658.       {
  1659.       /wd 2 maxdepth depth sub 1 sub exp cvi def
  1660.  
  1661.       Array horz wd 2 mul add get vert wd 2 mul add get
  1662.       Array horz get vert wd 2 mul add get
  1663.       Array horz wd 2 mul add get vert get
  1664.       Array horz get vert get
  1665.  
  1666.       4 copy add add add 4 div
  1667.             rand 50 mod 25 sub height div 2 depth exp div add
  1668.       Array horz wd add get
  1669.             vert wd add 2 index put  pop
  1670.  
  1671.       3 index 2 index add 2 div
  1672.             rand 50 mod 25 sub height div 2 depth exp div add
  1673.       Array horz wd 2 mul add get
  1674.             vert wd add 2 index put   pop
  1675.  
  1676.       3 index 3 index add 2 div
  1677.             rand 50 mod 25 sub height div 2 depth exp div add
  1678.       Array horz wd add get
  1679.             vert wd 2 mul add 2 index put   pop
  1680.  
  1681.       horz 0 eq
  1682.       { 2 index 1 index add 2 div
  1683.             rand 50 mod 25 sub height div 2 depth exp div add
  1684.       Array horz get
  1685.             vert wd add 2 index put    pop
  1686.       } if
  1687.  
  1688.       vert 0 eq
  1689.       { 1 index 1 index add 2 div
  1690.             rand 50 mod 25 sub height div 2 depth exp div add
  1691.       Array horz wd add get
  1692.             vert 2 index put          pop
  1693.       } if
  1694.  
  1695.       pop pop pop pop
  1696.       .5 .5 translate
  1697.       .5 .5 scale
  1698.       Square
  1699.       2 2 scale
  1700.  
  1701.       /horz horz 2 maxdepth depth sub 1 sub exp cvi add def
  1702.       -.5 0 translate
  1703.       .5 .5 scale
  1704.       Square
  1705.       2 2 scale
  1706.       /horz horz 2 maxdepth depth sub 1 sub exp cvi sub def
  1707.  
  1708.       /vert vert 2 maxdepth depth sub 1 sub exp cvi add def
  1709.       .5 -.5 translate
  1710.       .5 .5 scale
  1711.       Square
  1712.       2 2 scale
  1713.       /vert vert 2 maxdepth depth sub 1 sub exp cvi sub def
  1714.  
  1715.       /horz horz 2 maxdepth depth sub 1 sub exp cvi add def
  1716.       /vert vert 2 maxdepth depth sub 1 sub exp cvi add def
  1717.       -.5 0 translate
  1718.       .5 .5 scale
  1719.       Square
  1720.       2 2 scale
  1721.       /horz horz 2 maxdepth depth sub 1 sub exp cvi sub def
  1722.       /vert vert 2 maxdepth depth sub 1 sub exp cvi sub def
  1723.  
  1724.       } ifelse
  1725.       /depth depth 1 sub def
  1726.  
  1727.    } def
  1728.  
  1729.    /dx Bburx Bbllx sub def
  1730.    /dy Bbury Bblly sub def
  1731.    /hyp dx dup mul dy dup mul add sqrt def
  1732.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1733.    hyp 1.2 mul dup scale
  1734.    45 rotate
  1735.    -.5 -.5 translate
  1736.  
  1737.    currentscreen
  1738.    3 -1 roll
  1739.    pop 120
  1740.    3 1 roll
  1741.    setscreen
  1742.  
  1743.    0 0 0 0
  1744.    Square
  1745.    4{ pop }repeat
  1746.  
  1747.    } bind def
  1748.  
  1749. %@Fill
  1750. /Leaves %Hojas,5, N·meroá(pulgadas2):=50, GrisáMßximo:=100, GrisáMφnimo:=0, Tama±oáMßximo:=100, Tama±oáMφnimo:=10
  1751.    {
  1752.    /MinSize exch 1 200 InRange def
  1753.    /MaxSize exch MinSize 200 InRange MinSize wDstChck def
  1754.    /MinGrey exch 0 100 InRange def
  1755.    /MaxGrey exch MinGrey 100 InRange def
  1756.    /Number exch 1 250 InRange def
  1757.  
  1758.    eoclip newpath
  1759.    currentscreen
  1760.    3 -1 roll
  1761.    pop 90
  1762.    3 1 roll
  1763.    setscreen
  1764.  
  1765.    /dx Bburx Bbllx sub def
  1766.    /dy Bbury Bblly sub def
  1767.  
  1768.    dx dy mul Number mul 1000000 div cvi
  1769.       {
  1770.       matrix currentmatrix
  1771.  
  1772.       rand dx mod Bbllx add
  1773.       rand dy mod Bblly add
  1774.       translate
  1775.  
  1776.       rand 360 mod
  1777.       rotate
  1778.  
  1779.       MaxSize MinSize eq
  1780.         { Maxsize 10.8 div }
  1781.         { rand MaxSize MinSize sub mod MinSize add 10.8 div } ifelse
  1782.       dup scale
  1783.  
  1784.       17 0 moveto
  1785.       65 -18 106 -13 125 0 curveto
  1786.       106 13  65  18  17 0 curveto
  1787.       gsave
  1788.       MaxGrey MinGrey eq
  1789.         { MaxGrey 100 div }
  1790.         { rand MaxGrey MinGrey sub mod MinGrey add 100 div } ifelse
  1791.       setgray
  1792.       fill
  1793.       grestore
  1794.       0.3 setlinewidth
  1795.       0 setgray
  1796.       stroke
  1797.  
  1798.       setmatrix
  1799.  
  1800.       } repeat
  1801.  
  1802.    } bind def
  1803.  
  1804. %@Fill
  1805. /Mesh %Malla,5, Frecuencia:=6, Tama±oáCuadradoá(%):=80, SombraáInferIzda:=3, SombraáSup.áDcha:=15, Grisá1eráPlano:=100
  1806.    {
  1807.    /ForegroundGray exch 0 100 InRange def
  1808.    /Shadow2 exch 0 100 InRange def
  1809.    /Shadow1 exch 0 100 InRange def
  1810.    /SquareSize exch 1 100 InRange def
  1811.    /Frequency exch 1 25 InRange def
  1812.  
  1813.    /newfont 10 dict def
  1814.    newfont begin
  1815.  
  1816.    /FontMatrix [1         0
  1817.                 0         1
  1818.                 0         0] def
  1819.    /FontType 3 def
  1820.    /FontBBox [0 0 1 1] def
  1821.    /Encoding 256 array def
  1822.    0 1 255 {Encoding exch /.notdef put} for
  1823.  
  1824.    /BuildChar
  1825.      { 1  0
  1826.        -0.1 -0.1 1.1 1.1
  1827.        setcachedevice
  1828.        pop begin
  1829.  
  1830.        0 setlinejoin
  1831.  
  1832.        SquareSize 100 div dup scale
  1833.        0 0 moveto
  1834.        1 0 lineto
  1835.        1 1 lineto
  1836.        0 1 lineto
  1837.        closepath
  1838.  
  1839.        Shadow1 100 div
  1840.        1 Shadow2 100 div sub
  1841.        1 index dup moveto
  1842.        1 index 1 index lineto
  1843.        dup dup lineto
  1844.        dup 2 index lineto
  1845.        closepath
  1846.        2{pop}repeat
  1847.        fill
  1848.  
  1849.        end
  1850.      } def
  1851.    end
  1852.  
  1853.    /pntsize 1000 Frequency div def
  1854.  
  1855.    /FillFont newfont definefont pop
  1856.    /FillFont findfont pntsize scalefont setfont
  1857.  
  1858.    eoclip newpath
  1859.  
  1860.    ForegroundGray 100 div 1 exch sub setgray
  1861.  
  1862.    Bblly pntsize Bbury
  1863.      { Bbllx exch moveto
  1864.        { (a) show
  1865.          currentpoint
  1866.          pop Bburx gt
  1867.          {exit} if
  1868.        } loop
  1869.      } for
  1870.    } bind def
  1871.  
  1872. %@Fill
  1873. /Motifs %Motivos,4, Motivo:=1, Frecuencia:=2, Espaciadoá(%):=100, Grisá1eráPlano:=100
  1874.    {
  1875.    /ForegroundGray exch 0 100 InRange def
  1876.    /Spacing exch 1 300 InRange def
  1877.    /Frequency exch 1 25 InRange def
  1878.    /Character exch 1 8 InRange def
  1879.  
  1880.    /str 1 string def
  1881.    str 0 Character put
  1882.  
  1883.    /newfont 10 dict def
  1884.    newfont begin
  1885.  
  1886.    /FontMatrix [.001                0
  1887.                 0                   .001
  1888.                 0                   0] def
  1889.    /FontType 3 def
  1890.    /FontBBox [0 0 500 1000] def
  1891.  
  1892.    /Encoding 256 array def
  1893.    0 1 255 {Encoding exch /.notdef put} for
  1894.    Encoding  1 /CanadianFlag put
  1895.    Encoding  2 /Corels put
  1896.    Encoding  3 /Globe put
  1897.    Encoding  4 /CubeSolid put
  1898.    Encoding  5 /CubeFrame put
  1899.    Encoding  6 /Balls put
  1900.    Encoding  7 /Checkerboard put
  1901.    Encoding  8 /CCCTlogo put
  1902.  
  1903.    /CharProcs 9 dict def
  1904.    CharProcs begin
  1905.    /.notdef {} def
  1906.    /CanadianFlag
  1907.      { 9.6 9.6 scale
  1908.        9 -30 translate
  1909.  
  1910.        -9 60 moveto
  1911.        -9 30 lineto
  1912.        -1 30 lineto
  1913.        -1 60 lineto
  1914.        closepath
  1915.  
  1916.        43 60 moveto
  1917.        43 30 lineto
  1918.        35 30 lineto
  1919.        35 60 lineto
  1920.        closepath
  1921.  
  1922.        17 58 moveto
  1923.        15 54 lineto
  1924.        12 55 lineto
  1925.        14 47 lineto
  1926.        10 51 lineto
  1927.        10 49 lineto
  1928.        05 50 lineto
  1929.        07 45 lineto
  1930.        05 45 lineto
  1931.        12 39 lineto
  1932.        10 37 lineto
  1933.        16.5 38 lineto
  1934.        16.5 32 lineto
  1935.        17.5 32 lineto
  1936.        17.5 38 lineto
  1937.        24 37 lineto
  1938.        22 39 lineto
  1939.        29 45 lineto
  1940.        27 45 lineto
  1941.        29 50 lineto
  1942.        24 49 lineto
  1943.        24 51 lineto
  1944.        20 47 lineto
  1945.        22 55 lineto
  1946.        19 54 lineto
  1947.        closepath
  1948.  
  1949. %       0.3 setlinewidth
  1950. %       stroke
  1951.        fill
  1952.        } def
  1953.    /Corels
  1954.        { 250 250 translate
  1955.        113 113 scale
  1956.  
  1957.        7 { 45 rotate
  1958.          gsave
  1959.          1 2 sqrt div 1 add 0 translate
  1960.          .5 .5 moveto
  1961.          -.5 .5 lineto
  1962.          -.5 -.5 lineto
  1963.          .5 -.5 lineto
  1964.          closepath
  1965.          fill
  1966.          grestore
  1967.          } repeat
  1968.        } def
  1969.    /Globe
  1970.        {
  1971.        250 250 translate
  1972.        250 250 scale
  1973.        0 1 4
  1974.           { matrix currentmatrix exch
  1975.           22.5 mul sin
  1976.           1 scale
  1977.           0 0 1 90 450 arc
  1978.           setmatrix
  1979.           } for
  1980.  
  1981.        -3 1 3
  1982.           { 22.5 mul sin
  1983.           dup
  1984.           dup mul 1 sub neg sqrt
  1985.           dup neg 2 index moveto
  1986.           exch lineto
  1987.           } for
  1988.  
  1989.        .01 setlinewidth
  1990.        stroke
  1991.        } def
  1992.    /CubeSolid
  1993.        {
  1994.        250 250 translate
  1995.        145 145 scale
  1996.        /Rotm
  1997.           { 30 matrix rotate transform
  1998.           exch 3 1 roll
  1999.           30 matrix rotate transform
  2000.           pop exch
  2001.           moveto
  2002.           } bind def
  2003.        /Rotl
  2004.           { 30 matrix rotate transform
  2005.           exch 3 1 roll
  2006.           30 matrix rotate transform
  2007.           pop exch
  2008.           lineto
  2009.           } bind def
  2010.  
  2011.         1  1  1 Rotm
  2012.        -1  1  1 Rotl
  2013.        -1 -1  1 Rotl
  2014.         1 -1  1 Rotl
  2015.        closepath
  2016.  
  2017.        -1  1  1 Rotm
  2018.        -1  1 -1 Rotl
  2019.         1  1 -1 Rotl
  2020.         1 -1 -1 Rotl
  2021.         1 -1  1 Rotl
  2022.  
  2023.         1  1  1 Rotm
  2024.         1  1 -1 Rotl
  2025.  
  2026.        .01 setlinewidth
  2027.        stroke
  2028.        } def
  2029.    /CubeFrame
  2030.        {
  2031.        250 250 translate
  2032.        145 145 scale
  2033.        /Rotm
  2034.           { 30 matrix rotate transform
  2035.           exch 3 1 roll
  2036.           30 matrix rotate transform
  2037.           pop exch
  2038.           moveto
  2039.           } bind def
  2040.        /Rotl
  2041.           { 30 matrix rotate transform
  2042.           exch 3 1 roll
  2043.           30 matrix rotate transform
  2044.           pop exch
  2045.           lineto
  2046.           } bind def
  2047.  
  2048.         1  1  1 Rotm
  2049.        -1  1  1 Rotl
  2050.        -1 -1  1 Rotl
  2051.         1 -1  1 Rotl
  2052.        closepath
  2053.  
  2054.         1  1 -1 Rotm
  2055.        -1  1 -1 Rotl
  2056.        -1 -1 -1 Rotl
  2057.         1 -1 -1 Rotl
  2058.        closepath
  2059.  
  2060.         1  1  1 Rotm
  2061.         1  1 -1 Rotl
  2062.        -1  1  1 Rotm
  2063.        -1  1 -1 Rotl
  2064.        -1 -1  1 Rotm
  2065.        -1 -1 -1 Rotl
  2066.         1 -1  1 Rotm
  2067.         1 -1 -1 Rotl
  2068.  
  2069.        .01 setlinewidth
  2070.        stroke
  2071.        } def
  2072.    /Balls
  2073.        { 250 250 translate
  2074.        225 225 scale
  2075.  
  2076.        0 0 1.1 0 360 arc
  2077.        -0.32  0.55 translate
  2078.        30 rotate
  2079.        1 2 div  1 3 div scale
  2080.        0 0 1.1 360 0 arcn
  2081.        fill
  2082.        } def
  2083.    /Checkerboard
  2084.        { 0 0 moveto
  2085.        500 0 lineto
  2086.        500 500 lineto
  2087.        0 500 lineto
  2088.        closepath
  2089.        fill
  2090.        } def
  2091.    /CCCTlogo
  2092.        {
  2093.        4.8 4.8 scale
  2094.        -21 -26 translate
  2095.  
  2096.        36.4 28.4 moveto
  2097.        70 38 35 196 176.7 arcn
  2098.        35.1 40 35 42 24 41 curveto
  2099.        21 37 24 38 22 32 curveto
  2100.        21 28 25 27 28 28 curveto
  2101.        33 26 32 30 36.4 28.4 curveto
  2102.  
  2103.        36.5 48.2 moveto
  2104.        70 38 35 163.1 144.5 arcn
  2105.        40 59 39 60 36 61 curveto
  2106.        33 63 29 62 27 61 curveto
  2107.        24 58 29 55 26 54 curveto
  2108.        24 53 25 50 25 50 curveto
  2109.        28 47 30 44 36.5 48.2 curveto
  2110.  
  2111.        44.3 61.7 moveto
  2112.        70 38 35 137.3 111.5 arcn
  2113.        56 81 52 75 53 81 curveto
  2114.        52 87 50 81 46 84 curveto
  2115.        37 84 40 80 40 76 curveto
  2116.        42 70 35 73 44.3 61.7 curveto
  2117.  
  2118.        60.8 71.8 moveto
  2119.        70 38 35 105.3 80.0 arcn
  2120.        78 72 78 76 77 80 curveto
  2121.        77 81 80 82 79 83 curveto
  2122.        77 85 74 84 70 85 curveto
  2123.        65 85 69 80 62 80 curveto
  2124.        59 77 61 74 60.8 71.8 curveto
  2125.  
  2126.        97.1 60.1 moveto
  2127.        70 38 35 39.2 66.4 arc
  2128.        81 74 82 78 85 81 curveto
  2129.        91 81 98 84 95 76 curveto
  2130.        98 74 115 77 103 72 curveto
  2131.        101 68 100 61 97.1 60.1 curveto
  2132.  
  2133.        100 56 moveto
  2134.        70 38 35 31 11.6 arcn
  2135.        113 42 114 49 118 50 curveto
  2136.        115 57 123 56 120 60 curveto
  2137.        115 60 116 64 109 63 curveto
  2138.        104 62 107 57 100 56 curveto
  2139.  
  2140.        105 39 moveto
  2141.        70 38 35 1.6 -14.8 arcn
  2142.        107 27 110 28 112 27 curveto
  2143.        115 27 111 31 118 32 curveto
  2144.        120 33 125 33 122 36 curveto
  2145.        121 37 119 38 117 39 curveto
  2146.        113 46 112 39 105 39 curveto
  2147.  
  2148.        fill
  2149.     } def
  2150.    end
  2151.  
  2152.    /BuildChar
  2153.      {Spacing 100 div 500 mul  dup
  2154.       -0.1 -0.1 500.1 1000.1
  2155.       setcachedevice
  2156.       exch begin
  2157.       Encoding exch get
  2158.       CharProcs exch get
  2159.       end
  2160.       exec
  2161.      }def
  2162.    end
  2163.  
  2164.    /pntsize 100000 Frequency div Spacing div def
  2165.  
  2166.    /FillFont newfont definefont pop
  2167.    /FillFont findfont pntsize scalefont setfont
  2168.  
  2169.    /increment Spacing 100 div pntsize mul def
  2170.    /ury Bbury increment add def
  2171.  
  2172.    eoclip newpath
  2173.    ForegroundGray 100 div 1 exch sub setgray
  2174.    Bblly increment ury
  2175.      { Bbllx 1 index moveto
  2176.        { str show
  2177.          currentpoint
  2178.          dup 3 index sub
  2179.          increment 2.1 div gt { increment sub } if
  2180.          1 index Bburx gt
  2181.          {pop pop pop exit} if
  2182.          moveto
  2183.        } loop
  2184.      } for
  2185.    } bind def
  2186.  
  2187. %@Fill
  2188. /Octagons %Oct≤gonos,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2189.    {
  2190.    /BackgroundGray exch -1 100 InRange def
  2191.    /ForegroundGray exch 0 100 InRange def
  2192.    /Linewidth      exch 0 100 InRange def
  2193.    /Frequency      exch 2 100 InRange def
  2194.  
  2195.    /newfont 10 dict def
  2196.    newfont begin
  2197.  
  2198.    /FontMatrix [1 2 sqrt 1 add div  0
  2199.                 0                   1 2 sqrt 1 add div
  2200.                 0                   0] def
  2201.    /FontType 3 def
  2202.    /FontBBox [0 0 2 sqrt 1 add 2 sqrt 1 add] def
  2203.    /Encoding 256 array def
  2204.    0 1 255 {Encoding exch /.notdef put} for
  2205.  
  2206.    /BuildChar
  2207.      { 2 sqrt 1 add  0
  2208.        -0.5 -0.5 2 sqrt 1.5 add 2 sqrt 1.5 add
  2209.        setcachedevice
  2210.        pop begin
  2211.  
  2212.        1 2 sqrt div  0 moveto
  2213.        1 2 sqrt div 1 add  0 lineto
  2214.        2 sqrt 1 add  1 2 sqrt div lineto
  2215.        2 sqrt 1 add  1 2 sqrt div 1 add lineto
  2216.        1 2 sqrt div 1 add  2 sqrt 1 add lineto
  2217.        1 2 sqrt div  2 sqrt 1 add lineto
  2218.        0  1 2 sqrt div 1 add lineto
  2219.        0  1 2 sqrt div lineto
  2220.        closepath
  2221.  
  2222.        Linewidth pntsize div 2 sqrt 1 add mul setlinewidth
  2223.        stroke
  2224.  
  2225.       end
  2226.      } def
  2227.    end
  2228.  
  2229.    /pntsize 1000 Frequency div def
  2230.    /FillFont newfont definefont pop
  2231.    /FillFont findfont pntsize scalefont setfont
  2232.  
  2233.    eoclip
  2234.    BackgroundGray 0 ge
  2235.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2236.       { newpath } ifelse
  2237.  
  2238.    ForegroundGray 100 div 1 exch sub setgray
  2239.  
  2240.    Bblly pntsize Bbury
  2241.      { Bbllx pntsize Bburx
  2242.        { 1 index moveto
  2243.        (a) show
  2244.        } for
  2245.      pop
  2246.      } for
  2247.    } bind def
  2248.  
  2249. %@Fill
  2250. /Patio %Patio,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2251.    {
  2252.    /BackgroundGray exch -1 100 InRange def
  2253.    /ForegroundGray exch 0 100 InRange def
  2254.    /Linewidth      exch 0 100 InRange def
  2255.    /Frequency      exch 2 100 InRange def
  2256.  
  2257.    /newfont 10 dict def
  2258.    newfont begin
  2259.  
  2260.    /FontMatrix [2 7 div             0
  2261.                 0                   2 7 div
  2262.                 0                   0] def
  2263.    /FontType 3 def
  2264.    /FontBBox [0 0 3 sqrt 2 mul  7 2 div] def
  2265.    /Encoding 256 array def
  2266.    0 1 255 {Encoding exch /.notdef put} for
  2267.  
  2268.    /BuildChar
  2269.      { 3 sqrt 3 mul 2 div  3 2 div
  2270.        -0.5 -0.5 3 sqrt 2 mul 0.5 add 7 2 div 0.5 add
  2271.        setcachedevice
  2272.        pop begin
  2273.  
  2274.        3 sqrt  3 2 div  translate
  2275.        3 sqrt 2 div  1 2 div  moveto
  2276.        3 { 120 rotate
  2277.            3 sqrt 2 div  -3 2 div lineto
  2278.            3 sqrt  -1 lineto
  2279.            3 sqrt  0 lineto
  2280.            3 sqrt 2 div  1 2 div lineto
  2281.          } repeat
  2282.  
  2283.        Linewidth pntsize div 7 2 div mul setlinewidth
  2284.        stroke
  2285.  
  2286.        end
  2287.      } def
  2288.    end
  2289.  
  2290.    /pntsize 1250 Frequency div def
  2291.  
  2292.    /FillFont newfont definefont pop
  2293.    /FillFont findfont pntsize scalefont setfont
  2294.  
  2295.    /Pointsize pntsize 6 mul 7 div def
  2296.  
  2297.    eoclip
  2298.    BackgroundGray 0 ge
  2299.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2300.       { newpath } ifelse
  2301.  
  2302.    ForegroundGray 100 div 1 exch sub setgray
  2303.  
  2304.    Bblly Pointsize Bbury
  2305.      { Bbllx 1 index moveto
  2306.        { (a) show
  2307.          currentpoint
  2308.          dup 3 index sub
  2309.          Pointsize 2 div gt { Pointsize sub } if
  2310.          1 index Bburx gt
  2311.          {pop pop pop exit} if
  2312.          moveto
  2313.        } loop
  2314.      } for
  2315.    } bind def
  2316.  
  2317. %@Fill
  2318. /Rectangles %Rectßngulos,5, Area:=100, N·mero:=50, AnchoáLφnea:=5, Gris:=0, Funci≤náAleatoria:=0
  2319.    {
  2320.    srand
  2321.    /Grey exch 0 100 InRange def
  2322.    /Linewidth exch 0 100 InRange def
  2323.    /Number exch 1 200 InRange def
  2324.    /area exch 10 300 InRange def
  2325.  
  2326.    /dx Bburx Bbllx sub 2 mul def
  2327.    /dy Bbury Bblly sub 2 mul def
  2328.    /Area area 10000 mul def
  2329.  
  2330.    eoclip newpath
  2331.  
  2332.    Linewidth setlinewidth
  2333.    Bbllx dx 2 div sub  Bblly dy 2 div sub  translate
  2334.  
  2335. %   Area log
  2336.    Number {
  2337.       rand dx mod rand dy mod moveto
  2338. %      rand 180 mod 90 sub 100 div dup  dup mul 1 exch sub sqrt
  2339. %      exch atan 180 div 1 index mul 10 exch exp
  2340.       rand Area mod rand Area mod mul sqrt sqrt
  2341.       dup 0 rlineto
  2342.       0 Area 2 index div rlineto
  2343.       dup neg 0 rlineto
  2344.       closepath
  2345.       pop
  2346.  
  2347.       gsave
  2348.       Grey 100 div 1 exch sub setgray
  2349.       fill
  2350.       grestore
  2351.       0 setgray
  2352.       stroke
  2353.       } repeat
  2354.  
  2355.    } bind def
  2356.  
  2357. %@Fill
  2358. /Reptiles %Reptiles,5, Frecuencia:=4, Gris1:=60, Gris2:=30, Gris3:=0, AnchoáLφnea:=8
  2359. {
  2360.   /LineWidth exch 0 250 InRange def
  2361.   /Gray3 exch 0 100 InRange 100 div def
  2362.   /Gray2 exch -1 100 InRange 100 div def
  2363.   /Gray1 exch -1 100 InRange 100 div def
  2364.   /Frequency exch 1 100 InRange def
  2365.  
  2366.   /newfont 10 dict def
  2367.   newfont begin
  2368.  
  2369.   /FontMatrix [2 7 div             0
  2370.                0                   2 7 div
  2371.                0                   0] def
  2372.   /FontType 3 def
  2373.   /FontBBox [-1.73 -1.86 2.36 2.0] def
  2374.   /Encoding 256 array def
  2375.   0 1 255 {Encoding exch /.notdef put} for
  2376.   Encoding 97 /ReptilesStroked put
  2377.   Encoding 98 /ReptileFilled put
  2378.  
  2379.   /CharProcs 3 dict def
  2380.   CharProcs begin
  2381.   /.notdef {} def
  2382.   /ReptilesStroked
  2383.   {
  2384.     %3 sqrt  3 2 div  translate
  2385.  
  2386.     3 sqrt 2 div  1 2 div  moveto
  2387.     3
  2388.     {
  2389.       120 rotate
  2390.  
  2391.       0     0    moveto
  2392.       0.32 -0.40 lineto
  2393.       0.32 -0.48 lineto
  2394.       0    -0.72 lineto
  2395.  
  2396.       0.05 -1.03 moveto
  2397.       0.4  -0.76 lineto
  2398.       0.84 -0.84 lineto
  2399.       0.5  -0.96 lineto
  2400.       0.31 -1.18 lineto
  2401.  
  2402.       0.87 -1.5  moveto
  2403.       0.58 -1.28 lineto
  2404.       0.8  -1.14 lineto
  2405.       0.94 -1.18 lineto
  2406.       1.24 -1.08 lineto
  2407.       1.42 -1.18 lineto
  2408.  
  2409.       1.68 -1.02 moveto
  2410.       1.52 -0.84 lineto
  2411.       1.64 -0.66 lineto
  2412.       1.73 -0.36 lineto
  2413.  
  2414.       1.73  0    moveto
  2415.       1.41 -0.26 lineto
  2416.       1.32 -0.49 lineto
  2417.       1.06 -0.24 lineto
  2418.       1.42  0.18 lineto
  2419.  
  2420.       0.87  0.57 moveto
  2421.       0.87  0.26 lineto
  2422.       0.99  0.26 lineto
  2423.       1.05  0.12 lineto
  2424.       0.82 -0.07 lineto
  2425.       0.68 -0.07 lineto
  2426.       0.62  0.36 lineto
  2427.  
  2428.  
  2429.       3 sqrt 2 div  1 2 div moveto
  2430.  
  2431.     } repeat
  2432.  
  2433.     LineWidth Pointsize div 7 2 div mul setlinewidth
  2434.     stroke
  2435.  
  2436.   } def
  2437.   /ReptileFilled
  2438.   {
  2439.     0     0    moveto
  2440.     0.32 -0.40 lineto
  2441.     0.32 -0.48 lineto
  2442.     0    -0.72 lineto
  2443.  
  2444.    -0.40 -0.55 lineto
  2445.    -0.47 -0.68 lineto
  2446.    -0.42 -0.97 lineto
  2447.    -0.27 -0.99 lineto
  2448.    -0.21 -0.88 lineto
  2449.  
  2450.     0.05 -1.03 lineto
  2451.     0.4  -0.76 lineto
  2452.     0.84 -0.84 lineto
  2453.     0.5  -0.96 lineto
  2454.     0.31 -1.18 lineto
  2455.  
  2456.     0.32 -1.39 lineto
  2457.     0.55 -1.60 lineto
  2458.     0.59 -1.74 lineto
  2459.     0.82 -1.86 lineto
  2460.  
  2461.     0.87 -1.5  lineto
  2462.     0.58 -1.28 lineto
  2463.     0.8  -1.14 lineto
  2464.     0.94 -1.18 lineto
  2465.     1.24 -1.08 lineto
  2466.     1.42 -1.18 lineto
  2467.     1.52 -1.45 lineto
  2468.     1.45 -1.81 lineto
  2469.     1.74 -1.47 lineto
  2470.     1.68 -1.02 lineto
  2471.     1.52 -0.84 lineto
  2472.     1.64 -0.66 lineto
  2473.     1.73 -0.36 lineto
  2474.     2.28 -0.46 lineto
  2475.     2.36 -0.11 lineto
  2476.     2.12 -0.15 lineto
  2477.     1.73  0    lineto
  2478.     1.41 -0.26 lineto
  2479.     1.32 -0.49 lineto
  2480.     1.06 -0.24 lineto
  2481.     1.42  0.18 lineto
  2482.     1.21  0.41 lineto
  2483.     1.11  0.60 lineto
  2484.  
  2485.     0.87  0.57 lineto
  2486.     0.87  0.26 lineto
  2487.     0.99  0.26 lineto
  2488.     1.05  0.12 lineto
  2489.     0.82 -0.07 lineto
  2490.     0.68 -0.07 lineto
  2491.     0.62  0.36 lineto
  2492.     0.26  0.52 lineto
  2493.     0.19  0.48 lineto
  2494.     closepath
  2495.     fill
  2496.   } def
  2497.   end
  2498.  
  2499.   /BuildChar
  2500.   {
  2501.     3 sqrt 3 mul 2 div  3 2 div
  2502.     -1.83 -1.96 2.46 2.1
  2503.     setcachedevice
  2504.     exch begin
  2505.     Encoding exch get
  2506.     CharProcs exch get
  2507.     end
  2508.     exec
  2509.   } def
  2510.   end
  2511.  
  2512.   /Pointsize 2000 Frequency div def
  2513.  
  2514.   /FillFont newfont definefont pop
  2515.   /FillFont findfont Pointsize scalefont setfont
  2516.  
  2517.   /pntsize Pointsize 6 mul 7 div def
  2518.   /HeightDiff Pointsize 2 mul 7 div .49 mul def
  2519.  
  2520.   eoclip newpath
  2521.  
  2522.   currentscreen
  2523.   3 -1 roll
  2524.   pop 120
  2525.   3 1 roll
  2526.   setscreen
  2527.  
  2528.   Bblly pntsize Bbury pntsize add HeightDiff add
  2529.   {
  2530.     Bbllx 1 index moveto
  2531.     {
  2532.       currentpoint
  2533.       1 index exch
  2534.  
  2535.       2 copy 2 copy translate
  2536.       240 rotate
  2537.       Gray1 0 ge
  2538.       { Gray1 1 exch sub setgray
  2539.         (b) show
  2540.       } if
  2541.       0 0 moveto
  2542.       -240 rotate
  2543.       neg exch neg exch translate
  2544.  
  2545.       2 copy translate
  2546.       120 rotate
  2547.       Gray2 0 ge
  2548.       { Gray2 1 exch sub setgray
  2549.         (b) show
  2550.       } if
  2551.       0 0 moveto
  2552.       -120 rotate
  2553.       neg exch neg exch translate
  2554.  
  2555.       Gray3 1 exch sub setgray
  2556.       (b) show
  2557.  
  2558.       currentpoint
  2559.       dup 4 index sub
  2560.       pntsize 2.1 div gt { pntsize sub } if
  2561.       3 -1 roll Bburx gt
  2562.       {pop pop pop exit} if
  2563.       moveto
  2564.     } loop
  2565.   } for
  2566.  
  2567.   LineWidth 0 gt
  2568.   {
  2569.     0 setgray
  2570.     Bblly pntsize Bbury pntsize add
  2571.     {
  2572.       Bbllx 1 index moveto
  2573.       {
  2574.         (a) show
  2575.         currentpoint
  2576.         dup 3 index sub
  2577.         pntsize 2.1 div gt { pntsize sub } if
  2578.         1 index Bburx gt
  2579.         {pop pop pop exit} if
  2580.         moveto
  2581.       } loop
  2582.     } for
  2583.   } if
  2584. } bind def
  2585.  
  2586. %@Fill
  2587. /SpiderWeb %Telara±a,5, AnchoáLφnea:=5, Separaci≤n:=300, AnguloáMßximo:=40, AnguloáMφnimo:=10, Funci≤náAleatoria:=0
  2588.    { srand
  2589.    /MinAng exch 2 90 InRange def
  2590.    /MaxAng exch MinAng 90 InRange MinAng wDstChck def
  2591.    /Sep exch 10 500 InRange def
  2592.    /Linewidth exch 0 100 InRange def
  2593.  
  2594.    eoclip
  2595.    newpath
  2596.  
  2597.    /dx Bburx Bbllx sub def
  2598.    /dy Bbury Bblly sub def
  2599.    /hyp dx dup mul dy dup mul add sqrt def
  2600.    /DifAng MaxAng MinAng sub def
  2601.  
  2602.    Bbllx Bblly translate
  2603.    dx 2 div dy 2 div translate
  2604.  
  2605.    /theta 0 def
  2606.    /dtheta 0 def
  2607.  
  2608.    {  0 0 moveto
  2609.  
  2610.       /theta theta dtheta add def
  2611.       theta 360 ge
  2612.         { exit } if
  2613.       /dtheta rand DifAng mod MinAng add def
  2614.       theta dtheta add 350 gt
  2615.         { /dtheta 360 theta sub def } if
  2616.  
  2617.       hyp theta cos mul hyp theta sin mul lineto
  2618.  
  2619.       0 Sep hyp
  2620.          {
  2621.          dup theta cos mul
  2622.          1 index theta sin mul
  2623.          moveto
  2624.  
  2625.          dup theta dtheta add cos theta cos add mul
  2626.          1 index theta dtheta add sin theta sin add mul
  2627.          2 index
  2628.          theta 180 add dtheta add
  2629.          theta 180 add
  2630.          arcn
  2631.  
  2632.          pop
  2633.          } for
  2634.       Linewidth setlinewidth
  2635.       stroke
  2636.       } loop
  2637.    } bind def
  2638.  
  2639. %@Fill
  2640. /Spirals %Espirales,4, Tama±o:=150, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2641.    {
  2642.    /BackgroundGrey exch -1 100 InRange def
  2643.    /ForegroundGray exch 0 100 InRange def
  2644.    /Linewidth exch 0 100 InRange def
  2645.    /Size exch 10 500 InRange def
  2646.  
  2647.    eoclip
  2648.    BackgroundGrey 0 ge
  2649.       { BackgroundGrey 100 div 1 exch sub setgray fill }
  2650.       { newpath } ifelse
  2651.  
  2652.    /cx Bburx Bbllx add 2 div def
  2653.    /cy Bbury Bblly add 2 div def
  2654.    /pntsize2 Size 2 div def
  2655.    /cy2 cy pntsize2 add def
  2656.    /hyp Bburx Bbllx sub dup mul
  2657.         Bbury Bblly sub dup mul
  2658.         add sqrt 2 div def
  2659.  
  2660.    ForegroundGray 100 div 1 exch sub setgray
  2661.  
  2662.    Linewidth setlinewidth
  2663.    0 Size hyp
  2664.       { cx cy 2 index 90 270 arc
  2665.         cx cy2 2 index pntsize2 add -90 90 arc
  2666.         pop
  2667.       } for
  2668.    stroke
  2669.    } bind def
  2670.  
  2671. %@Fill
  2672. /Spokes %Rayos,5, N·mero:=120, AnchoáLφnea:=5, Horizontal:=0, Vertical:=0, Grisá1eráPlano:=100
  2673.         { %def -- Fill function that fills with spokes
  2674.         /ForegroundGray exch 0 100 InRange def
  2675.     /wY exch 0 100 InRange def
  2676.     /wX exch 0 100 InRange def
  2677.     /LineWidth exch 0 100 InRange def
  2678.     /Number exch 4 360 InRange def
  2679.  
  2680.         eoclip
  2681.         newpath
  2682.         /Flen Bburx Bbllx sub dup mul Bbury Bblly sub dup mul add sqrt def
  2683.         Bbllx Bblly translate
  2684.     Bburx Bbllx sub wX mul 100 div  Bbury Bblly sub wY mul 100 div translate
  2685.  
  2686.     360 Number div
  2687.         Number {
  2688.            0 0 moveto
  2689.            Flen 0 lineto
  2690.            dup rotate
  2691.            } repeat
  2692.         pop
  2693.         ForegroundGray 100 div 1 exch sub setgray
  2694.     LineWidth setlinewidth
  2695.     stroke
  2696.         } bind def
  2697.  
  2698. %@Fill
  2699. /Squares %Cuadrados,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2700.    {
  2701.    /BackgroundGray exch -1 100 InRange def
  2702.    /ForegroundGray exch 0 100 InRange def
  2703.    /Linewidth      exch 0 100 InRange def
  2704.    /Frequency      exch 2 100 InRange def
  2705.  
  2706.    /newfont 10 dict def
  2707.    newfont begin
  2708.  
  2709.    /FontMatrix [1  0  0
  2710.                 1  0  0] def
  2711.    /FontType 3 def
  2712.    /FontBBox [0 0 1 1] def
  2713.    /Encoding 256 array def
  2714.    0 1 255 {Encoding exch /.notdef put} for
  2715.  
  2716.    /BuildChar
  2717.      { 1  0
  2718.        -0.1 -0.1 1.1 1.1
  2719.        setcachedevice
  2720.        pop begin
  2721.  
  2722.        0 0 moveto
  2723.        0 1 lineto
  2724.        1 1 lineto
  2725.        1 0 lineto
  2726.  
  2727.        Linewidth pntsize div setlinewidth
  2728.        stroke
  2729.  
  2730.       end
  2731.      } def
  2732.    end
  2733.  
  2734.    /pntsize 1000 Frequency div def
  2735.  
  2736.    /FillFont newfont definefont pop
  2737.    /FillFont findfont pntsize scalefont setfont
  2738.  
  2739.    eoclip
  2740.    BackgroundGray 0 ge
  2741.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2742.       { newpath } ifelse
  2743.  
  2744.    ForegroundGray 100 div 1 exch sub setgray
  2745.  
  2746.    Bblly pntsize Bbury
  2747.      { Bbllx exch moveto
  2748.        { (a) show
  2749.          currentpoint
  2750.          pop Bburx gt
  2751.          {exit} if
  2752.        } loop
  2753.      } for
  2754.    } bind def
  2755.  
  2756. %@Fill
  2757. /StarOfDavid %EstrellaDeDavid,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2758.    {
  2759.    /BackgroundGray exch -1 100 InRange def
  2760.    /ForegroundGray exch 0 100 InRange def
  2761.    /Linewidth      exch 0 100 InRange def
  2762.    /Frequency      exch 2 100 InRange def
  2763.  
  2764.    /newfont 10 dict def
  2765.    newfont begin
  2766.  
  2767.    /FontMatrix [1 3 sqrt 2 mul div  0
  2768.                 0                   1 3 sqrt 2 mul div
  2769.                 0                   0] def
  2770.    /FontType 3 def
  2771.    /FontBBox [0 0 2 3 sqrt 2 mul] def
  2772.    /Encoding 256 array def
  2773.    0 1 255 {Encoding exch /.notdef put} for
  2774.  
  2775.    /BuildChar
  2776.      { 1  3 sqrt
  2777.        -0.1 -0.1 2.1 3 sqrt 2 mul 0.1 add
  2778.        setcachedevice
  2779.        pop begin
  2780.  
  2781.        1 2 div  0 moveto
  2782.        3 2 div  0 lineto
  2783.        2  3 sqrt 2 div lineto
  2784.        3 2 div  3 sqrt lineto
  2785.        1 2 div  3 sqrt lineto
  2786.        0  3 sqrt 2 div lineto
  2787.        closepath
  2788.  
  2789.        Linewidth pntsize div 3 sqrt 2 mul mul setlinewidth
  2790.        stroke
  2791.  
  2792.       end
  2793.      } def
  2794.    end
  2795.  
  2796.    /pntsize 1732 Frequency div def
  2797.  
  2798.    /FillFont newfont definefont pop
  2799.    /FillFont findfont pntsize scalefont setfont
  2800.  
  2801.    eoclip
  2802.    BackgroundGray 0 ge
  2803.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2804.       { newpath } ifelse
  2805.  
  2806.    ForegroundGray 100 div 1 exch sub setgray
  2807.  
  2808.    /ury Bbury pntsize add def
  2809.    Bblly pntsize ury
  2810.      { Bbllx pntsize sub 1 index moveto
  2811.        { (a) show
  2812.          currentpoint
  2813.          dup 3 index sub
  2814.          pntsize 2.1 div gt { pntsize sub } if
  2815.          1 index Bburx gt
  2816.          {pop pop pop exit} if
  2817.          moveto
  2818.        } loop
  2819.      } for
  2820.    } bind def
  2821.  
  2822. %@Fill
  2823. /Stars %Estrellas,4, N·mero:=100, Tama±oáMßximo:=300, Tama±oáMφnimo:=3, Funci≤náAleatoria:=0
  2824.    { srand
  2825.    /MinSize exch 1 1000 InRange def
  2826.    /MaxSize exch MinSize 1000 InRange def
  2827.    /Number exch 1 2000 InRange def
  2828.  
  2829.    /newfont 10 dict def
  2830.    newfont begin
  2831.  
  2832.    /FontMatrix [1  0  0
  2833.                 1  0  0] def
  2834.    /FontType 3 def
  2835.    /FontBBox [0 0 1 1] def
  2836.    /Encoding 256 array def
  2837.    0 1 255 {Encoding exch /.notdef put} for
  2838.  
  2839.    /BuildChar
  2840.      { 1  0
  2841.        -0.1 -0.1 1.1 1.1
  2842.        setcachedevice
  2843.        pop begin
  2844.  
  2845.        1 .5 moveto
  2846.        .5 .5 .5 0 360 arc
  2847.        fill
  2848.  
  2849.        end
  2850.      } def
  2851.    end
  2852.  
  2853.    /FillFont newfont definefont pop
  2854.    /FillFont findfont 2 scalefont setfont
  2855.  
  2856.    /dx Bburx Bbllx sub def
  2857.    /dy Bbury Bblly sub def
  2858.  
  2859.    eoclip
  2860.    0 setgray
  2861.    fill
  2862.  
  2863.    1 setgray
  2864.    /mtx matrix currentmatrix def
  2865.    dx dy mul Number mul 100000 div cvi
  2866.       { rand dx mod Bbllx add
  2867.       rand dy mod Bblly add
  2868.       moveto
  2869.       MaxSize rand  MaxSize MinSize div cvi  mod 1 add div 10 div
  2870.       dup scale
  2871.       (a) show
  2872.       mtx setmatrix
  2873.       } repeat
  2874.  
  2875.    } bind def
  2876.  
  2877. %@Fill
  2878. /StarShapes %FormaDeEstrella,5, Puntos:=5, Frecuencia:=2, Espaciado:=100, Angulo:=36, Gris:=100
  2879.    {
  2880.    /Grey exch 0 100 InRange def
  2881.    /Theta exch 1 90 InRange def
  2882.    /Spacing exch 1 300 InRange def
  2883.    /Frequency exch 1 25 InRange def
  2884.    /Points exch 1 15 InRange def
  2885.  
  2886.    /str 1 string def
  2887.    str 0 Points put
  2888.  
  2889.    /newfont 10 dict def
  2890.    newfont begin
  2891.  
  2892.    /FontMatrix [.001                0
  2893.                 0                   .001
  2894.                 0                   0] def
  2895.    /FontType 3 def
  2896.    /FontBBox [0 0 500 1000] def
  2897.  
  2898.    /Encoding 256 array def
  2899.    0 1 255 {Encoding exch /.notdef put} for
  2900.  
  2901.    /BuildChar
  2902.      {Spacing 100 div 500 mul  dup
  2903.       -0.1 -0.1 500.1 1000.1
  2904.       setcachedevice
  2905.       exch begin
  2906.  
  2907.       250 250 translate
  2908.       250 250 scale
  2909.       90 rotate
  2910.  
  2911.       dup
  2912.       180 exch div dup sin exch cos div
  2913.       Theta 2 div dup sin exch cos div
  2914.  
  2915.       1 0 moveto
  2916.       2 index
  2917.          {
  2918.          360 3 index div rotate
  2919.          dup dup 3 index add div
  2920.          dup 3 index mul neg
  2921.          lineto
  2922.          1 0 lineto
  2923.          } repeat
  2924.       closepath
  2925.  
  2926.       fill
  2927.       pop pop pop
  2928.  
  2929.       end
  2930.      }def
  2931.    end
  2932.  
  2933.    /pntsize 100000 Frequency div Spacing div def
  2934.  
  2935.    /FillFont newfont definefont pop
  2936.    /FillFont findfont pntsize scalefont setfont
  2937.  
  2938.    /increment Spacing 100 div pntsize mul def
  2939.  
  2940.    eoclip newpath
  2941.  
  2942.    Grey 100 div 1 exch sub setgray
  2943.    Bblly increment Bbury
  2944.      { Bbllx 1 index moveto
  2945.        { str show
  2946.          currentpoint
  2947.          dup 3 index sub
  2948.          increment 2.1 div gt { increment sub } if
  2949.          1 index Bburx gt
  2950.          {pop pop pop exit} if
  2951.          moveto
  2952.        } loop
  2953.      } for
  2954.    } bind def
  2955.  
  2956. %@Fill
  2957. /StoneWall %MuroDePiedra,4, Frecuencia:=15, GrisáMßximo:=100, GrisáMφnimo:=0, AnchoáLφnea:=5
  2958.    {
  2959.    /Linewidth exch 0 100 InRange def
  2960.    /MinGrey exch 0 100 InRange def
  2961.    /MaxGrey exch MinGrey 100 InRange def
  2962.    /Frequency exch 1 50 InRange def
  2963.  
  2964.    /DifGrey MaxGrey MinGrey sub def
  2965.    DifGrey 0 eq
  2966.       { /DifGrey 1 def
  2967.       } if
  2968.    Linewidth Frequency mul 250 div setlinewidth
  2969.    eoclip newpath
  2970.    0 srand
  2971.  
  2972.    currentscreen
  2973.    3 -1 roll
  2974.    pop 100
  2975.    3 1 roll
  2976.    setscreen
  2977.  
  2978.    /dy Bbury Bblly sub def
  2979.    /dx Bburx Bbllx sub def
  2980.    Bbllx Bbury translate
  2981.    250 Frequency div dup scale
  2982.  
  2983.    dy 920 div Frequency mul cvi {
  2984.       0 0 moveto
  2985.       /x0 0 def
  2986.       /y0 0 def
  2987.       /x1 0 def
  2988.       /y1 0 def
  2989.       /x2 0 def
  2990.       /y2 0 def
  2991.       /x3 0 def
  2992.       /y3 0 def
  2993.       0 5 dx 200 div Frequency mul
  2994.          { rand 50 mod 25 div 1 sub add
  2995.          x3 y3 moveto
  2996.          x2 y2 x1 y1 x0 y0 curveto
  2997.          dup rand 30 mod 15 div neg 2 sub
  2998.          2 copy
  2999.          /y0 exch def
  3000.          /x0 exch def
  3001.          lineto
  3002.          dup rand 50 mod 10 div 2.5 sub add rand 50 mod 10 div neg
  3003.          1 index rand 50 mod 10 div
  3004.          4 index rand 30 mod 15 div 2 add
  3005.          6 copy
  3006.          /y3 exch def
  3007.          /x3 exch def
  3008.          /y2 exch def
  3009.          /x2 exch def
  3010.          /y1 exch def
  3011.          /x1 exch def
  3012.          curveto
  3013.          pop
  3014.          closepath
  3015.          gsave
  3016.          rand DifGrey mod MinGrey add 100 div 1 exch sub setgray fill
  3017.          grestore
  3018.          0 setgray stroke
  3019.          } for
  3020.       0 -4 translate
  3021.       } repeat
  3022.    } bind def
  3023.  
  3024. %@Fill
  3025. /Text %Texto,5, Fuente:=1, Carßcter:=67, Frecuencia:=4, Espaciado:=100, GrisáFondo:=0
  3026.    {
  3027.    /BackGrey exch -1 100 InRange def
  3028.    /Spacing exch 30 300 InRange def
  3029.    /Frequency exch 1 50 InRange def
  3030.    /Character exch 33 255 InRange def
  3031.    /Font exch 1 35 InRange def
  3032.  
  3033.    /pntsize 100000 Frequency div Spacing div def
  3034.    Font  1 eq { /Times-Roman } if
  3035.    Font  2 eq { /Times-Italic } if
  3036.    Font  3 eq { /Times-Bold } if
  3037.    Font  4 eq { /Times-BoldItalic } if
  3038.    Font  5 eq { /Helvetica } if
  3039.    Font  6 eq { /Helvetica-Oblique } if
  3040.    Font  7 eq { /Helvetica-Bold } if
  3041.    Font  8 eq { /Helvetica-BoldOblique } if
  3042.    Font  9 eq { /Courier } if
  3043.    Font 10 eq { /Courier-Oblique } if
  3044.    Font 11 eq { /Courier-Bold } if
  3045.    Font 12 eq { /Courier-BoldOblique } if
  3046.    Font 13 eq { /Symbol } if
  3047.    Font 14 eq { /AvantGarde-Book } if
  3048.    Font 15 eq { /AvantGarde-BookOblique } if
  3049.    Font 16 eq { /AvantGarde-Demi } if
  3050.    Font 17 eq { /AvantGarde-DemiOblique } if
  3051.    Font 18 eq { /Bookman-Demi } if
  3052.    Font 19 eq { /Bookman-DemiItalic } if
  3053.    Font 20 eq { /Bookman-Light } if
  3054.    Font 21 eq { /Bookman-LightItalic } if
  3055.    Font 22 eq { /Helvetica-Narrow } if
  3056.    Font 23 eq { /Helvetica-Narrow-Bold } if
  3057.    Font 24 eq { /Helvetica-Narrow-BoldOblique } if
  3058.    Font 25 eq { /Helvetica-Narrow-Oblique } if
  3059.    Font 26 eq { /NewCenturySchlbk-Roman } if
  3060.    Font 27 eq { /NewCenturySchlbk-Bold } if
  3061.    Font 28 eq { /NewCenturySchlbk-Italic } if
  3062.    Font 29 eq { /NewCenturySchlbk-BoldItalic } if
  3063.    Font 30 eq { /Palatino-Roman } if
  3064.    Font 31 eq { /Palatino-Bold } if
  3065.    Font 32 eq { /Palatino-Italic } if
  3066.    Font 33 eq { /Palatino-BoldItalic } if
  3067.    Font 34 eq { /ZapfChancery-MediumItalic } if
  3068.    Font 35 eq { /ZapfDingbats } if
  3069.    findfont pntsize scalefont setfont
  3070.  
  3071.    /str 1 string def
  3072.    str 0 Character put
  3073.  
  3074.    /increment Spacing 100 div pntsize mul 2 mul def
  3075.  
  3076.    eoclip
  3077.    BackGrey 0 ge
  3078.       { BackGrey 100 div 1 exch sub setgray fill }
  3079.       { newpath } ifelse
  3080.  
  3081.    /Bbury Bbury pntsize add def
  3082.  
  3083.    0 setgray
  3084.    Bblly increment Bbury
  3085.      { Bbllx 1 index moveto
  3086.        { str show
  3087.          currentpoint increment 2 div add
  3088.          dup 3 index sub
  3089.          increment 2.1 div gt { increment sub } if
  3090.          1 index Bburx gt
  3091.          {pop pop pop exit} if
  3092.          moveto
  3093.        } loop
  3094.      } for
  3095.    } bind def
  3096.  
  3097. %@Fill
  3098. /Tiles %Mosaicos,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  3099.    {
  3100.    /BackgroundGray exch -1 100 InRange def
  3101.    /ForegroundGray exch 0 100 InRange def
  3102.    /Linewidth      exch 0 100 InRange def
  3103.    /Frequency      exch 2 100 InRange def
  3104.  
  3105.    /newfont 10 dict def
  3106.    newfont begin
  3107.  
  3108.    /FontMatrix [1  0  0
  3109.                 1  0  0] def
  3110.    /FontType 3 def
  3111.    /FontBBox [0 0 2 1] def
  3112.    /Encoding 256 array def
  3113.    0 1 255 {Encoding exch /.notdef put} for
  3114.  
  3115.    /BuildChar
  3116.      { 2  .5
  3117.        -0.1 -0.1 2.1 1.1
  3118.        setcachedevice
  3119.        pop begin
  3120.  
  3121.        0   0 moveto
  3122.        1.5 0 lineto
  3123.        1.75  0 .25 180 90 arcn
  3124.        1.75 .5 .25 -90 90 arc
  3125.        1.75  1 .25 270 180 arcn
  3126.        0   1 lineto
  3127.  
  3128.        Linewidth pntsize div setlinewidth
  3129.        stroke
  3130.  
  3131.        end
  3132.      } def
  3133.    end
  3134.  
  3135.    /pntsize 500 Frequency div def
  3136.  
  3137.    /FillFont newfont definefont pop
  3138.    /FillFont findfont pntsize scalefont setfont
  3139.  
  3140.    eoclip
  3141.    BackgroundGray 0 ge
  3142.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3143.       { newpath } ifelse
  3144.  
  3145.    ForegroundGray 100 div 1 exch sub setgray
  3146.  
  3147.    Bblly pntsize Bbury
  3148.      { Bbllx 1 index moveto
  3149.        { (a) show
  3150.          currentpoint
  3151.          dup 3 index sub
  3152.          pntsize 2.1 div gt { pntsize sub } if
  3153.          1 index Bburx gt
  3154.          {pop pop pop exit} if
  3155.          moveto
  3156.        } loop
  3157.      } for
  3158.    } bind def
  3159.  
  3160. %@Fill
  3161. /TreeRings %AnillosDeArbol,5, Dist.áMßxima:=150, Dist.áMφnima:=0, AnchoáLφnea:=5, GrisáFondo:=0, Funci≤náAleatoria:=0
  3162.    { srand
  3163.    /BackGrey exch -1 100 InRange def
  3164.    /LineWidth exch 0 100 InRange def
  3165.    /MinDist exch 0 500 InRange def
  3166.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  3167.  
  3168.    eoclip
  3169.    BackGrey 0 ge
  3170.       { BackGrey 100 div 1 exch sub setgray fill }
  3171.       { newpath } ifelse
  3172.  
  3173.    /cx Bburx Bbllx add 2 div def
  3174.    /cy Bbury Bblly add 2 div def
  3175.    /pntsize MaxDist MinDist sub def
  3176.    /hyp Bburx Bbllx sub dup mul Bbury Bblly sub dup mul add sqrt def
  3177.  
  3178.    /wr 0 def
  3179.    0 setgray
  3180.    LineWidth setlinewidth
  3181.  
  3182.       {
  3183.       /wr rand pntsize mod MinDist add wr add def
  3184.       cx wr add  cy moveto
  3185.       cx cy wr 0 360 arc
  3186.       stroke
  3187.       wr hyp gt {exit} if
  3188.       } loop
  3189.    } bind def
  3190.  
  3191. %@Fill
  3192. /Triangle %Trißngulo,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  3193.    {
  3194.    /BackgroundGray exch -1 100 InRange def
  3195.    /ForegroundGray exch 0 100 InRange def
  3196.    /Linewidth      exch 0 100 InRange def
  3197.    /Frequency      exch 2 100 InRange def
  3198.  
  3199.    /newfont 10 dict def
  3200.    newfont begin
  3201.  
  3202.    /FontMatrix  [ 1 3 sqrt div  0
  3203.                   0             1 3 sqrt div
  3204.                   0             0] def
  3205.    /FontType 3 def
  3206.    /FontBBox [0 0 1 3 sqrt] def
  3207.    /Encoding 256 array def
  3208.    0 1 255 {Encoding exch /.notdef put} for
  3209.  
  3210.    /BuildChar
  3211.      { 1  0
  3212.        -0.1 -0.1 1.1 3 sqrt 0.1 add
  3213.        setcachedevice
  3214.        pop begin
  3215.  
  3216.        0 0 moveto
  3217.        1 3 sqrt lineto
  3218.        0 3 sqrt lineto
  3219.        1 0 lineto
  3220.        closepath
  3221.  
  3222.        0 3 sqrt 2 div moveto
  3223.        1 3 sqrt 2 div lineto
  3224.  
  3225.        Linewidth pntsize div 3 sqrt mul setlinewidth
  3226.        stroke
  3227.  
  3228.       end
  3229.      } def
  3230.    end
  3231.  
  3232.    /pntsize 1732 Frequency div def
  3233.    /FillFont newfont definefont pop
  3234.    /FillFont findfont pntsize scalefont setfont
  3235.  
  3236.    eoclip
  3237.    BackgroundGray 0 ge
  3238.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3239.       { newpath } ifelse
  3240.  
  3241.    ForegroundGray 100 div 1 exch sub setgray
  3242.  
  3243.    Bblly pntsize Bbury
  3244.      { Bbllx pntsize sub pntsize 3 sqrt div Bburx
  3245.        { 1 index moveto
  3246.        (a) show
  3247.        } for
  3248.      pop
  3249.      } for
  3250.    } bind def
  3251.  
  3252. %@Fill
  3253. /Waves %Ondas,5, Frecuencia:=6, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0, Espaciadoá(%):=100
  3254.    {
  3255.    /Spacing        exch 30 300 InRange def
  3256.    /BackgroundGray exch -1 100 InRange def
  3257.    /ForegroundGray exch 0 100 InRange def
  3258.    /Linewidth      exch  0 100 InRange def
  3259.    /Frequency      exch  2 100 InRange def
  3260.  
  3261.    /newfont 10 dict def
  3262.    newfont begin
  3263.  
  3264.    /FontMatrix [1 84 div   0
  3265.                 0          1 84 div
  3266.                 0          0] def
  3267.    /FontType 3 def
  3268.    /FontBBox [37 56 111 114] def
  3269.    /Encoding 256 array def
  3270.    0 1 255 {Encoding exch /.notdef put} for
  3271.  
  3272.    /BuildChar
  3273.      { 74  0
  3274.        36.9 55.9 111.1 114.1
  3275.        setcachedevice
  3276.        pop begin
  3277.  
  3278.        1 1.5 scale
  3279.  
  3280.        37 38 moveto
  3281.        76 38 79 73 111 57 curveto
  3282.        80 60 80 38 111 38 curveto
  3283.  
  3284.        Linewidth pntsize div 84 mul setlinewidth
  3285.        stroke
  3286.  
  3287.       end
  3288.      } def
  3289.    end
  3290.  
  3291.    /pntsize 783 Frequency div def
  3292.  
  3293.    /FillFont newfont definefont pop
  3294.    /FillFont findfont pntsize scalefont setfont
  3295.  
  3296.    /Height pntsize Spacing 100 div mul def
  3297.  
  3298.    /Bbllx Bbllx Height sub def
  3299.    /Bblly Bblly Height sub def
  3300.    /Bburx Bburx Height add def
  3301.    /Bbury Bbury Height add def
  3302.  
  3303.    eoclip
  3304.    BackgroundGray 0 ge
  3305.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3306.       { newpath } ifelse
  3307.  
  3308.    ForegroundGray 100 div 1 exch sub setgray
  3309.    Bblly Height Bbury
  3310.      { Bbllx exch moveto
  3311.        { (a) show
  3312.          currentpoint
  3313.          pop Bburx gt
  3314.          {exit} if
  3315.        } loop
  3316.      } for
  3317.    } bind def
  3318.  
  3319. %------ Color PostScript fills added for v6.0 
  3320.  
  3321. %@Fill
  3322. /ColorBubbles %BurbujasColor,5, N·meroá(pulgadas2):=25, Tama±oáMßximo:=300, Tama±oáMφnimo:=10, AnchoáLφnea:=10, Funci≤náAleatoria:=0
  3323.    { srand
  3324.    /LineWidth exch 0 50 InRange def
  3325.    /MinSize exch 1 1000 InRange def
  3326.    /MaxSize exch MinSize 1000 InRange def
  3327.    /Number exch 1 250 InRange def
  3328.  
  3329.          /SetRandomRGB
  3330.          {
  3331.             3    %put 3 random numbers between 0 and 1 on the stack
  3332.             {rand 100 mod 1 add 100 div 1 exch sub}
  3333.             repeat
  3334.              setrgbcolor
  3335.          } def
  3336.  
  3337.    eoclip
  3338.    newpath
  3339.    /pntsize MaxSize MinSize div cvi def
  3340.    /dx Bburx Bbllx sub def
  3341.    /dy Bbury Bblly sub def
  3342.  
  3343.    dx dy mul Number mul 1000000 div cvi
  3344.    {  rand dx mod Bbllx add
  3345.       rand dy mod Bblly add
  3346.       rand pntsize mod 1 add pntsize exch div MinSize mul
  3347.       3 copy
  3348.       2 index add
  3349.       exch
  3350.       moveto
  3351.       pop
  3352.       0 360 arc
  3353.       gsave
  3354.  
  3355.       SetRandomRGB
  3356.  
  3357.       LineWidth setlinewidth
  3358.       stroke
  3359.       grestore
  3360.  
  3361.       1 setgray
  3362.       fill
  3363.       } repeat
  3364.  
  3365.    } bind def
  3366.  
  3367. %@Fill
  3368. /ColorCircles %CφrculosColor,4, N·meroá(pulgadas2):=25, Tama±oáMßximo:=300, Tama±oáMφnimo:=10, Funci≤náAleatoria:=0
  3369.    { srand
  3370.    /MinSize exch 1 1000 InRange def
  3371.    /MaxSize exch MinSize 1000 InRange def
  3372.    /Number exch 1 250 InRange def
  3373.  
  3374.          /SetRandomRGB
  3375.          {
  3376.             3    %put 3 random numbers between 0 and 1 on the stack
  3377.             {rand 100 mod 1 add 100 div 1 exch sub}
  3378.             repeat
  3379.              setrgbcolor
  3380.          } def
  3381.  
  3382.    eoclip
  3383.    newpath
  3384.    /pntsize MaxSize MinSize div cvi def
  3385.    /dx Bburx Bbllx sub def
  3386.    /dy Bbury Bblly sub def
  3387.  
  3388.    dx dy mul Number mul 1000000 div cvi
  3389.    {  rand dx mod Bbllx add
  3390.       rand dy mod Bblly add
  3391.       rand pntsize mod 1 add pntsize exch div MinSize mul
  3392.       3 copy
  3393.       2 index add
  3394.       exch
  3395.       moveto
  3396.       pop
  3397.       0 360 arc
  3398.       
  3399.       SetRandomRGB
  3400.  
  3401.       fill
  3402.  
  3403.         } repeat
  3404.  
  3405.    } bind def
  3406.  
  3407. %@Fill
  3408. /ColorCrosshatching %CuadriculadoColor,5, Dist.áMßxima:=75, Dist.áMφnima:=0, AnchoáLφnea:=5, Angulo:=45, Funci≤náAleatoria:=0
  3409.    { srand
  3410.    /Angle exch -180 180 InRange def
  3411.    /LineWidth exch 0 100 InRange def
  3412.    /MinDist exch 0 500 InRange def
  3413.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  3414.  
  3415.          /SetRandomRGB
  3416.          {
  3417.             3    %put 3 random numbers between 0 and 1 on the stack
  3418.             {rand 100 mod 1 add 100 div 1 exch sub}
  3419.             repeat
  3420.              setrgbcolor
  3421.          } def
  3422.  
  3423.    eoclip
  3424.    newpath
  3425.  
  3426.    /pntsize MaxDist MinDist sub def
  3427.    /dx2 Bburx Bbllx sub 2 div def
  3428.    /dy2 Bbury Bblly sub 2 div def
  3429.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  3430.  
  3431.    Bbllx Bblly translate
  3432.    dx2 dy2 translate
  3433.    Angle rotate
  3434.    LineWidth setlinewidth
  3435.  
  3436.    /wd hyp2 neg def
  3437.       { /wd rand pntsize mod MinDist add wd add def
  3438.       wd hyp2 neg moveto
  3439.       wd hyp2 lineto
  3440.  
  3441.             SetRandomRGB
  3442.             stroke
  3443.  
  3444.       wd hyp2 gt {exit} if
  3445.       } loop
  3446.  
  3447.    Angle -2 mul rotate
  3448.    /wd hyp2 neg def
  3449.       { /wd rand pntsize mod MinDist add wd add def
  3450.       wd hyp2 neg moveto
  3451.       wd hyp2 lineto
  3452.  
  3453.             SetRandomRGB
  3454.             stroke
  3455.  
  3456.       wd hyp2 gt {exit} if
  3457.       } loop
  3458.  
  3459.    } bind def
  3460.  
  3461. %@Fill
  3462. /ColorFishscale %EscamasColores,3, Frecuencia:=8, AnchoáLφnea:=5, GrisáFondo:=0
  3463.    {
  3464.    /BackgroundGray exch -1 100 InRange def
  3465.    /Linewidth      exch 0 100 InRange def
  3466.    /Frequency      exch 2 100 InRange def
  3467.  
  3468.          /SetRandomRGB
  3469.          {
  3470.             3    %put 3 random numbers between 0 and 1 on the stack
  3471.             {rand 100 mod 1 add 100 div 1 exch sub}
  3472.             repeat
  3473.              setrgbcolor
  3474.          } def
  3475.  
  3476.    /newfont 10 dict def
  3477.    newfont begin
  3478.  
  3479.    /FontMatrix [1  0  0
  3480.                 1  0  0] def
  3481.    /FontType 3 def
  3482.    /FontBBox [0 0 1 1] def
  3483.    /Encoding 256 array def
  3484.    0 1 255 {Encoding exch /.notdef put} for
  3485.  
  3486.    /BuildChar
  3487.      { 1  0
  3488.        0 0 1 1
  3489.        setcachedevice
  3490.        pop begin
  3491.  
  3492.        0.5 0.5 0.5 360 180 arcn
  3493.        0 1 0.5 270 360 arc
  3494.        1 1 0.5 180 270 arc
  3495.  
  3496.        Linewidth pntsize div setlinewidth
  3497.        stroke
  3498.  
  3499.       end
  3500.      } def
  3501.    end
  3502.  
  3503.    /pntsize 1000 Frequency div def
  3504.    /FillFont newfont definefont pop
  3505.    /FillFont findfont pntsize scalefont setfont
  3506.  
  3507.    eoclip
  3508.    BackgroundGray 0 ge
  3509.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3510.       { newpath } ifelse
  3511.  
  3512.     Bblly pntsize Bbury
  3513.       { Bbllx exch moveto
  3514.         {
  3515.                   SetRandomRGB
  3516.                     
  3517.                     (a) show
  3518.           currentpoint
  3519.           pop Bburx gt
  3520.           {exit} if
  3521.         } loop
  3522.       } for
  3523.     } bind def
  3524.  
  3525. %@Fill
  3526. /GreenGrass %HierbaVerde,5, N·mero:=100, Tama±oáMßximo:=35, Tama±oáMφnimo:=7, Gris:=0, Funci≤náAleatoria:=0
  3527.     { srand
  3528.     /Grey exch -1 100 InRange def
  3529.     /MinSize exch 1 100 InRange def
  3530.     /MaxSize exch MinSize 100 InRange MinSize wDstChck def
  3531.     /Number exch 1 500 InRange def
  3532.  
  3533.     eoclip
  3534.     Grey 0 ge
  3535.        { Grey 100 div 1 exch sub setgray fill }
  3536.        { newpath } ifelse
  3537.  
  3538.     /Bbllx Bbllx MaxSize sub def
  3539.     /Bblly Bblly MaxSize sub def
  3540.  
  3541.     /dx Bburx Bbllx sub def
  3542.     /dy Bbury Bblly sub def
  3543.     /dSize MaxSize MinSize sub def
  3544.  
  3545.     dx dy mul 1000000 div Number mul cvi
  3546.        {
  3547.  
  3548.        matrix currentmatrix
  3549.  
  3550.        rand dx mod Bbllx add
  3551.        rand dy mod Bblly add
  3552.        translate
  3553.  
  3554.        rand dSize mod MinSize add
  3555.        dup scale
  3556.  
  3557.        -0.5 0 moveto
  3558.        rand 14 mod 7 sub
  3559.        -0.5 3  2 index 3 div 0.3 sub 10  4 index 10 curveto
  3560.        3 div 0.3 add 10 0.5 3 0.5 0 curveto
  3561.              closepath
  3562.  
  3563.        gsave
  3564.              0                                                                            %0 red
  3565.              rand 100 mod 1 add 100 div 1 exch sub    %random green
  3566.              dup 0.7 lt {pop 0.7} if %above .7
  3567.              0                                                                            %0 blue
  3568.               setrgbcolor
  3569.        fill
  3570.        grestore
  3571.  
  3572.        0.1 setlinewidth
  3573.        0 setgray
  3574.        stroke
  3575.  
  3576.        setmatrix
  3577.  
  3578.        } repeat
  3579.  
  3580.      } bind def
  3581.  
  3582. %@Fill
  3583. /ColorHatching %RayadoColor,5, Dist.áMßxima:=75, Dist.áMφnima:=0, AnchoáLφnea:=5, Angulo:=45, Funci≤náAleatoria:=0
  3584.    { srand
  3585.    /Angle exch -180 180 InRange def
  3586.    /LineWidth exch 0 100 InRange def
  3587.    /MinDist exch 0 500 InRange def
  3588.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  3589.  
  3590.      /SetRandomRGB
  3591.      {
  3592.          3    %put 3 random numbers between 0 and 1 on the stack
  3593.          {rand 100 mod 1 add 100 div 1 exch sub}
  3594.          repeat
  3595.          setrgbcolor
  3596.      } def
  3597.  
  3598.    eoclip
  3599.    newpath
  3600.  
  3601.    /pntsize MaxDist MinDist sub def
  3602.    /dx2 Bburx Bbllx sub 2 div def
  3603.    /dy2 Bbury Bblly sub 2 div def
  3604.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  3605.  
  3606.    Bbllx Bblly translate
  3607.    dx2 dy2 translate
  3608.    Angle rotate
  3609.    LineWidth setlinewidth
  3610.  
  3611.    /wd hyp2 neg def
  3612.  
  3613.       { /wd rand pntsize mod MinDist add wd add def
  3614.       wd hyp2 neg moveto
  3615.       wd hyp2 lineto
  3616.  
  3617.             SetRandomRGB
  3618.  
  3619.       stroke
  3620.       wd hyp2 gt {exit} if
  3621.       } loop
  3622.  
  3623.    } bind def
  3624.  
  3625. %@Fill
  3626. /GreenLeaves %HojasVerdes,5, N·meroá(pulgadas2):=50, VerdeáMßximo:=100, VerdeáMφnimo:=70, Tama±oáMßximo:=100, Tama±oáMφnimo:=10
  3627.    {
  3628.    /MinSize exch 1 200 InRange def
  3629.    /MaxSize exch MinSize 200 InRange MinSize wDstChck def
  3630.    /MinGreen exch 0 100 InRange def
  3631.    /MaxGreen exch MinGreen 100 InRange def
  3632.    /Number exch 1 250 InRange def
  3633.  
  3634.    eoclip newpath
  3635.    currentscreen
  3636.    3 -1 roll
  3637.    pop 90
  3638.    3 1 roll
  3639.    setscreen
  3640.  
  3641.    /dx Bburx Bbllx sub def
  3642.    /dy Bbury Bblly sub def
  3643.  
  3644.    dx dy mul Number mul 1000000 div cvi
  3645.       {
  3646.       matrix currentmatrix
  3647.  
  3648.       rand dx mod Bbllx add
  3649.       rand dy mod Bblly add
  3650.       translate
  3651.  
  3652.       rand 360 mod
  3653.       rotate
  3654.  
  3655.       MaxSize MinSize eq
  3656.         { Maxsize 10.8 div }
  3657.         { rand MaxSize MinSize sub mod MinSize add 10.8 div } ifelse
  3658.       dup scale
  3659.  
  3660.       17 0 moveto
  3661.       65 -18 106 -13 125 0 curveto
  3662.       106 13  65  18  17 0 curveto
  3663.       gsave
  3664.             0    % 0 red
  3665.       MaxGreen MinGreen eq
  3666.         { MaxGreen 100 div }
  3667.         { rand MaxGreen MinGreen sub mod MinGreen add 100 div } ifelse
  3668.             0 % 0 blue
  3669.       setrgbcolor
  3670.       fill
  3671.       grestore
  3672.       0.3 setlinewidth
  3673.       0 setgray
  3674.       stroke
  3675.  
  3676.       setmatrix
  3677.  
  3678.       } repeat
  3679.  
  3680.    } bind def
  3681.  
  3682. %@Fill
  3683. /ColorLeaves %HojasColor,3, N·meroá(pulgadas2):=50, Tama±oáMßximo:=100, Tama±oáMφnimo:=10
  3684.    {
  3685.    /MinSize exch 1 200 InRange def
  3686.    /MaxSize exch MinSize 200 InRange MinSize wDstChck def
  3687.    /Number exch 1 250 InRange def
  3688.  
  3689.          /SetRandomRGB
  3690.          {
  3691.             3    %put 3 random numbers between 0 and 1 on the stack
  3692.             {rand 100 mod 1 add 100 div 1 exch sub}
  3693.             repeat
  3694.              setrgbcolor
  3695.          } def
  3696.  
  3697.    eoclip newpath
  3698.    currentscreen
  3699.    3 -1 roll
  3700.    pop 90
  3701.    3 1 roll
  3702.    setscreen
  3703.  
  3704.    /dx Bburx Bbllx sub def
  3705.    /dy Bbury Bblly sub def
  3706.  
  3707.    dx dy mul Number mul 1000000 div cvi
  3708.       {
  3709.       matrix currentmatrix
  3710.  
  3711.       rand dx mod Bbllx add
  3712.       rand dy mod Bblly add
  3713.       translate
  3714.  
  3715.       rand 360 mod
  3716.       rotate
  3717.  
  3718.       MaxSize MinSize eq
  3719.         { Maxsize 10.8 div }
  3720.         { rand MaxSize MinSize sub mod MinSize add 10.8 div } ifelse
  3721.       dup scale
  3722.  
  3723.       17 0 moveto
  3724.       65 -18 106 -13 125 0 curveto
  3725.       106 13  65  18  17 0 curveto
  3726.       gsave
  3727.  
  3728.       SetRandomRGB
  3729.  
  3730.       fill
  3731.       grestore
  3732.       0.3 setlinewidth
  3733.       0 setgray
  3734.       stroke
  3735.  
  3736.       setmatrix
  3737.  
  3738.       } repeat
  3739.  
  3740.    } bind def
  3741.  
  3742. %@Fill
  3743. /ColorReptiles %ReptilesColor,2, Frecuencia:=4, AnchoáLφnea:=8
  3744. {
  3745.   /LineWidth exch 0 250 InRange def
  3746.   /Frequency exch 1 100 InRange def
  3747.  
  3748.     /SetRandomRGB
  3749.     {
  3750.         3    %put 3 random numbers between 0 and 1 on the stack
  3751.         {rand 100 mod 1 add 100 div 1 exch sub}
  3752.         repeat
  3753.         setrgbcolor
  3754.     } def
  3755.  
  3756.   /newfont 10 dict def
  3757.   newfont begin
  3758.  
  3759.   /FontMatrix [2 7 div             0
  3760.                0                   2 7 div
  3761.                0                   0] def
  3762.   /FontType 3 def
  3763.   /FontBBox [-1.73 -1.86 2.36 2.0] def
  3764.   /Encoding 256 array def
  3765.   0 1 255 {Encoding exch /.notdef put} for
  3766.   Encoding 97 /ReptilesStroked put
  3767.   Encoding 98 /ReptileFilled put
  3768.  
  3769.   /CharProcs 3 dict def
  3770.   CharProcs begin
  3771.   /.notdef {} def
  3772.   /ReptilesStroked
  3773.   {
  3774.     %3 sqrt  3 2 div  translate
  3775.  
  3776.     3 sqrt 2 div  1 2 div  moveto
  3777.     3
  3778.     {
  3779.       120 rotate
  3780.  
  3781.       0     0    moveto
  3782.       0.32 -0.40 lineto
  3783.       0.32 -0.48 lineto
  3784.       0    -0.72 lineto
  3785.  
  3786.       0.05 -1.03 moveto
  3787.       0.4  -0.76 lineto
  3788.       0.84 -0.84 lineto
  3789.       0.5  -0.96 lineto
  3790.       0.31 -1.18 lineto
  3791.  
  3792.       0.87 -1.5  moveto
  3793.       0.58 -1.28 lineto
  3794.       0.8  -1.14 lineto
  3795.       0.94 -1.18 lineto
  3796.       1.24 -1.08 lineto
  3797.       1.42 -1.18 lineto
  3798.  
  3799.       1.68 -1.02 moveto
  3800.       1.52 -0.84 lineto
  3801.       1.64 -0.66 lineto
  3802.       1.73 -0.36 lineto
  3803.  
  3804.       1.73  0    moveto
  3805.       1.41 -0.26 lineto
  3806.       1.32 -0.49 lineto
  3807.       1.06 -0.24 lineto
  3808.       1.42  0.18 lineto
  3809.  
  3810.       0.87  0.57 moveto
  3811.       0.87  0.26 lineto
  3812.       0.99  0.26 lineto
  3813.       1.05  0.12 lineto
  3814.       0.82 -0.07 lineto
  3815.       0.68 -0.07 lineto
  3816.       0.62  0.36 lineto
  3817.  
  3818.  
  3819.       3 sqrt 2 div  1 2 div moveto
  3820.  
  3821.     } repeat
  3822.  
  3823.     LineWidth Pointsize div 7 2 div mul setlinewidth
  3824.     stroke
  3825.  
  3826.   } def
  3827.   /ReptileFilled
  3828.   {
  3829.     0     0    moveto
  3830.     0.32 -0.40 lineto
  3831.     0.32 -0.48 lineto
  3832.     0    -0.72 lineto
  3833.  
  3834.    -0.40 -0.55 lineto
  3835.    -0.47 -0.68 lineto
  3836.    -0.42 -0.97 lineto
  3837.    -0.27 -0.99 lineto
  3838.    -0.21 -0.88 lineto
  3839.  
  3840.     0.05 -1.03 lineto
  3841.     0.4  -0.76 lineto
  3842.     0.84 -0.84 lineto
  3843.     0.5  -0.96 lineto
  3844.     0.31 -1.18 lineto
  3845.  
  3846.     0.32 -1.39 lineto
  3847.     0.55 -1.60 lineto
  3848.     0.59 -1.74 lineto
  3849.     0.82 -1.86 lineto
  3850.  
  3851.     0.87 -1.5  lineto
  3852.     0.58 -1.28 lineto
  3853.     0.8  -1.14 lineto
  3854.     0.94 -1.18 lineto
  3855.     1.24 -1.08 lineto
  3856.     1.42 -1.18 lineto
  3857.     1.52 -1.45 lineto
  3858.     1.45 -1.81 lineto
  3859.     1.74 -1.47 lineto
  3860.     1.68 -1.02 lineto
  3861.     1.52 -0.84 lineto
  3862.     1.64 -0.66 lineto
  3863.     1.73 -0.36 lineto
  3864.     2.28 -0.46 lineto
  3865.     2.36 -0.11 lineto
  3866.     2.12 -0.15 lineto
  3867.     1.73  0    lineto
  3868.     1.41 -0.26 lineto
  3869.     1.32 -0.49 lineto
  3870.     1.06 -0.24 lineto
  3871.     1.42  0.18 lineto
  3872.     1.21  0.41 lineto
  3873.     1.11  0.60 lineto
  3874.  
  3875.     0.87  0.57 lineto
  3876.     0.87  0.26 lineto
  3877.     0.99  0.26 lineto
  3878.     1.05  0.12 lineto
  3879.     0.82 -0.07 lineto
  3880.     0.68 -0.07 lineto
  3881.     0.62  0.36 lineto
  3882.     0.26  0.52 lineto
  3883.     0.19  0.48 lineto
  3884.     closepath
  3885.     fill
  3886.   } def
  3887.   end
  3888.  
  3889.   /BuildChar
  3890.   {
  3891.     3 sqrt 3 mul 2 div  3 2 div
  3892.     -1.83 -1.96 2.46 2.1
  3893.     setcachedevice
  3894.     exch begin
  3895.     Encoding exch get
  3896.     CharProcs exch get
  3897.     end
  3898.     exec
  3899.   } def
  3900.   end
  3901.  
  3902.   /Pointsize 2000 Frequency div def
  3903.  
  3904.   /FillFont newfont definefont pop
  3905.   /FillFont findfont Pointsize scalefont setfont
  3906.  
  3907.   /pntsize Pointsize 6 mul 7 div def
  3908.   /HeightDiff Pointsize 2 mul 7 div .49 mul def
  3909.  
  3910.   eoclip newpath
  3911.  
  3912.   currentscreen
  3913.   3 -1 roll
  3914.   pop 120
  3915.   3 1 roll
  3916.   setscreen
  3917.  
  3918.   Bblly pntsize Bbury pntsize add HeightDiff add
  3919.   {
  3920.     Bbllx 1 index moveto
  3921.     {
  3922.       currentpoint
  3923.       1 index exch
  3924.  
  3925.       2 copy 2 copy translate
  3926.       240 rotate
  3927.       
  3928.             SetRandomRGB
  3929.             (b) show
  3930.  
  3931.       0 0 moveto
  3932.       -240 rotate
  3933.       neg exch neg exch translate
  3934.  
  3935.       2 copy translate
  3936.       120 rotate
  3937.       
  3938.             SetRandomRGB
  3939.             (b) show
  3940.       
  3941.             0 0 moveto
  3942.       -120 rotate
  3943.       neg exch neg exch translate
  3944.  
  3945.             SetRandomRGB
  3946.       (b) show
  3947.  
  3948.       currentpoint
  3949.       dup 4 index sub
  3950.       pntsize 2.1 div gt { pntsize sub } if
  3951.       3 -1 roll Bburx gt
  3952.       {pop pop pop exit} if
  3953.       moveto
  3954.     } loop
  3955.   } for
  3956.  
  3957.   LineWidth 0 gt
  3958.   {
  3959.     0 setgray
  3960.     Bblly pntsize Bbury pntsize add
  3961.     {
  3962.       Bbllx 1 index moveto
  3963.       {
  3964.         (a) show
  3965.         currentpoint
  3966.         dup 3 index sub
  3967.         pntsize 2.1 div gt { pntsize sub } if
  3968.         1 index Bburx gt
  3969.         {pop pop pop exit} if
  3970.         moveto
  3971.       } loop
  3972.     } for
  3973.   } if
  3974. } bind def
  3975.  
  3976. %@Fill
  3977. /StainedGlass %VidrieraColor,2, Frecuencia:=15, AnchoáLφnea:=5
  3978.    {
  3979.    /Linewidth exch 0 100 InRange def
  3980.    /Frequency exch 1 50 InRange def
  3981.  
  3982.      /SetRandomRGB
  3983.      {
  3984.          3    %put 3 randoms number between 0 and 1 on the stack
  3985.          {rand 100 mod 1 add 100 div 1 exch sub}
  3986.          repeat
  3987.         setrgbcolor
  3988.      } def
  3989.  
  3990.    Linewidth Frequency mul 250 div setlinewidth
  3991.    eoclip newpath
  3992.    0 srand
  3993.  
  3994.    currentscreen
  3995.    3 -1 roll
  3996.    pop 100
  3997.    3 1 roll
  3998.    setscreen
  3999.  
  4000.    /dy Bbury Bblly sub def
  4001.    /dx Bburx Bbllx sub def
  4002.    Bbllx Bbury translate
  4003.    250 Frequency div dup scale
  4004.  
  4005.    dy 920 div Frequency mul cvi {
  4006.       0 0 moveto
  4007.       /x0 0 def
  4008.       /y0 0 def
  4009.       /x1 0 def
  4010.       /y1 0 def
  4011.       /x2 0 def
  4012.       /y2 0 def
  4013.       /x3 0 def
  4014.       /y3 0 def
  4015.       0 5 dx 200 div Frequency mul
  4016.          { rand 50 mod 25 div 1 sub add
  4017.          x3 y3 moveto
  4018.          x2 y2 x1 y1 x0 y0 curveto
  4019.          dup rand 30 mod 15 div neg 2 sub
  4020.          2 copy
  4021.          /y0 exch def
  4022.          /x0 exch def
  4023.          lineto
  4024.          dup rand 50 mod 10 div 2.5 sub add rand 50 mod 10 div neg
  4025.          1 index rand 50 mod 10 div
  4026.          4 index rand 30 mod 15 div 2 add
  4027.          6 copy
  4028.          /y3 exch def
  4029.          /x3 exch def
  4030.          /y2 exch def
  4031.          /x2 exch def
  4032.          /y1 exch def
  4033.          /x1 exch def
  4034.          curveto
  4035.          pop
  4036.          closepath
  4037.          
  4038.                  gsave
  4039.                  SetRandomRGB
  4040.                  fill
  4041.          grestore
  4042.  
  4043.          0 setgray stroke
  4044.          } for
  4045.       0 -4 translate
  4046.       } repeat
  4047.    } bind def
  4048.