home *** CD-ROM | disk | FTP | other *** search
/ PC go! 1995 September / Image.iso / pcgo / programm / demo / corel / custom / userproc.ps < prev   
Encoding:
Text File  |  1994-08-03  |  79.6 KB  |  3,322 lines

  1. %%  --------------------------------------------------------------------
  2. %%  ----------- CorelDRAW! BENUZTZERDEFINIERTE FUNKTON -----------------
  3. %%  ------Dateiname: USERPROC.PS------------------------------------
  4. %% HINWEISE:
  5.  
  6.     Es gibt zwei Arten benutzerdefinierter Funktionen: "Punkt" und "Fⁿllung"
  7.  
  8.     - Eine Punktfunktion ist eine Funktion, die zwei Gleitkommargumente,
  9.         X und Y, beide zwischen -1 und 1, nimmt und einen reellen Wert zwischen
  10.         -1 und 1 (sonst gibt es einen Ausfⁿhrungsfehler) names Z zurⁿckgibt.
  11.         Der Bereich ist ein 2 X 2-Rechteck, das (beim Druck) in jede Zelle
  12.         des Halbtonrasters eingetragen wird.
  13.         Die 3-D-Darstellung der Funktion Z = f(X,Y) (braucht nicht fortlaufend
  14.         sein, aber f(X,Y) mu▀ fⁿr alle -1 <= X, Y <= 1 definiert sein)
  15.         ist eine OberflΣche, deren h÷heren Punkte in jeder Zelle zuerst gewei▀t werden.
  16.         Weitere Informationen ⁿber Punktfunktionen siehe Abschnitt 4.8 des
  17.         POSTSCRIPT LANGUAGE REFERENCE MANUAL (von Adobe Systems Inc.).
  18.  
  19.     - Eine Fⁿllfunktion nimmt zwischen 0 und 5 Argumenten. Sie geht von einem
  20.         bereits gezogenen Pfad (eventuell eingeschlossen und unterbrochen) aus und
  21.         versucht eine Fⁿllung.
  22.         Eine einfach Fⁿllfunktion k÷nnte wie folgt aussehen:
  23.                 /MyFill1 { %0 parms
  24.                     .70 setgray fill } bind def
  25.         Bei komplexeren Fⁿllungen bezieht sich die Fⁿllfunktion u. U.
  26.         auf das aktuelle Objektbegrenzungsfeld, das immer in CORELDRAW-Einheiten
  27.         (1/1000) eines Zolls definiert ist und relativ zum logischen
  28.         CORELDRAW-Ursprung ist.
  29.  
  30.         Globals Bbllx, Bblly, Bburx, Bbury k÷nnen immer benutzt werden, um
  31.         untere linke und obere rechte Ecke des Objektfeldes abzurufen.
  32.  
  33.         HINWEIS 1: Fⁿr Objekte mit unterbrochenen Pfaden wie langen W÷rtern und
  34.         unterbrochenen Linien & Kurven wird die Fⁿllfunktion fⁿr jeden geschlossenen
  35.         Unterpfad einmal aufgerufen. Das Objektbegrenzungsfeld bleibt bei jedem Aufruf
  36.         das gleiche.
  37.  
  38.         HINWEIS 2: Beim Aufruf von CorelDRAW! befindet sich die Fⁿllfunktion in
  39.         einer "gsave - grestore"-Sequenz, so da▀ die Fⁿllfunktion den Original-
  40.         Grafikzustand nicht wiederherstellen zu braucht. Die Fⁿllfunktion darf
  41.         au▀erdem keine andere Annahme ⁿber den aktuellen Grafikzustand machen
  42.         als folgende:     - Der aktuelle Drehwinkel ist 0 (-90 fⁿr Querformatseiten)
  43.                       - Die aktuelle Einheit ist MIL (1/1000 Zoll)
  44.                       - Ein Pfad ist zum Ausfⁿllen bereit.
  45.  
  46. SYNTAX F▄R DIESE DATEI:
  47.     - Eine Funktionsdefinition beginnt mit einer "%@Spot"- oder "%@Fill"-Kommentarzeile
  48.     ab Zeile eins und gibt an, da▀ eine Punkt- oder Fⁿllfunktion definiert wird.
  49.     Die restliche Zeile wird ignoriert.
  50.     - Die direkt folgende Zeile mu▀ mit dem Funktionsnamen und nachfolgendem
  51.     '/' (SchrΣgstrich) in Spalte eins beginnen (z. B.: /MyFirstFill).
  52.     Dieser Name dient zur Kennzeichnung der Fⁿllung in der .CDR-Datei und den
  53.     .EPS-Dateien. Die restliche Zeile gibt den Namen an, der im Auswahldialogfeld
  54.     fⁿr angepa▀te Funktionen von CorelDRAW! erscheint, und die Benutzerparameter
  55.     fⁿr die Funktion. Punktfunktionen erlauben keine Benutzerparameter, sondern
  56.     nur einen Anzeigenamen. Fⁿllfunktionen erm÷glichen 0 bis 5 Parameter wie folgt:
  57.  
  58.             %<benutzerfnname>,<anzahl par> ,<parname1>=<vorgabe1>,<parname2>=<vorgabe2>,...
  59.  
  60.             wobei: <benutzerfnname> der Name ist, der im Listenfeld fⁿr PSFILL
  61.               Auswahl erscheint; diese Zeichenfolge wird fⁿr fremdsprachliche
  62.               Versionen ⁿbersetzt.
  63.              <anzahl par> ist ein ganzzahliger Wert zwischen 0 und 5
  64.              <parnameX> ist die Signifikanz des Parameters X (bis zu 20 Zeichen)
  65.              <vorgabeX> ist die Standardzahl fⁿr diesen Parameter (immer ganzzahlig)
  66.             Die Anzahl der Parameternamen & -vorgaben mu▀ immer mit dem
  67.             <anzahl par>-Wert ⁿbereinstimmen.
  68.             Vor dem Aufruf der Fⁿllfunktion stapelt das Hauptprogramm
  69.             Parameter in der angegebenen Reihenfolge.
  70.         ALLE PARMAMETER SIND GANZZAHLIG.
  71.  
  72.         BEISPIEL:        eine Fⁿllfunktion mit 3 Parametern
  73.  
  74.         %@Fill
  75.         /MyFunction  %MyFunctionName,3,Background gray=100,Foreground gray=50,Density=4
  76.             {        % when called, STACK= <BackGray> <ForeGray> <Density>
  77.             /Density exch 1 10 InRange def        % validate density
  78.             /ForeGray exch 0 100 InRange def        % validate foreground gray
  79.             /BackGray exch 0 100 InRange def        % validate background gray
  80.             ...
  81.             } bind def
  82.  
  83.             HINWEIS: Die 'InRange'-PostScript-Funktion.
  84.             Das Hauptprogramm kann den Parameterbereich nicht validieren.
  85.             Die Fⁿllfunktion kan die mitgelieferte Funktion 'InRange'
  86.             nutzen, die im folgenden beschrieben wird:
  87.                 <wert> <min> <max> InRange  ==>  <neuwert>
  88.                 InRange nimmt 3 Argumente aus dem Stack, stellt sicher, da▀ der
  89.                 <wert> zwischen <min> und <max> liegt. In diesem Fall wird <wert>
  90.                 im Stack belassen, sonst wird ein gⁿltiger <neuwert> in den Stack gestellt.
  91.  
  92.             Hinweis: Die 'wDstChck'-PostScript-Funktion.
  93.             Bei einem Maximalwert, der einem Minimalwert entspricht, ist der Unterschied
  94.             null und fⁿhrt in den meisten FΣllen zu einer Division durch null. Die
  95.             Fⁿllfunktion kann folgende mitgelieferte Funktion 'wDstChck' benutzen,
  96.                         die im folgenden beschrieben wird:
  97.                 <Maxwert> <Minwert> wDstChck ==> Maxwert oder Maxwert+1
  98.                 Sind beide Werte identisch
  99.                               dann Maxwert 1 hinzufⁿgen und im Stack belassen
  100.                             sonst
  101.                               Maxwert unverΣndert im Stack belassen.
  102.  
  103.     - Die folgenden n Zeilen enthalten den Funktionsk÷rper in geschweiften
  104.     Klammern mit nachfolgender Folge "bind def".
  105.     - Der Inhalt des K÷rpers wird von CorelDRAW! nicht analysiert. Eine 
  106.     Funktionsdefinition wird beendet, wenn die nΣchste '%@..."-Folge gelesen wird
  107.     oder das Dateiende erreicht wird.
  108.     - Zeilen dⁿrfen 150 Zeichen nicht ⁿberschreiten.
  109.     - Funktionsnamen dⁿrfen 20 Zeichen nicht ⁿberschreiten.
  110.     - Parameternamen dⁿrfen 20 Zeichen nicht ⁿberschreiten.
  111.     - Es gibt keine Grenze fⁿr die Anzahl Zeilen in den einzelnen Funktionen.
  112.  
  113.  
  114. %@Spot
  115. /Dot2 %Punkt2
  116.         { %def --SPOT FUNCTION : DOT2: black around cells
  117.         dup mul exch dup mul add 1 sub
  118.         } bind def
  119.  
  120. %@Spot
  121. /OutCircleBlk %─u▀KreisSchw
  122.         { %def --SPOT FUNCTION : OUTCIRCLE: empty black circles
  123.         dup mul exch dup mul add
  124.         0.6 exch sub abs -0.5 mul
  125.         } bind def
  126.  
  127. %@Spot
  128. /OutCircleWhi %─u▀KreisWei▀
  129.         { %def --SPOT FUNCTION : OUTCIRCLE: empty black circles
  130.         dup mul exch dup mul add
  131.         0.6 exch sub abs 0.5 mul
  132.         } bind def
  133.  
  134. %@Spot
  135. /Diamond %Raute
  136.         { %def --SPOT FUNCTION : DIAMOND1
  137.         abs exch abs add 1 exch sub
  138.         } bind def
  139.  
  140. %@Spot
  141. /Diamond2 %Raute2
  142.         { %def --SPOT FUNCTION : DIAMOND2
  143.                 abs exch abs 2 copy add .75
  144.                 le {dup mul exch dup mul add 1
  145.                 exch sub} {2 copy add 1.25 
  146.                 le {.85 mul add 1 exch sub} 
  147.                 {1 sub dup mul exch 1 sub dup mul
  148.                 add 1 sub} ifelse} ifelse
  149.         } bind def
  150.  
  151. %@Spot
  152. /MicroWaves %Mikrowellen
  153.         { %def --SPOT FUNCTION : MICROWAVES
  154.         /wy exch def
  155.         180 mul cos 2 div wy dup dup dup mul mul sub mul wy add
  156.         180 mul cos
  157.         } bind def
  158.  
  159. %@Spot
  160. /Grid %Gitter
  161.         { % A SQUARE GRID
  162.         2 copy
  163.         abs exch abs
  164.         gt {exch} if
  165.         pop 2 mul 1 exch sub 3.5 div
  166.         } bind def
  167.  
  168. %@Spot
  169. /Lines %Linien
  170.         { % STRAIGHT LINES
  171.         pop abs 2 mul 1 exch sub
  172.         } bind def
  173.  
  174. %@Spot
  175. /Star %Stern
  176.      {
  177.      abs exch abs
  178.      2 copy gt {exch} if
  179.      1  sub
  180.     dup 0 eq {0.01 add}if
  181.      atan 360 div
  182.      } bind def
  183.  
  184. %@Spot
  185. /Euclidean %Euklid
  186.         { %def --SPOT FUNCTION : EUCLIDEAN composite dot
  187.                 abs exch abs
  188.                 2 copy add 1
  189.                 gt {1 sub dup mul
  190.                 exch 1 sub dup mul 
  191.                 add 1 sub} {dup mul exch
  192.                 dup mul add 1 exch sub}
  193.                 ifelse
  194.         } bind def
  195.  
  196. %@Spot
  197. /Rhomboid %Rhomboid
  198.              { %def --SPOT FUNCTION : RHOMBOID
  199.                 abs exch abs .8
  200.                 mul add 2 div
  201.         } bind def
  202.  
  203. %@Spot
  204. /Elliptical %Elliptisch
  205.              { %def --SPOT FUNCTION : ELLIPTICAL
  206.                 dup mul .9 mul
  207.                 exch dup mul add
  208.                 1 sub
  209.         } bind def
  210.  
  211. %----------------------------------------------------------------------------
  212.  
  213. %@Fill
  214. /Archimedes %Archimedes,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  215.    {
  216.    /BackgroundGray exch -1 100 InRange def
  217.    /ForegroundGray exch 0 100 InRange def
  218.    /Linewidth      exch 0 100 InRange def
  219.    /Frequency      exch 2 100 InRange def
  220.  
  221.    /newfont 10 dict def
  222.    newfont begin
  223.  
  224.    /FontMatrix [3 sqrt 1 add 1 exch div  0  0
  225.                3 sqrt 1 add 1 exch div  0  0] def
  226.    /FontType 3 def
  227.    /FontBBox [0 0 3 sqrt 1 add 3 sqrt 1 add] def
  228.    /Encoding 256 array def
  229.    0 1 255 {Encoding exch /.notdef put} for
  230.  
  231.    /BuildChar
  232.      { 3 sqrt 1 add  0
  233.        -0.1 -0.1 3 sqrt 1.1 add 3 sqrt 1.1 add
  234.        setcachedevice
  235.        pop begin
  236.  
  237.        0 0 moveto
  238.        1 2 div  0 lineto
  239.        0  3 sqrt 2 div lineto
  240.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  241.        0  3 sqrt 2 div 1 add lineto
  242.        0  3 sqrt 2 div lineto
  243.  
  244.        0  3 sqrt 2 div 1 add moveto
  245.        1 2 div  3 sqrt 1 add lineto
  246.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  247.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  248.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  249.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  250.        3 sqrt 1 2 div add  3 sqrt 1 add lineto
  251.        3 sqrt 1 add  3 sqrt 2 div 1 add lineto
  252.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  253.        3 sqrt 1 add  3 sqrt 2 div lineto
  254.        3 sqrt 1 2 div add  0 lineto
  255.        3 sqrt 1 add 2 div  1 2 div lineto
  256.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  257.  
  258.        3 sqrt 1 add 2 div  3 sqrt 1 add moveto
  259.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  260.  
  261.        3 sqrt 1 add 2 div  0  moveto
  262.        3 sqrt 1 add 2 div  1 2 div lineto
  263.  
  264.        1 2 div  0 moveto
  265.        3 sqrt 1 add 2 div  1 2 div lineto
  266.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  267.  
  268.        3 sqrt 1 2 div add  0 moveto
  269.        3 sqrt 1 add  0 lineto
  270.  
  271.        3 sqrt 1 2 div add  3 sqrt 1 add moveto
  272.        3 sqrt 1 add  3 sqrt 1 add lineto
  273.  
  274.        0  3 sqrt 1 add moveto
  275.        1 2 div  3 sqrt 1 add lineto
  276.  
  277.        3 sqrt 1 add  3 sqrt 2 div moveto
  278.        3 sqrt 1 add  3 sqrt 2 div 1 add lineto
  279.  
  280.        Linewidth pntsize div 3 sqrt 1 add mul setlinewidth
  281.        stroke
  282.  
  283.       end
  284.      } def
  285.    end
  286.  
  287.    /pntsize 2000 Frequency div def
  288.    /FillFont newfont definefont pop
  289.    /FillFont findfont pntsize scalefont setfont
  290.  
  291.    eoclip
  292.    BackgroundGray 0 ge
  293.       { BackgroundGray 100 div 1 exch sub setgray fill }
  294.       { newpath } ifelse
  295.  
  296.    ForegroundGray 100 div 1 exch sub setgray
  297.  
  298.    Bblly pntsize Bbury
  299.      { Bbllx pntsize Bburx
  300.        { 1 index moveto
  301.        (a) show
  302.        } for
  303.      pop
  304.      } for
  305.    } bind def
  306.  
  307. %@Fill
  308. /Bars %Balken,4, Breite=10, Abstand(%)=100, Maximalgrau=100, Minimalgrau=10
  309.    {
  310.    /MinGrey exch 0 100 InRange def
  311.    /MaxGrey exch MinGrey 100 InRange def
  312.    /Spacing exch 0 300 InRange def
  313.    /Width exch 1 100 InRange def
  314.  
  315.    /dgrey MaxGrey MinGrey sub def
  316.    /inc 1 Spacing 100 div add def
  317.  
  318.    eoclip newpath
  319.  
  320.    currentscreen
  321.    3 -1 roll
  322.    pop 90
  323.    3 1 roll
  324.    setscreen
  325.  
  326.    Bbllx Bblly translate
  327.    /dx Bburx Bbllx sub Width div def
  328.    /dy Bbury Bblly sub Width div def
  329.    Width 10 mul dup scale
  330.    /mtx matrix currentmatrix def
  331.    .05 setlinewidth
  332.  
  333.    0 inc dx
  334.      { 0 translate
  335.       -.5 .05 .5
  336.          { dup 0 moveto
  337.            dup dy lineto
  338.            dup mul 0.250001 exch sub sqrt 2 mul
  339.            dgrey mul MaxGrey exch sub 100 div 1 exch sub setgray
  340.            stroke
  341.          } for
  342.       mtx setmatrix
  343.       } for
  344.    dx 0 translate
  345.    90 rotate
  346.    /mtx matrix currentmatrix def
  347.    0 inc dy
  348.      { 0 translate
  349.       -.5 .05 .5
  350.          { dup 0 moveto
  351.            dup dx lineto
  352.            dup mul 0.250001 exch sub sqrt 2 mul
  353.            dgrey mul MaxGrey exch sub 100 div 1 exch sub setgray
  354.            stroke
  355.          } for
  356.       mtx setmatrix
  357.       } for
  358.    } bind def
  359.  
  360. %@Fill
  361. /Basketweave %Korbgeflecht,4, Rasterabstand=6, Linienbreite=10, Vordergrundgrau=100, Geflechtbreite(%)=100
  362.    {
  363.    /Width exch 1 200 InRange def
  364.    /Grey exch 0 100 InRange def
  365.    /LineWidth exch 0 100 InRange def
  366.    /Frequency exch 1 100 InRange def
  367.  
  368.    /dif Width 100 sub 100 div def
  369.  
  370.    /newfont 10 dict def
  371.    newfont begin
  372.  
  373.    /FontMatrix [.25  0
  374.                 0    .25
  375.                 0    0] def
  376.    /FontType 3 def
  377.    /FontBBox [0 0 4 4] def
  378.    /Encoding 256 array def
  379.    0 1 255 {Encoding exch /.notdef put} for
  380.    Encoding 97 /Holes put
  381.    Encoding 98 /Weave put
  382.  
  383.    /CharProcs 3 dict def
  384.    CharProcs begin
  385.    /.notdef {} def
  386.    /Holes
  387.       {
  388.       1 dif moveto
  389.       2 dif sub 1 lineto
  390.       1 2 dif sub lineto
  391.       dif 1 lineto
  392.       closepath
  393.       fill
  394.  
  395.       3 2 dif add moveto
  396.       4 dif sub 3 lineto
  397.       3 4 dif sub lineto
  398.       2 dif add 3 lineto
  399.       closepath
  400.       fill
  401.       } def
  402.    /Weave
  403.       {
  404.       0 3 dif add moveto
  405.       1 dif sub 4 lineto
  406.  
  407.       0 1 dif add moveto
  408.       1 dif lineto
  409.  
  410.       3 dif sub 4 moveto
  411.       4 dif sub 3 lineto
  412.  
  413.       1 dif sub 0 moveto
  414.       2 dif sub 1 lineto
  415.  
  416.       4 3 dif add moveto
  417.       3 2 dif add lineto
  418.  
  419.       3 dif sub 0 moveto
  420.       1 2 dif sub lineto
  421.  
  422.       4 1 dif add moveto
  423.       2 dif add 3 lineto
  424.  
  425.       dif 1 moveto
  426.       3 4 dif sub lineto
  427.  
  428.       LineWidth 100 div setlinewidth
  429.       stroke
  430.       } def
  431.    end
  432.  
  433.    /BuildChar
  434.      { 4  0
  435.        -0.1 -0.1 4.1 4.1
  436.        setcachedevice
  437.        exch begin
  438.        Encoding exch get
  439.        CharProcs exch get
  440.        end
  441.        exec
  442.      } def
  443.    end
  444.  
  445.    /pntsize 1000 Frequency div def
  446.  
  447.    /FillFont newfont definefont pop
  448.    /FillFont findfont pntsize scalefont setfont
  449.  
  450.    eoclip newpath
  451.  
  452.    Grey 100 div 1 exch sub setgray
  453.    Bblly pntsize Bbury
  454.      { Bbllx exch moveto
  455.        { (a) show
  456.          currentpoint
  457.          pop Bburx gt
  458.          {exit} if
  459.        } loop
  460.      } for
  461.  
  462.    0 setgray
  463.    Bblly pntsize Bbury
  464.      { Bbllx exch moveto
  465.        { (b) show
  466.          currentpoint
  467.          pop Bburx gt
  468.          {exit} if
  469.        } loop
  470.      } for
  471.  
  472.    } bind def
  473.  
  474. %@Fill
  475. /Birds %V÷gel,4, Rasterabstand=8, Linienbreite=4, Vordergrundgrau=100, Hintergrundgrau=0
  476.    {
  477.    /BackgroundGray exch -1 100 InRange def
  478.    /ForegroundGray exch 0 100 InRange def
  479.    /Linewidth      exch 0 100 InRange def
  480.    /Frequency      exch 2 100 InRange def
  481.  
  482.    /newfont 10 dict def
  483.    newfont begin
  484.  
  485.    /FontMatrix [1 162 div  0
  486.                 0         1 162 div
  487.                 0         0] def
  488.    /FontType 3 def
  489.    /FontBBox [-92 -150 46 12] def
  490.    /Encoding 256 array def
  491.    0 1 255 {Encoding exch /.notdef put} for
  492.  
  493.    /BuildChar
  494.      { 138  0
  495.        -92 -150 46 12
  496.        setcachedevice
  497.        pop begin
  498.  
  499.        -92 -150 moveto
  500.        -92 12   lineto
  501.        46  12   lineto
  502.        46 -150  lineto
  503.        closepath
  504.        clip
  505.        newpath
  506.  
  507.        2 {
  508.          gsave
  509.          3 {
  510.            -10 -8 moveto
  511.            60 24  -54 60  -9 72 curveto
  512.            -2.5 73.7  11.5 70.3  29 75.4 curveto
  513.  
  514.            -54 6 moveto
  515.            -45 14  -27 16  -18 18 curveto
  516.            27 27  -81 54  -9 90 curveto
  517.  
  518.            -126 9 moveto
  519.            -114 27  -66 66  -54 24 curveto
  520.            -53 21  -49 15  -43 12 curveto
  521.  
  522.            [ -1     0
  523.               0     1
  524.               0     0 ] concat
  525.              135 -81 translate
  526.          } repeat
  527.  
  528.        Linewidth pntsize div 162 mul setlinewidth
  529.        stroke
  530.        grestore
  531.        138 0 translate
  532.  
  533.      } repeat
  534.  
  535.      end
  536.      } def
  537.    end
  538.  
  539.    /pntsize 1174 Frequency div def
  540.  
  541.    /FillFont newfont definefont pop
  542.    /FillFont findfont pntsize scalefont setfont
  543.  
  544.    eoclip
  545.    BackgroundGray 0 ge
  546.       { BackgroundGray 100 div 1 exch sub setgray fill }
  547.       { newpath } ifelse
  548.  
  549.    ForegroundGray 100 div 1 exch sub setgray
  550.  
  551.     Bblly pntsize Bbury
  552.         { Bbllx exch moveto
  553.         { (a) show
  554.           currentpoint
  555.           pop Bburx gt
  556.           {exit} if
  557.         } loop
  558.       } for
  559.     } bind def
  560.  
  561. %@Fill
  562. /Bricks %Ziegel,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  563.    {
  564.    /BackgroundGray exch -1 100 InRange def
  565.    /ForegroundGray exch 0 100 InRange def
  566.    /Linewidth      exch 0 100 InRange def
  567.    /Frequency      exch 2 100 InRange def
  568.  
  569.    /newfont 10 dict def
  570.    newfont begin
  571.  
  572.    /FontMatrix [1  0  0
  573.                 1  0  0] def
  574.    /FontType 3 def
  575.    /FontBBox [0 0 1 1] def
  576.    /Encoding 256 array def
  577.    0 1 255 {Encoding exch /.notdef put} for
  578.  
  579.    /BuildChar
  580.      { 1  0
  581.        -0.1 -0.1 1.1 1.1
  582.        setcachedevice
  583.        pop begin
  584.  
  585.        0 0 moveto
  586.        1 0 lineto
  587.        1 .5 lineto
  588.        0 .5 lineto
  589.        closepath
  590.        .5 .5 moveto
  591.        .5 1 lineto
  592.  
  593.        Linewidth pntsize div setlinewidth
  594.        stroke
  595.  
  596.       end
  597.      } def
  598.    end
  599.  
  600.    /pntsize 1000 Frequency div def
  601.  
  602.    /FillFont newfont definefont pop
  603.    /FillFont findfont pntsize scalefont setfont
  604.  
  605.    eoclip
  606.    BackgroundGray 0 ge
  607.       { BackgroundGray 100 div 1 exch sub setgray fill }
  608.       { newpath } ifelse
  609.  
  610.    ForegroundGray 100 div 1 exch sub setgray
  611.  
  612.    Bblly pntsize Bbury
  613.      { Bbllx exch moveto
  614.        { (a) show
  615.          currentpoint
  616.          pop Bburx gt
  617.          {exit} if
  618.        } loop
  619.      } for
  620.    } bind def
  621.  
  622. %@Fill
  623. /Bubbles %Blasen,5, Anzahl(Quadzoll)=25, Maximalgr÷▀e=300, Minimalgr÷▀e=10, Linienbreite=10, Zufallszahl=0
  624.    { srand
  625.    /LineWidth exch 0 50 InRange def
  626.    /MinSize exch 1 1000 InRange def
  627.    /MaxSize exch MinSize 1000 InRange def
  628.    /Number exch 1 250 InRange def
  629.  
  630.    eoclip
  631.    newpath
  632.    /pntsize MaxSize MinSize div cvi def
  633.    /dx Bburx Bbllx sub def
  634.    /dy Bbury Bblly sub def
  635.  
  636.    dx dy mul Number mul 1000000 div cvi
  637.    {  rand dx mod Bbllx add
  638.       rand dy mod Bblly add
  639.       rand pntsize mod 1 add pntsize exch div MinSize mul
  640.       3 copy
  641.       2 index add
  642.       exch
  643.       moveto
  644.       pop
  645.       0 360 arc
  646.       gsave
  647.       0 setgray
  648.       LineWidth setlinewidth
  649.       stroke
  650.       grestore
  651.       1 setgray
  652.       fill
  653.       } repeat
  654.  
  655.    } bind def
  656.  
  657. %@Fill
  658. /Carpet %Teppich,5, Rasterabstand(dpi)=72, Grau=100, Gamma(Feldgr÷▀e)=50, ModFaktor=3, Alpha=10
  659.    {
  660.    /Alpha exch def
  661.    /Modf exch def
  662.    /Gamma exch def
  663.    /Grey exch 0 100 InRange def
  664.    /Frequency exch 10 300 InRange def
  665.  
  666.    /Beta1 -10 def
  667.    /Beta2 -15 def
  668.  
  669.    eoclip newpath
  670.  
  671.    /wz 360 def
  672.    2 1 Gamma sqrt
  673.       { dup Gamma exch mod
  674.       0 eq { dup wz exch mod
  675.            0 eq { /wz wz 2 index div cvi def
  676.                 } if
  677.            } if
  678.       pop
  679.       } for
  680.  
  681.    /newfont 10 dict def
  682.    newfont begin
  683.  
  684.    /FontMatrix [1 wz div  0
  685.                 0          1 wz div
  686.                 0          0] def
  687.    /FontType 3 def
  688.    /FontBBox [0 0 wz wz] def
  689.    /Encoding 256 array def
  690.    0 1 255 {Encoding exch /.notdef put} for
  691.  
  692.    /BuildChar
  693.      { wz  0
  694.        -0.1 -0.1 wz 0.1 add wz 0.1 add
  695.        setcachedevice
  696.        pop begin
  697.  
  698.       0 1 wz
  699.          { 0 1 wz
  700.             { 1 index 2 copy
  701.             Gamma mul Beta2 add sin
  702.             exch Gamma mul Beta1 add sin
  703.             add Alpha mul cvi Modf mod
  704.             0 eq { moveto
  705.                   1 0 rlineto
  706.                   0 1 rlineto
  707.                   -1 0 rlineto
  708.                   closepath
  709.                   fill }
  710.                  { pop pop } ifelse
  711.             }   for
  712.          pop
  713.          } for
  714.  
  715.        end
  716.      } def
  717.    end
  718.  
  719.    /pntsize wz 1000 mul Frequency div def
  720.  
  721.    /FillFont newfont definefont pop
  722.    /FillFont findfont pntsize scalefont setfont
  723.  
  724.    Grey 100 div 1 exch sub setgray
  725.    Bblly pntsize Bbury
  726.      { Bbllx 1 index moveto
  727.        { (a) show
  728.          currentpoint
  729.          dup 3 index sub
  730.          pntsize 2 div gt { pntsize sub } if
  731.          1 index Bburx gt
  732.          {pop pop pop exit} if
  733.          moveto
  734.        } loop
  735.      } for
  736.    } bind def
  737.  
  738. %@Fill
  739. /CircleGrid %Kreisgitter,5, Rasterabstand=6, Linienbreite1=6, Linienbreite2=6, Grau1=40, Grau2=40
  740.    {
  741.    /Grey2 exch -1 100 InRange def
  742.    /Grey1 exch -1 100 InRange def
  743.    /LineWidth2 exch 0 100 InRange def
  744.    /LineWidth1 exch 0 100 InRange def
  745.    /Frequency exch 1 72 InRange def
  746.  
  747.    /newfont 10 dict def
  748.    newfont begin
  749.  
  750.    /FontMatrix [1 3 sqrt 3 mul div  0
  751.                 0                   1 3 sqrt 3 mul div
  752.                 0                   0] def
  753.    /FontType 3 def
  754.    /FontBBox [0 0 2 3 sqrt 3 mul] def
  755.  
  756.    /Encoding 256 array def
  757.    0 1 255 {Encoding exch /.notdef put} for
  758.    Encoding 97 /OneCircle put
  759.    Encoding 98 /OneCircleFilled put
  760.    Encoding 99 /TwoCircles put
  761.    Encoding 100 /TwoCirclesFilled put
  762.  
  763.    /CharProcs 5 dict def
  764.    CharProcs begin
  765.    /.notdef {} def
  766.    /OneCircle
  767.      { 1 3 sqrt 2 div add  3 sqrt 5 mul 2 div moveto
  768.        1  3 sqrt 5 mul 2 div  3 sqrt 2 div 0 360 arc
  769.  
  770.        LineWidth1 pntsize div 3 sqrt 3 mul mul setlinewidth
  771.        stroke
  772.    } def
  773.  
  774.    /OneCircleFilled
  775.      { 1 3 sqrt 2 div add  3 sqrt 5 mul 2 div moveto
  776.        1  3 sqrt 5 mul 2 div  3 sqrt 2 div 0 350 arc
  777.  
  778.        fill
  779.    } def
  780.  
  781.    /TwoCircles
  782.      { 1 3 sqrt 2 div add  3 sqrt 2 div moveto
  783.        1 3 sqrt 2 div dup 0 360 arc
  784.  
  785.        1 3 sqrt 2 div add  3 sqrt 3 mul 2 div moveto
  786.        1  3 sqrt 3 mul 2 div  3 sqrt 2 div 0 360 arc
  787.  
  788.        LineWidth2 pntsize div 3 sqrt 3 mul mul setlinewidth
  789.        stroke
  790.    } def
  791.  
  792.    /TwoCirclesFilled
  793.      { 1 3 sqrt 2 div add  3 sqrt 2 div moveto
  794.        1 3 sqrt 2 div dup 0 360 arc
  795.  
  796.        1 3 sqrt 2 div add  3 sqrt 3 mul 2 div moveto
  797.        1  3 sqrt 3 mul 2 div  3 sqrt 2 div 0 360 arc
  798.  
  799.        fill
  800.    } def
  801.  
  802.    end
  803.  
  804.    /BuildChar
  805.      {3 2 div  3 sqrt 3 mul 2 div
  806.       -0.1 -0.1 2.1  3 sqrt 3 mul 0.1 add
  807.       setcachedevice
  808.       exch begin
  809.       Encoding exch get
  810.       CharProcs exch get
  811.       end
  812.       exec
  813.      }def
  814.    end
  815.  
  816.    /pntsize 3000 Frequency div def
  817.  
  818.    /FillFont newfont definefont pop
  819.    /FillFont findfont pntsize scalefont setfont
  820.  
  821.    /Bbllx Bbllx pntsize sub def
  822.    /Bblly Bblly pntsize sub def
  823.    /Bburx Bburx pntsize add def
  824.    /Bbury Bbury pntsize add def
  825.  
  826.    eoclip newpath
  827.  
  828.    Grey1 0 ge
  829.       { Grey1 100 div 1 exch sub setgray
  830.       Bblly pntsize Bbury
  831.         { Bbllx 1 index moveto
  832.           { (b) show
  833.             currentpoint
  834.             dup 3 index sub
  835.             pntsize 2.1 div gt { pntsize sub } if
  836.             1 index Bburx gt
  837.             {pop pop pop exit} if
  838.             moveto
  839.           } loop
  840.        } for
  841.       } if
  842.  
  843.    Grey2 0 ge
  844.       { Grey2 100 div 1 exch sub setgray
  845.       Bblly pntsize Bbury
  846.         { Bbllx 1 index moveto
  847.           { (d) show
  848.             currentpoint
  849.             dup 3 index sub
  850.             pntsize 2.1 div gt { pntsize sub } if
  851.             1 index Bburx gt
  852.             {pop pop pop exit} if
  853.             moveto
  854.           } loop
  855.         } for
  856.       } if
  857.  
  858.    LineWidth1 0 gt
  859.       { 0 setgray
  860.       Bblly pntsize Bbury
  861.         { Bbllx 1 index moveto
  862.           { (a) show
  863.             currentpoint
  864.             dup 3 index sub
  865.             pntsize 2.1 div gt { pntsize sub } if
  866.             1 index Bburx gt
  867.             {pop pop pop exit} if
  868.             moveto
  869.           } loop
  870.         } for
  871.       } if
  872.  
  873.    LineWidth2 0 gt
  874.       { 0 setgray
  875.       Bblly pntsize Bbury
  876.         { Bbllx 1 index moveto
  877.           { (c) show
  878.             currentpoint
  879.             dup 3 index sub
  880.             pntsize 2.1 div gt { pntsize sub } if
  881.             1 index Bburx gt
  882.             {pop pop pop exit} if
  883.             moveto
  884.           } loop
  885.         } for
  886.       } if
  887.  
  888.    } bind def
  889.  
  890. %@Fill
  891. /Construction %Konstruktion,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  892.    {
  893.    /BackgroundGray exch -1 100 InRange def
  894.    /ForegroundGray exch 0 100 InRange def
  895.    /Linewidth      exch 0 100 InRange def
  896.    /Frequency      exch 2 100 InRange def
  897.  
  898.    /newfont 10 dict def
  899.    newfont begin
  900.  
  901.    /FontMatrix  [ .1     0
  902.                   0      .1
  903.                   0      0] def
  904.    /FontType 3 def
  905.    /FontBBox [-1 -1 9.66 11] def
  906.    /Encoding 256 array def
  907.    0 1 255 {Encoding exch /.notdef put} for
  908.  
  909.    /BuildChar
  910.      { 8.66 5
  911.        -1 -1 9.66 11
  912.        setcachedevice
  913.        pop begin
  914.  
  915.        1 0 moveto
  916.        0 0 1 -60 300 arc
  917.        3 sqrt 5 mul .5 add  5 3 sqrt 2 div sub lineto
  918.        3 sqrt 5 mul  5  1  -60 420 arc
  919.        .5  10 3 sqrt 2 div add lineto
  920.        0 10 1 60 180 arc
  921.        -1 0 lineto
  922.  
  923.        -.5 3 sqrt 2 div moveto
  924.        3 sqrt 5 mul .5 sub  5 3 sqrt 2 div add lineto
  925.        3 sqrt 5 mul .5 sub  5 3 sqrt 2 div sub moveto
  926.        -.5  10 3 sqrt 2 div sub lineto
  927.        1 10 moveto
  928.        1 0 lineto
  929.  
  930.        Linewidth pntsize div 10 mul setlinewidth
  931.        stroke
  932.       end
  933.      } def
  934.    end
  935.  
  936.    /pntsize 1126 Frequency div def
  937.    /FillFont newfont definefont pop
  938.    /FillFont findfont pntsize scalefont setfont
  939.  
  940.    /Bbllx Bbllx pntsize sub def
  941.  
  942.    eoclip
  943.    BackgroundGray 0 ge
  944.       { BackgroundGray 100 div 1 exch sub setgray fill }
  945.       { newpath } ifelse
  946.  
  947.    ForegroundGray 100 div 1 exch sub setgray
  948.  
  949.    Bblly pntsize Bbury
  950.      { Bbllx 1 index moveto
  951.        { (a) show
  952.          currentpoint
  953.          dup 3 index sub
  954.          pntsize 2.1 div gt { pntsize sub } if
  955.          1 index Bburx gt
  956.          {pop pop pop exit} if
  957.          moveto
  958.        } loop
  959.      } for
  960.    } bind def
  961.  
  962. %@Fill
  963. /Cracks %Risse,5, Anzahl=20, MaximallΣnge=125, MinimallΣnge=75, Schrittweite=14, Linienbreite=5
  964.    {
  965.    /LineWidth exch 0 100 InRange def
  966.    /StepLength exch 1 100 InRange def
  967.    /MinLength exch 1 300 InRange def
  968.    /MaxLength exch MinLength 300 InRange MinLength wDstChck def
  969.    /Number exch 1 100 InRange def
  970.  
  971.    eoclip newpath
  972.  
  973.    /dx Bburx Bbllx sub def
  974.    /dy Bbury Bblly sub def
  975.  
  976.    Number {
  977.       gsave
  978.       /theta rand 360 mod def
  979.  
  980.       rand dx mod Bbllx add
  981.       rand dy mod Bblly add
  982.       moveto
  983.  
  984.       StepLength dup scale
  985.       LineWidth StepLength div setlinewidth
  986.  
  987.       MinLength
  988.       MaxLength MinLength sub
  989.       rand 1 index mod 2 index add
  990.          {
  991.          currentpoint translate
  992.          rand 120 mod 60 sub theta add dup rotate
  993.          0 0 moveto
  994.          1 0 lineto
  995.          stroke
  996.          1 0 moveto
  997.          neg rotate
  998.          } repeat
  999.       grestore
  1000.       pop pop
  1001.       } repeat
  1002.    } bind def
  1003.  
  1004. %@Fill
  1005. /Craters %Krater,5, Anzahl=15, Maximalgr÷▀e=300, Minimalgr÷▀e=75, Hintergrundgrau=0, Zufallszahl=0
  1006.    { srand
  1007.    /BackgroundGrey exch 0 100 InRange def
  1008.    /MinSize exch 1 500 InRange def
  1009.    /MaxSize exch MinSize 500 InRange MinSize wDstChck def
  1010.    /Number exch 1 50 InRange def
  1011.  
  1012.    eoclip
  1013.    BackgroundGrey 100 div 1 exch sub setgray
  1014.    fill
  1015.  
  1016.    /pntsize 333 def
  1017.    /dx Bburx Bbllx sub def
  1018.    /dy Bbury Bblly sub def
  1019.    /DifSize MaxSize MinSize sub cvi def
  1020.  
  1021.    Bbllx Bblly translate
  1022.  
  1023.    matrix currentmatrix
  1024.    dx dy mul 1000000 div Number mul cvi {
  1025.       dup
  1026.       rand dx mod  rand dy mod  translate
  1027.       /size rand DifSize mod MinSize add def
  1028.       0 0 size .7 mul  0 360 arc
  1029.       BackgroundGrey 100 div 1 exch sub setgray fill
  1030.  
  1031.       0
  1032.          { rand 18 mod add 10 add
  1033.          dup 360 gt { pop exit } if
  1034.          dup rotate
  1035.          size 5 div  0 moveto
  1036.          rand 300 mod 200 add 500 div size mul  0 lineto
  1037.          dup neg rotate
  1038.          } loop
  1039.  
  1040.       0 setgray
  1041.       1 setlinewidth
  1042.       stroke
  1043.       setmatrix
  1044.       } repeat
  1045.    pop
  1046.    } bind def
  1047.  
  1048. %@Fill
  1049. /Crosshatching %Kreuzschraffierung,5, Maximalabstand=75, Minimalabstand=0, Linienbreite=5, Winkel=45, Zufallszahl=0
  1050.    { srand
  1051.    /Angle exch -180 180 InRange def
  1052.    /LineWidth exch 0 100 InRange def
  1053.    /MinDist exch 0 500 InRange def
  1054.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  1055.  
  1056.    eoclip
  1057.    newpath
  1058.  
  1059.    /pntsize MaxDist MinDist sub def
  1060.    /dx2 Bburx Bbllx sub 2 div def
  1061.    /dy2 Bbury Bblly sub 2 div def
  1062.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  1063.  
  1064.    Bbllx Bblly translate
  1065.    dx2 dy2 translate
  1066.    Angle rotate
  1067.    LineWidth setlinewidth
  1068.  
  1069.    /wd hyp2 neg def
  1070.       { /wd rand pntsize mod MinDist add wd add def
  1071.       wd hyp2 neg moveto
  1072.       wd hyp2 lineto
  1073.       stroke
  1074.       wd hyp2 gt {exit} if
  1075.       } loop
  1076.  
  1077.    Angle -2 mul rotate
  1078.    /wd hyp2 neg def
  1079.       { /wd rand pntsize mod MinDist add wd add def
  1080.       wd hyp2 neg moveto
  1081.       wd hyp2 lineto
  1082.       stroke
  1083.       wd hyp2 gt {exit} if
  1084.       } loop
  1085.  
  1086.    } bind def
  1087.  
  1088. %@Fill
  1089. /CrystalLattice %Kristallgitter,4, Rasterabstand=4, Hintergrundgrau=100, Vordergrundgrau=0, Skalierung(%)=75
  1090.    {
  1091.    /Scaling exch 10 100 InRange def
  1092.    /FrontGrey exch 0 100 InRange def
  1093.    /BackGrey exch -100 100 InRange def
  1094.    /Frequency exch 1 50 InRange def
  1095.  
  1096.    /newfont 10 dict def
  1097.    newfont begin
  1098.  
  1099.    /FontMatrix [1                   0
  1100.                 0                   1
  1101.                 0                   0] def
  1102.    /FontType 3 def
  1103.    /FontBBox [0 0 1 1] def
  1104.    /Encoding 256 array def
  1105.    0 1 255 {Encoding exch /.notdef put} for
  1106.  
  1107.    /BuildChar
  1108.      { 1 0
  1109.        -0.1 -0.1 1.1 1.1
  1110.        setcachedevice
  1111.        pop begin
  1112.  
  1113.        gsave
  1114.        0 0 moveto
  1115.        3 { 1 0 lineto
  1116.          currentpoint translate
  1117.          90 rotate
  1118.          } repeat
  1119.        closepath
  1120.        .05 setlinewidth
  1121.        stroke
  1122.        grestore
  1123.  
  1124.        gsave
  1125.        4 { .2 0 moveto
  1126.          0 0 .2 0 360 arc
  1127.          fill
  1128.          1 0 translate
  1129.          90 rotate
  1130.          } repeat
  1131.        grestore
  1132.  
  1133.        end
  1134.      } def
  1135.    end
  1136.  
  1137.    /pntsize 1000 Frequency div cvi def
  1138.  
  1139.    /FillFont newfont definefont pop
  1140.    /FillFont findfont pntsize scalefont setfont
  1141.  
  1142.    /dx Bburx Bbllx sub def
  1143.    /dy Bbury Bblly sub def
  1144.  
  1145.    eoclip newpath
  1146.  
  1147.    currentscreen
  1148.    3 -1 roll
  1149.    pop 120
  1150.    3 1 roll
  1151.    setscreen
  1152.  
  1153.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1154.  
  1155.    /dx dx 100 mul Scaling div def
  1156.    /dy dy 100 mul Scaling div def
  1157.  
  1158.    Scaling 100 div dup scale
  1159.    100 Scaling div log 10 div 10 exch exp
  1160.    BackGrey 0 100 InRange 100 div  FrontGrey BackGrey sub 1000 div  FrontGrey .1 sub 100 div
  1161.       { 1 exch sub setgray
  1162.       dup dup scale
  1163.       dy 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1164.         pntsize   dy pntsize add 2 div
  1165.         { dx 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1166.           1 index moveto
  1167.           { (a) show
  1168.             currentpoint
  1169.             dup 3 index sub
  1170.             pntsize 2.1 div gt { pntsize sub } if
  1171.             1 index dx pntsize add 2 div gt
  1172.             { pop pop pop exit } if
  1173.             moveto
  1174.           } loop
  1175.         } for
  1176.       } for
  1177.       pop
  1178.    } bind def
  1179.  
  1180. %@Fill
  1181. /Denim %Jeans,5, Rasterabstand=72, Maximalgrau=100, Minimalgrau=0, Halbtonraster=60, Zufallszahl=0
  1182.    { srand
  1183.    /Screen exch 30 300 InRange def
  1184.    /MinGrey exch 0 100 InRange def
  1185.    /MaxGrey exch MinGrey 100 InRange def
  1186.    /Frequency exch 1 300 InRange def
  1187.  
  1188.    eoclip newpath
  1189.  
  1190.    currentscreen
  1191.    3 -1 roll
  1192.    pop Screen
  1193.    3 1 roll
  1194.    setscreen
  1195.  
  1196.    /dx Bburx Bbllx sub def
  1197.    /dy Bbury Bblly sub def
  1198.    /wf Frequency 1000 div def
  1199.    /dgrey MaxGrey MinGrey sub 100 div def
  1200.  
  1201.    Bbllx Bblly translate
  1202.    /str 512 string def
  1203.  
  1204.    dx wf mul cvi 1 add  dy wf mul cvi 1 add  8  [wf 0 0 wf 0 0]
  1205.       { dgrey MinGrey 2.55 mul
  1206.       0 1 511
  1207.          { str exch
  1208.          rand -11 bitshift 255 and 4 index mul 3 index add cvi
  1209.          put
  1210.          } for
  1211.       pop pop
  1212.       str
  1213.      }image
  1214.  
  1215.    } bind def
  1216.  
  1217. %@Fill
  1218. /DNA %DNS,5, Rasterabstand=4, Linienbreite=1, Vordergrundgrau=100, Hintergrundgrau=0, Abstand(%)=100
  1219.    {
  1220.    /Spacing        exch 1 300 InRange def
  1221.    /BackgroundGray exch -1 100 InRange def
  1222.    /ForegroundGray exch 0 100 InRange def
  1223.    /Linewidth      exch 0 100 InRange def
  1224.    /Frequency      exch 1 100 InRange def
  1225.  
  1226.    /newfont 10 dict def
  1227.    newfont begin
  1228.  
  1229.    /FontMatrix [1 360 div           0
  1230.                 0                   1 360 div
  1231.                 0                   0] def
  1232.    /FontType 3 def
  1233.    /FontBBox [-20 0 20 360] def
  1234.    /Encoding 256 array def
  1235.    0 1 255 {Encoding exch /.notdef put} for
  1236.  
  1237.    /BuildChar
  1238.      { Spacing 110
  1239.        -20  0 20 360
  1240.        setcachedevice
  1241.        pop begin
  1242.  
  1243.        Linewidth pntsize mul 110 div setlinewidth
  1244.        0 0 moveto
  1245.        0 1 360
  1246.           { dup sin 20 mul exch lineto
  1247.           } for
  1248.        stroke
  1249.        20 0 moveto
  1250.        0 1 360
  1251.           { dup cos 20 mul exch lineto
  1252.           } for
  1253.        stroke
  1254.        0 20 360
  1255.           { dup dup sin 20 mul exch moveto
  1256.           dup cos 20 mul exch lineto
  1257.           } for
  1258.        stroke
  1259.  
  1260.        end
  1261.      } def
  1262.    end
  1263.  
  1264.    /pntsize 2000 Frequency div def
  1265.  
  1266.    /FillFont newfont definefont pop
  1267.    /FillFont findfont pntsize scalefont setfont
  1268.  
  1269.    eoclip
  1270.    BackgroundGray 0 ge
  1271.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1272.       { newpath } ifelse
  1273.  
  1274.    ForegroundGray 100 div 1 exch sub setgray
  1275.  
  1276.    Bblly pntsize sub pntsize Bbury pntsize add
  1277.      { Bbllx 1 index moveto
  1278.        { (a) show
  1279.          currentpoint
  1280.          dup 3 index sub
  1281.          pntsize 2.1 div gt { pntsize sub } if
  1282.          1 index Bburx gt
  1283.          {pop pop pop exit} if
  1284.          moveto
  1285.        } loop
  1286.      } for
  1287.    } bind def
  1288.  
  1289. %@Fill
  1290. /Fishscale %Fischschuppen,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  1291.    {
  1292.    /BackgroundGray exch -1 100 InRange def
  1293.    /ForegroundGray exch 0 100 InRange def
  1294.    /Linewidth      exch 0 100 InRange def
  1295.    /Frequency      exch 2 100 InRange def
  1296.  
  1297.    /newfont 10 dict def
  1298.    newfont begin
  1299.  
  1300.    /FontMatrix [1  0  0
  1301.                 1  0  0] def
  1302.    /FontType 3 def
  1303.    /FontBBox [0 0 1 1] def
  1304.    /Encoding 256 array def
  1305.    0 1 255 {Encoding exch /.notdef put} for
  1306.  
  1307.    /BuildChar
  1308.      { 1  0
  1309.        0 0 1 1
  1310.        setcachedevice
  1311.        pop begin
  1312.  
  1313.        0.5 0.5 0.5 360 180 arcn
  1314.        0 1 0.5 270 360 arc
  1315.        1 1 0.5 180 270 arc
  1316.  
  1317.        Linewidth pntsize div setlinewidth
  1318.        stroke
  1319.  
  1320.       end
  1321.      } def
  1322.    end
  1323.  
  1324.    /pntsize 1000 Frequency div def
  1325.    /FillFont newfont definefont pop
  1326.    /FillFont findfont pntsize scalefont setfont
  1327.  
  1328.    eoclip
  1329.    BackgroundGray 0 ge
  1330.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1331.       { newpath } ifelse
  1332.  
  1333.    ForegroundGray 100 div 1 exch sub setgray
  1334.  
  1335.     Bblly pntsize Bbury
  1336.       { Bbllx exch moveto
  1337.         { (a) show
  1338.           currentpoint
  1339.           pop Bburx gt
  1340.           {exit} if
  1341.         } loop
  1342.       } for
  1343.     } bind def
  1344.  
  1345.  
  1346. %@Fill
  1347. /Grass %Gras,5, Anzahl=100, Maximalgr÷▀e=35, Minimalgr÷▀e=7, Grau=0, Zufallszahl=0
  1348.     { srand
  1349.     /Grey exch -1 100 InRange def
  1350.     /MinSize exch 1 100 InRange def
  1351.     /MaxSize exch MinSize 100 InRange MinSize wDstChck def
  1352.     /Number exch 1 500 InRange def
  1353.  
  1354.     eoclip
  1355.     Grey 0 ge
  1356.        { Grey 100 div 1 exch sub setgray fill }
  1357.        { newpath } ifelse
  1358.  
  1359.     /Bbllx Bbllx MaxSize sub def
  1360.     /Bblly Bblly MaxSize sub def
  1361.  
  1362.     /dx Bburx Bbllx sub def
  1363.     /dy Bbury Bblly sub def
  1364.     /dSize MaxSize MinSize sub def
  1365.  
  1366.     dx dy mul 1000000 div Number mul cvi
  1367.        {
  1368.  
  1369.        matrix currentmatrix
  1370.  
  1371.        rand dx mod Bbllx add
  1372.        rand dy mod Bblly add
  1373.        translate
  1374.  
  1375.        rand dSize mod MinSize add
  1376.        dup scale
  1377.  
  1378.        -0.5 0 moveto
  1379.        rand 14 mod 7 sub
  1380.        -0.5 3  2 index 3 div 0.3 sub 10  4 index 10 curveto
  1381.        3 div 0.3 add 10 0.5 3 0.5 0 curveto
  1382.        gsave
  1383.        1 setgray
  1384.        fill
  1385.        grestore
  1386.        0.1 setlinewidth
  1387.        0 setgray
  1388.        stroke
  1389.  
  1390.        setmatrix
  1391.  
  1392.        } repeat
  1393.  
  1394.      } bind def
  1395.  
  1396. %@Fill
  1397. /Hatching %Schraffierung,5, Maximalabstand=75, Minimalabstand=0, Linienbreite=5, Winkel=45, Zufallszahl=0
  1398.    { srand
  1399.    /Angle exch -180 180 InRange def
  1400.    /LineWidth exch 0 100 InRange def
  1401.    /MinDist exch 0 500 InRange def
  1402.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  1403.  
  1404.    eoclip
  1405.    newpath
  1406.  
  1407.    /pntsize MaxDist MinDist sub def
  1408.    /dx2 Bburx Bbllx sub 2 div def
  1409.    /dy2 Bbury Bblly sub 2 div def
  1410.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  1411.  
  1412.    Bbllx Bblly translate
  1413.    dx2 dy2 translate
  1414.    Angle rotate
  1415.    LineWidth setlinewidth
  1416.  
  1417.    /wd hyp2 neg def
  1418.  
  1419.       { /wd rand pntsize mod MinDist add wd add def
  1420.       wd hyp2 neg moveto
  1421.       wd hyp2 lineto
  1422.       stroke
  1423.       wd hyp2 gt {exit} if
  1424.       } loop
  1425.  
  1426.    } bind def
  1427.  
  1428. %@Fill
  1429. /Hexagons %Sechsecke,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  1430.    {
  1431.    /BackgroundGray exch -1 100 InRange def
  1432.    /ForegroundGray exch 0 100 InRange def
  1433.    /LineWidth      exch 0 100 InRange def
  1434.    /Frequency      exch 2 100 InRange def
  1435.  
  1436.    /newfont 10 dict def
  1437.    newfont begin
  1438.  
  1439.    /FontMatrix [1 3 sqrt div        0
  1440.                 0                   1 3 sqrt div
  1441.                 0                   0] def
  1442.    /FontType 3 def
  1443.    /FontBBox [0 0 2 3 sqrt] def
  1444.    /Encoding 256 array def
  1445.    0 1 255 {Encoding exch /.notdef put} for
  1446.  
  1447.    /BuildChar
  1448.      { 3 2 div  3 sqrt 2 div
  1449.        -0.1 -0.1 2.1 3 sqrt 0.1 add
  1450.        setcachedevice
  1451.        pop begin
  1452.  
  1453.        1 2 div  0 moveto
  1454.        3 2 div  0 lineto
  1455.        2  3 sqrt 2 div lineto
  1456.        3 2 div  3 sqrt lineto
  1457.        1 2 div  3 sqrt lineto
  1458.        0  3 sqrt 2 div lineto
  1459.        closepath
  1460.  
  1461.        LineWidth pntsize div 3 sqrt mul setlinewidth
  1462.        stroke
  1463.  
  1464.       end
  1465.      } def
  1466.    end
  1467.  
  1468.    /pntsize 1155 Frequency div def
  1469.    /FillFont newfont definefont pop
  1470.    /FillFont findfont pntsize scalefont setfont
  1471.  
  1472.    eoclip
  1473.    BackgroundGray 0 ge
  1474.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1475.       { newpath } ifelse
  1476.  
  1477.    ForegroundGray 100 div 1 exch sub setgray
  1478.  
  1479.    Bblly pntsize Bbury
  1480.      { Bbllx 1 index moveto
  1481.        { (a) show
  1482.          currentpoint
  1483.          dup 3 index sub
  1484.          pntsize 2 div gt { pntsize sub } if
  1485.          1 index Bburx gt
  1486.          {pop pop pop exit} if
  1487.          moveto
  1488.        } loop
  1489.      } for
  1490.    } bind def
  1491.  
  1492. %@Fill
  1493. /Honeycomb %Waben,5, Rasterabstand=4, Hintergrundgrau=100, Vordergrundgrau=0, Skalierung(%)=75, Linienbreite=5
  1494.    {
  1495.    /LineWidth exch 0 100 InRange def
  1496.    /Scaling exch 10 100 InRange def
  1497.    /FrontGrey exch 0 100 InRange def
  1498.    /BackGrey exch -100 100 InRange def
  1499.    /Frequency exch 1 50 InRange def
  1500.  
  1501.    /newfont 10 dict def
  1502.    newfont begin
  1503.  
  1504.    /FontMatrix [1 3 sqrt div        0
  1505.                 0                   1 3 sqrt div
  1506.                 0                   0] def
  1507.    /FontType 3 def
  1508.    /FontBBox [0 0 2 3 sqrt] def
  1509.    /Encoding 256 array def
  1510.    0 1 255 {Encoding exch /.notdef put} for
  1511.  
  1512.    /BuildChar
  1513.      { 3 2 div  3 sqrt 2 div
  1514.        -0.1 -0.1 2.1 3 sqrt 0.1 add
  1515.        setcachedevice
  1516.        pop begin
  1517.  
  1518.        1 2 div  0 moveto
  1519.        3 2 div  0 lineto
  1520.        2  3 sqrt 2 div lineto
  1521.        3 2 div  3 sqrt lineto
  1522.        1 2 div  3 sqrt lineto
  1523.        0  3 sqrt 2 div lineto
  1524.        closepath
  1525.  
  1526.        LineWidth pntsize div 3 sqrt mul setlinewidth
  1527.        stroke
  1528.  
  1529.       end
  1530.      } def
  1531.    end
  1532.  
  1533.    /pntsize 1000 Frequency div cvi def
  1534.  
  1535.    /FillFont newfont definefont pop
  1536.    /FillFont findfont pntsize scalefont setfont
  1537.  
  1538.    /dx Bburx Bbllx sub def
  1539.    /dy Bbury Bblly sub def
  1540.  
  1541.    eoclip newpath
  1542.  
  1543.    currentscreen
  1544.    3 -1 roll
  1545.    pop 120
  1546.    3 1 roll
  1547.    setscreen
  1548.  
  1549.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1550.  
  1551.    /dx dx 100 mul Scaling div def
  1552.    /dy dy 100 mul Scaling div def
  1553.  
  1554.    Scaling 100 div dup scale
  1555.    100 Scaling div log 10 div 10 exch exp
  1556.    BackGrey 0 100 InRange 100 div  FrontGrey BackGrey sub 1000 div  FrontGrey .1 sub 100 div
  1557.       { 1 exch sub setgray
  1558.       dup dup scale
  1559.       dy 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1560.         pntsize   dy pntsize add 2 div
  1561.         { dx 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1562.           1 index moveto
  1563.           { (a) show
  1564.             currentpoint
  1565.             dup 3 index sub
  1566.             pntsize 2.1 div gt { pntsize sub } if
  1567.             1 index dx pntsize add 2 div gt
  1568.             { pop pop pop exit } if
  1569.             moveto
  1570.           } loop
  1571.         } for
  1572.       } for
  1573.    pop
  1574.    } bind def
  1575.  
  1576. %@Fill
  1577. /Impact %Aufprall,5, Linienbreite=5, Schrittweite=15, Maximalwinkel=40, Minimalwinkel=10, Zufallszahl=0
  1578.    { srand
  1579.    /MinAng exch 2 90 InRange def
  1580.    /MaxAng exch MinAng 90 InRange MinAng wDstChck def
  1581.    /Step exch 10 500 InRange def
  1582.    /Linewidth exch 0 100 InRange def
  1583.  
  1584.    eoclip
  1585.    newpath
  1586.  
  1587.    /dx Bburx Bbllx sub def
  1588.    /dy Bbury Bblly sub def
  1589.    /DifAng MaxAng MinAng sub def
  1590.  
  1591.    Bbllx Bblly translate
  1592.  
  1593.    dx 2 div  dy 2 div  translate
  1594.    Linewidth Step div setlinewidth
  1595.    Step Step scale
  1596.  
  1597.    /theta 0 def
  1598.       { matrix currentmatrix
  1599.       /theta theta rand DifAng mod add MinAng add def
  1600.       theta 360 gt {pop exit} if
  1601.       theta rotate
  1602.       0 0 moveto
  1603.       rand 150 mod 50 add
  1604.          {
  1605.          currentpoint translate
  1606.          rand 120 mod 60 sub theta add dup rotate
  1607.          1 0 lineto
  1608.          neg rotate
  1609.          } repeat
  1610.       stroke
  1611.       setmatrix
  1612.       } loop
  1613.    } bind def
  1614.  
  1615.  
  1616. %@Fill
  1617. /Landscape %Landschaft,4, Tiefe=6, Maximalgrau=100, Minimalgrau=0, Zufallszahl=0
  1618.    {
  1619.    srand
  1620.    /MinGrey exch 0 100 InRange def
  1621.    /MaxGrey exch MinGrey 100 InRange def
  1622.    /maxdepth exch 1 7 InRange def
  1623.  
  1624.    /dGrey MaxGrey MinGrey sub 200 div def
  1625.    /AvGrey MaxGrey MinGrey add 200 div def
  1626.  
  1627.    eoclip newpath
  1628.    /depth 0 def
  1629.    /ardepth 2 maxdepth 1 sub exp cvi def
  1630.    /height 1.8 8 maxdepth sub exp def
  1631.  
  1632.    /horz 0 def
  1633.    /vert 0 def
  1634.    /Array ardepth 1 add array def
  1635.    0 1 ardepth
  1636.       { Array exch ardepth 1 add array put
  1637.       } for
  1638.    0 1 ardepth
  1639.       { Array exch get
  1640.       0 1 ardepth
  1641.          { 2 copy 0 put
  1642.          pop
  1643.          } for
  1644.       pop
  1645.       } for
  1646.  
  1647.    /Square
  1648.       {
  1649.       /depth depth 1 add def
  1650.       depth maxdepth eq
  1651.       {
  1652.       Array horz get vert get dup 1 add dup moveto                    %ur
  1653.       Array horz 1 add get vert get dup 1 add lineto             %ul
  1654.       Array horz 1 add get vert 1 add get dup dup lineto         %ll
  1655.       Array horz get vert 1 add get dup 1 add exch lineto             %lr
  1656.       closepath
  1657.       sub
  1658.       dGrey mul AvGrey add
  1659.       setgray
  1660.       fill }
  1661.  
  1662.       {
  1663.       /wd 2 maxdepth depth sub 1 sub exp cvi def
  1664.  
  1665.       Array horz wd 2 mul add get vert wd 2 mul add get
  1666.       Array horz get vert wd 2 mul add get
  1667.       Array horz wd 2 mul add get vert get
  1668.       Array horz get vert get
  1669.  
  1670.       4 copy add add add 4 div
  1671.             rand 50 mod 25 sub height div 2 depth exp div add
  1672.       Array horz wd add get
  1673.             vert wd add 2 index put  pop
  1674.  
  1675.       3 index 2 index add 2 div
  1676.             rand 50 mod 25 sub height div 2 depth exp div add
  1677.       Array horz wd 2 mul add get
  1678.             vert wd add 2 index put   pop
  1679.  
  1680.       3 index 3 index add 2 div
  1681.             rand 50 mod 25 sub height div 2 depth exp div add
  1682.       Array horz wd add get
  1683.             vert wd 2 mul add 2 index put   pop
  1684.  
  1685.       horz 0 eq
  1686.       { 2 index 1 index add 2 div
  1687.             rand 50 mod 25 sub height div 2 depth exp div add
  1688.       Array horz get
  1689.             vert wd add 2 index put    pop
  1690.       } if
  1691.  
  1692.       vert 0 eq
  1693.       { 1 index 1 index add 2 div
  1694.             rand 50 mod 25 sub height div 2 depth exp div add
  1695.       Array horz wd add get
  1696.             vert 2 index put          pop
  1697.       } if
  1698.  
  1699.       pop pop pop pop
  1700.       .5 .5 translate
  1701.       .5 .5 scale
  1702.       Square
  1703.       2 2 scale
  1704.  
  1705.       /horz horz 2 maxdepth depth sub 1 sub exp cvi add def
  1706.       -.5 0 translate
  1707.       .5 .5 scale
  1708.       Square
  1709.       2 2 scale
  1710.       /horz horz 2 maxdepth depth sub 1 sub exp cvi sub def
  1711.  
  1712.       /vert vert 2 maxdepth depth sub 1 sub exp cvi add def
  1713.       .5 -.5 translate
  1714.       .5 .5 scale
  1715.       Square
  1716.       2 2 scale
  1717.       /vert vert 2 maxdepth depth sub 1 sub exp cvi sub def
  1718.  
  1719.       /horz horz 2 maxdepth depth sub 1 sub exp cvi add def
  1720.       /vert vert 2 maxdepth depth sub 1 sub exp cvi add def
  1721.       -.5 0 translate
  1722.       .5 .5 scale
  1723.       Square
  1724.       2 2 scale
  1725.       /horz horz 2 maxdepth depth sub 1 sub exp cvi sub def
  1726.       /vert vert 2 maxdepth depth sub 1 sub exp cvi sub def
  1727.  
  1728.       } ifelse
  1729.       /depth depth 1 sub def
  1730.  
  1731.    } def
  1732.  
  1733.    /dx Bburx Bbllx sub def
  1734.    /dy Bbury Bblly sub def
  1735.    /hyp dx dup mul dy dup mul add sqrt def
  1736.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1737.    hyp 1.2 mul dup scale
  1738.    45 rotate
  1739.    -.5 -.5 translate
  1740.  
  1741.    currentscreen
  1742.    3 -1 roll
  1743.    pop 120
  1744.    3 1 roll
  1745.    setscreen
  1746.  
  1747.    0 0 0 0
  1748.    Square
  1749.    4{ pop }repeat
  1750.  
  1751.    } bind def
  1752.  
  1753. %@Fill
  1754. /Leaves %BlΣtter,5, Anzahl(Quadzoll)=50, Maximalgrau=100, Minimalgrau=0, Maximalgr÷▀e=100, Minimalgr÷▀e=10
  1755.    {
  1756.    /MinSize exch 1 200 InRange def
  1757.    /MaxSize exch MinSize 200 InRange MinSize wDstChck def
  1758.    /MinGrey exch 0 100 InRange def
  1759.    /MaxGrey exch MinGrey 100 InRange def
  1760.    /Number exch 1 250 InRange def
  1761.  
  1762.    eoclip newpath
  1763.    currentscreen
  1764.    3 -1 roll
  1765.    pop 90
  1766.    3 1 roll
  1767.    setscreen
  1768.  
  1769.    /dx Bburx Bbllx sub def
  1770.    /dy Bbury Bblly sub def
  1771.  
  1772.    dx dy mul Number mul 1000000 div cvi
  1773.       {
  1774.       matrix currentmatrix
  1775.  
  1776.       rand dx mod Bbllx add
  1777.       rand dy mod Bblly add
  1778.       translate
  1779.  
  1780.       rand 360 mod
  1781.       rotate
  1782.  
  1783.       MaxSize MinSize eq
  1784.         { Maxsize 10.8 div }
  1785.         { rand MaxSize MinSize sub mod MinSize add 10.8 div } ifelse
  1786.       dup scale
  1787.  
  1788.       17 0 moveto
  1789.       65 -18 106 -13 125 0 curveto
  1790.       106 13  65  18  17 0 curveto
  1791.       gsave
  1792.       MaxGrey MinGrey eq
  1793.         { MaxGrey 100 div }
  1794.         { rand MaxGrey MinGrey sub mod MinGrey add 100 div } ifelse
  1795.       setgray
  1796.       fill
  1797.       grestore
  1798.       0.3 setlinewidth
  1799.       0 setgray
  1800.       stroke
  1801.  
  1802.       setmatrix
  1803.  
  1804.       } repeat
  1805.  
  1806.    } bind def
  1807.  
  1808. %@Fill
  1809. /Mesh %Maschen,5, Rasterabstand=6, Quadratgr÷▀e(%)=80, SchattenUntenLinks=3, SchattenObenRechts=15, Vordergrundgrau=100
  1810.    {
  1811.    /ForegroundGray exch 0 100 InRange def
  1812.    /Shadow2 exch 0 100 InRange def
  1813.    /Shadow1 exch 0 100 InRange def
  1814.    /SquareSize exch 1 100 InRange def
  1815.    /Frequency exch 1 25 InRange def
  1816.  
  1817.    /newfont 10 dict def
  1818.    newfont begin
  1819.  
  1820.    /FontMatrix [1         0
  1821.                 0         1
  1822.                 0         0] def
  1823.    /FontType 3 def
  1824.    /FontBBox [0 0 1 1] def
  1825.    /Encoding 256 array def
  1826.    0 1 255 {Encoding exch /.notdef put} for
  1827.  
  1828.    /BuildChar
  1829.      { 1  0
  1830.        -0.1 -0.1 1.1 1.1
  1831.        setcachedevice
  1832.        pop begin
  1833.  
  1834.        0 setlinejoin
  1835.  
  1836.        SquareSize 100 div dup scale
  1837.        0 0 moveto
  1838.        1 0 lineto
  1839.        1 1 lineto
  1840.        0 1 lineto
  1841.        closepath
  1842.  
  1843.        Shadow1 100 div
  1844.        1 Shadow2 100 div sub
  1845.        1 index dup moveto
  1846.        1 index 1 index lineto
  1847.        dup dup lineto
  1848.        dup 2 index lineto
  1849.        closepath
  1850.        2{pop}repeat
  1851.        fill
  1852.  
  1853.        end
  1854.      } def
  1855.    end
  1856.  
  1857.    /pntsize 1000 Frequency div def
  1858.  
  1859.    /FillFont newfont definefont pop
  1860.    /FillFont findfont pntsize scalefont setfont
  1861.  
  1862.    eoclip newpath
  1863.  
  1864.    ForegroundGray 100 div 1 exch sub setgray
  1865.  
  1866.    Bblly pntsize Bbury
  1867.      { Bbllx exch moveto
  1868.        { (a) show
  1869.          currentpoint
  1870.          pop Bburx gt
  1871.          {exit} if
  1872.        } loop
  1873.      } for
  1874.    } bind def
  1875.  
  1876. %@Fill
  1877. /Motifs %Motive,4, Motiv=1, Rasterabstand=2, Abstand(%)=100, Vordergrundgrau=100
  1878.    {
  1879.    /ForegroundGray exch 0 100 InRange def
  1880.    /Spacing exch 1 300 InRange def
  1881.    /Frequency exch 1 25 InRange def
  1882.    /Character exch 1 8 InRange def
  1883.  
  1884.    /str 1 string def
  1885.    str 0 Character put
  1886.  
  1887.    /newfont 10 dict def
  1888.    newfont begin
  1889.  
  1890.    /FontMatrix [.001                0
  1891.                 0                   .001
  1892.                 0                   0] def
  1893.    /FontType 3 def
  1894.    /FontBBox [0 0 500 1000] def
  1895.  
  1896.    /Encoding 256 array def
  1897.    0 1 255 {Encoding exch /.notdef put} for
  1898.    Encoding  1 /CanadianFlag put
  1899.    Encoding  2 /Corels put
  1900.    Encoding  3 /Globe put
  1901.    Encoding  4 /CubeSolid put
  1902.    Encoding  5 /CubeFrame put
  1903.    Encoding  6 /Balls put
  1904.    Encoding  7 /Checkerboard put
  1905.    Encoding  8 /CCCTlogo put
  1906.  
  1907.    /CharProcs 9 dict def
  1908.    CharProcs begin
  1909.    /.notdef {} def
  1910.    /CanadianFlag
  1911.      { 9.6 9.6 scale
  1912.        9 -30 translate
  1913.  
  1914.        -9 60 moveto
  1915.        -9 30 lineto
  1916.        -1 30 lineto
  1917.        -1 60 lineto
  1918.        closepath
  1919.  
  1920.        43 60 moveto
  1921.        43 30 lineto
  1922.        35 30 lineto
  1923.        35 60 lineto
  1924.        closepath
  1925.  
  1926.        17 58 moveto
  1927.        15 54 lineto
  1928.        12 55 lineto
  1929.        14 47 lineto
  1930.        10 51 lineto
  1931.        10 49 lineto
  1932.        05 50 lineto
  1933.        07 45 lineto
  1934.        05 45 lineto
  1935.        12 39 lineto
  1936.        10 37 lineto
  1937.        16.5 38 lineto
  1938.        16.5 32 lineto
  1939.        17.5 32 lineto
  1940.        17.5 38 lineto
  1941.        24 37 lineto
  1942.        22 39 lineto
  1943.        29 45 lineto
  1944.        27 45 lineto
  1945.        29 50 lineto
  1946.        24 49 lineto
  1947.        24 51 lineto
  1948.        20 47 lineto
  1949.        22 55 lineto
  1950.        19 54 lineto
  1951.        closepath
  1952.  
  1953. %       0.3 setlinewidth
  1954. %       stroke
  1955.        fill
  1956.        } def
  1957.    /Corels
  1958.        { 250 250 translate
  1959.        113 113 scale
  1960.  
  1961.        7 { 45 rotate
  1962.          gsave
  1963.          1 2 sqrt div 1 add 0 translate
  1964.          .5 .5 moveto
  1965.          -.5 .5 lineto
  1966.          -.5 -.5 lineto
  1967.          .5 -.5 lineto
  1968.          closepath
  1969.          fill
  1970.          grestore
  1971.          } repeat
  1972.        } def
  1973.    /Globe
  1974.        {
  1975.        250 250 translate
  1976.        250 250 scale
  1977.        0 1 4
  1978.           { matrix currentmatrix exch
  1979.           22.5 mul sin
  1980.           1 scale
  1981.           0 0 1 90 450 arc
  1982.           setmatrix
  1983.           } for
  1984.  
  1985.        -3 1 3
  1986.           { 22.5 mul sin
  1987.           dup
  1988.           dup mul 1 sub neg sqrt
  1989.           dup neg 2 index moveto
  1990.           exch lineto
  1991.           } for
  1992.  
  1993.        .01 setlinewidth
  1994.        stroke
  1995.        } def
  1996.    /CubeSolid
  1997.        {
  1998.        250 250 translate
  1999.        145 145 scale
  2000.        /Rotm
  2001.           { 30 matrix rotate transform
  2002.           exch 3 1 roll
  2003.           30 matrix rotate transform
  2004.           pop exch
  2005.           moveto
  2006.           } bind def
  2007.        /Rotl
  2008.           { 30 matrix rotate transform
  2009.           exch 3 1 roll
  2010.           30 matrix rotate transform
  2011.           pop exch
  2012.           lineto
  2013.           } bind def
  2014.  
  2015.         1  1  1 Rotm
  2016.        -1  1  1 Rotl
  2017.        -1 -1  1 Rotl
  2018.         1 -1  1 Rotl
  2019.        closepath
  2020.  
  2021.        -1  1  1 Rotm
  2022.        -1  1 -1 Rotl
  2023.         1  1 -1 Rotl
  2024.         1 -1 -1 Rotl
  2025.         1 -1  1 Rotl
  2026.  
  2027.         1  1  1 Rotm
  2028.         1  1 -1 Rotl
  2029.  
  2030.        .01 setlinewidth
  2031.        stroke
  2032.        } def
  2033.    /CubeFrame
  2034.        {
  2035.        250 250 translate
  2036.        145 145 scale
  2037.        /Rotm
  2038.           { 30 matrix rotate transform
  2039.           exch 3 1 roll
  2040.           30 matrix rotate transform
  2041.           pop exch
  2042.           moveto
  2043.           } bind def
  2044.        /Rotl
  2045.           { 30 matrix rotate transform
  2046.           exch 3 1 roll
  2047.           30 matrix rotate transform
  2048.           pop exch
  2049.           lineto
  2050.           } bind def
  2051.  
  2052.         1  1  1 Rotm
  2053.        -1  1  1 Rotl
  2054.        -1 -1  1 Rotl
  2055.         1 -1  1 Rotl
  2056.        closepath
  2057.  
  2058.         1  1 -1 Rotm
  2059.        -1  1 -1 Rotl
  2060.        -1 -1 -1 Rotl
  2061.         1 -1 -1 Rotl
  2062.        closepath
  2063.  
  2064.         1  1  1 Rotm
  2065.         1  1 -1 Rotl
  2066.        -1  1  1 Rotm
  2067.        -1  1 -1 Rotl
  2068.        -1 -1  1 Rotm
  2069.        -1 -1 -1 Rotl
  2070.         1 -1  1 Rotm
  2071.         1 -1 -1 Rotl
  2072.  
  2073.        .01 setlinewidth
  2074.        stroke
  2075.        } def
  2076.    /Balls
  2077.        { 250 250 translate
  2078.        225 225 scale
  2079.  
  2080.        0 0 1.1 0 360 arc
  2081.        -0.32  0.55 translate
  2082.        30 rotate
  2083.        1 2 div  1 3 div scale
  2084.        0 0 1.1 360 0 arcn
  2085.        fill
  2086.        } def
  2087.    /Checkerboard
  2088.        { 0 0 moveto
  2089.        500 0 lineto
  2090.        500 500 lineto
  2091.        0 500 lineto
  2092.        closepath
  2093.        fill
  2094.        } def
  2095.    /CCCTlogo
  2096.        {
  2097.        4.8 4.8 scale
  2098.        -21 -26 translate
  2099.  
  2100.        36.4 28.4 moveto
  2101.        70 38 35 196 176.7 arcn
  2102.        35.1 40 35 42 24 41 curveto
  2103.        21 37 24 38 22 32 curveto
  2104.        21 28 25 27 28 28 curveto
  2105.        33 26 32 30 36.4 28.4 curveto
  2106.  
  2107.        36.5 48.2 moveto
  2108.        70 38 35 163.1 144.5 arcn
  2109.        40 59 39 60 36 61 curveto
  2110.        33 63 29 62 27 61 curveto
  2111.        24 58 29 55 26 54 curveto
  2112.        24 53 25 50 25 50 curveto
  2113.        28 47 30 44 36.5 48.2 curveto
  2114.  
  2115.        44.3 61.7 moveto
  2116.        70 38 35 137.3 111.5 arcn
  2117.        56 81 52 75 53 81 curveto
  2118.        52 87 50 81 46 84 curveto
  2119.        37 84 40 80 40 76 curveto
  2120.        42 70 35 73 44.3 61.7 curveto
  2121.  
  2122.        60.8 71.8 moveto
  2123.        70 38 35 105.3 80.0 arcn
  2124.        78 72 78 76 77 80 curveto
  2125.        77 81 80 82 79 83 curveto
  2126.        77 85 74 84 70 85 curveto
  2127.        65 85 69 80 62 80 curveto
  2128.        59 77 61 74 60.8 71.8 curveto
  2129.  
  2130.        97.1 60.1 moveto
  2131.        70 38 35 39.2 66.4 arc
  2132.        81 74 82 78 85 81 curveto
  2133.        91 81 98 84 95 76 curveto
  2134.        98 74 115 77 103 72 curveto
  2135.        101 68 100 61 97.1 60.1 curveto
  2136.  
  2137.        100 56 moveto
  2138.        70 38 35 31 11.6 arcn
  2139.        113 42 114 49 118 50 curveto
  2140.        115 57 123 56 120 60 curveto
  2141.        115 60 116 64 109 63 curveto
  2142.        104 62 107 57 100 56 curveto
  2143.  
  2144.        105 39 moveto
  2145.        70 38 35 1.6 -14.8 arcn
  2146.        107 27 110 28 112 27 curveto
  2147.        115 27 111 31 118 32 curveto
  2148.        120 33 125 33 122 36 curveto
  2149.        121 37 119 38 117 39 curveto
  2150.        113 46 112 39 105 39 curveto
  2151.  
  2152.        fill
  2153.     } def
  2154.    end
  2155.  
  2156.    /BuildChar
  2157.      {Spacing 100 div 500 mul  dup
  2158.       -0.1 -0.1 500.1 1000.1
  2159.       setcachedevice
  2160.       exch begin
  2161.       Encoding exch get
  2162.       CharProcs exch get
  2163.       end
  2164.       exec
  2165.      }def
  2166.    end
  2167.  
  2168.    /pntsize 100000 Frequency div Spacing div def
  2169.  
  2170.    /FillFont newfont definefont pop
  2171.    /FillFont findfont pntsize scalefont setfont
  2172.  
  2173.    /increment Spacing 100 div pntsize mul def
  2174.  
  2175.    eoclip newpath
  2176.    ForegroundGray 100 div 1 exch sub setgray
  2177.    Bblly increment Bbury
  2178.      { Bbllx 1 index moveto
  2179.        { str show
  2180.          currentpoint
  2181.          dup 3 index sub
  2182.          increment 2.1 div gt { increment sub } if
  2183.          1 index Bburx gt
  2184.          {pop pop pop exit} if
  2185.          moveto
  2186.        } loop
  2187.      } for
  2188.    } bind def
  2189.  
  2190. %@Fill
  2191. /Octagons %Achtecke,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  2192.    {
  2193.    /BackgroundGray exch -1 100 InRange def
  2194.    /ForegroundGray exch 0 100 InRange def
  2195.    /Linewidth      exch 0 100 InRange def
  2196.    /Frequency      exch 2 100 InRange def
  2197.  
  2198.    /newfont 10 dict def
  2199.    newfont begin
  2200.  
  2201.    /FontMatrix [1 2 sqrt 1 add div  0
  2202.                 0                   1 2 sqrt 1 add div
  2203.                 0                   0] def
  2204.    /FontType 3 def
  2205.    /FontBBox [0 0 2 sqrt 1 add 2 sqrt 1 add] def
  2206.    /Encoding 256 array def
  2207.    0 1 255 {Encoding exch /.notdef put} for
  2208.  
  2209.    /BuildChar
  2210.      { 2 sqrt 1 add  0
  2211.        -0.5 -0.5 2 sqrt 1.5 add 2 sqrt 1.5 add
  2212.        setcachedevice
  2213.        pop begin
  2214.  
  2215.        1 2 sqrt div  0 moveto
  2216.        1 2 sqrt div 1 add  0 lineto
  2217.        2 sqrt 1 add  1 2 sqrt div lineto
  2218.        2 sqrt 1 add  1 2 sqrt div 1 add lineto
  2219.        1 2 sqrt div 1 add  2 sqrt 1 add lineto
  2220.        1 2 sqrt div  2 sqrt 1 add lineto
  2221.        0  1 2 sqrt div 1 add lineto
  2222.        0  1 2 sqrt div lineto
  2223.        closepath
  2224.  
  2225.        Linewidth pntsize div 2 sqrt 1 add mul setlinewidth
  2226.        stroke
  2227.  
  2228.       end
  2229.      } def
  2230.    end
  2231.  
  2232.    /pntsize 1000 Frequency div def
  2233.    /FillFont newfont definefont pop
  2234.    /FillFont findfont pntsize scalefont setfont
  2235.  
  2236.    eoclip
  2237.    BackgroundGray 0 ge
  2238.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2239.       { newpath } ifelse
  2240.  
  2241.    ForegroundGray 100 div 1 exch sub setgray
  2242.  
  2243.    Bblly pntsize Bbury
  2244.      { Bbllx pntsize Bburx
  2245.        { 1 index moveto
  2246.        (a) show
  2247.        } for
  2248.      pop
  2249.      } for
  2250.    } bind def
  2251.  
  2252. %@Fill
  2253. /Patio %Veranda,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  2254.    {
  2255.    /BackgroundGray exch -1 100 InRange def
  2256.    /ForegroundGray exch 0 100 InRange def
  2257.    /Linewidth      exch 0 100 InRange def
  2258.    /Frequency      exch 2 100 InRange def
  2259.  
  2260.    /newfont 10 dict def
  2261.    newfont begin
  2262.  
  2263.    /FontMatrix [2 7 div             0
  2264.                 0                   2 7 div
  2265.                 0                   0] def
  2266.    /FontType 3 def
  2267.    /FontBBox [0 0 3 sqrt 2 mul  7 2 div] def
  2268.    /Encoding 256 array def
  2269.    0 1 255 {Encoding exch /.notdef put} for
  2270.  
  2271.    /BuildChar
  2272.      { 3 sqrt 3 mul 2 div  3 2 div
  2273.        -0.5 -0.5 3 sqrt 2 mul 0.5 add 7 2 div 0.5 add
  2274.        setcachedevice
  2275.        pop begin
  2276.  
  2277.        3 sqrt  3 2 div  translate
  2278.        3 sqrt 2 div  1 2 div  moveto
  2279.        3 { 120 rotate
  2280.            3 sqrt 2 div  -3 2 div lineto
  2281.            3 sqrt  -1 lineto
  2282.            3 sqrt  0 lineto
  2283.            3 sqrt 2 div  1 2 div lineto
  2284.          } repeat
  2285.  
  2286.        Linewidth pntsize div 7 2 div mul setlinewidth
  2287.        stroke
  2288.  
  2289.        end
  2290.      } def
  2291.    end
  2292.  
  2293.    /pntsize 1250 Frequency div def
  2294.  
  2295.    /FillFont newfont definefont pop
  2296.    /FillFont findfont pntsize scalefont setfont
  2297.  
  2298.    /Pointsize pntsize 6 mul 7 div def
  2299.  
  2300.    eoclip
  2301.    BackgroundGray 0 ge
  2302.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2303.       { newpath } ifelse
  2304.  
  2305.    ForegroundGray 100 div 1 exch sub setgray
  2306.  
  2307.    Bblly Pointsize Bbury
  2308.      { Bbllx 1 index moveto
  2309.        { (a) show
  2310.          currentpoint
  2311.          dup 3 index sub
  2312.          Pointsize 2 div gt { Pointsize sub } if
  2313.          1 index Bburx gt
  2314.          {pop pop pop exit} if
  2315.          moveto
  2316.        } loop
  2317.      } for
  2318.    } bind def
  2319.  
  2320. %@Fill
  2321. /Rectangles %Rechtecke,5, FlΣche=100, Anzahl=50, Linienbreite=5, Grau=0, Zufallszahl=0
  2322.    {
  2323.    srand
  2324.    /Grey exch 0 100 InRange def
  2325.    /Linewidth exch 0 100 InRange def
  2326.    /Number exch 1 200 InRange def
  2327.    /area exch 10 300 InRange def
  2328.  
  2329.    /dx Bburx Bbllx sub 2 mul def
  2330.    /dy Bbury Bblly sub 2 mul def
  2331.    /Area area 10000 mul def
  2332.  
  2333.    eoclip newpath
  2334.  
  2335.    Linewidth setlinewidth
  2336.    Bbllx dx 2 div sub  Bblly dy 2 div sub  translate
  2337.  
  2338. %   Area log
  2339.    Number {
  2340.       rand dx mod rand dy mod moveto
  2341. %      rand 180 mod 90 sub 100 div dup  dup mul 1 exch sub sqrt
  2342. %      exch atan 180 div 1 index mul 10 exch exp
  2343.       rand Area mod rand Area mod mul sqrt sqrt
  2344.       dup 0 rlineto
  2345.       0 Area 2 index div rlineto
  2346.       dup neg 0 rlineto
  2347.       closepath
  2348.       pop
  2349.  
  2350.       gsave
  2351.       Grey 100 div 1 exch sub setgray
  2352.       fill
  2353.       grestore
  2354.       0 setgray
  2355.       stroke
  2356.       } repeat
  2357.  
  2358.    } bind def
  2359.  
  2360. %@Fill
  2361. /Reptiles %Reptilien,5, Rasterabstand=4, Grau1=60, Grau2=30, Grau3=0, Linienbreite=8
  2362. {
  2363.   /LineWidth exch 0 250 InRange def
  2364.   /Gray3 exch 0 100 InRange 100 div def
  2365.   /Gray2 exch -1 100 InRange 100 div def
  2366.   /Gray1 exch -1 100 InRange 100 div def
  2367.   /Frequency exch 1 100 InRange def
  2368.  
  2369.   /newfont 10 dict def
  2370.   newfont begin
  2371.  
  2372.   /FontMatrix [2 7 div             0
  2373.                0                   2 7 div
  2374.                0                   0] def
  2375.   /FontType 3 def
  2376.   /FontBBox [-1.73 -1.86 2.36 2.0] def
  2377.   /Encoding 256 array def
  2378.   0 1 255 {Encoding exch /.notdef put} for
  2379.   Encoding 97 /ReptilesStroked put
  2380.   Encoding 98 /ReptileFilled put
  2381.  
  2382.   /CharProcs 3 dict def
  2383.   CharProcs begin
  2384.   /.notdef {} def
  2385.   /ReptilesStroked
  2386.   {
  2387.     %3 sqrt  3 2 div  translate
  2388.  
  2389.     3 sqrt 2 div  1 2 div  moveto
  2390.     3
  2391.     {
  2392.       120 rotate
  2393.  
  2394.       0     0    moveto
  2395.       0.32 -0.40 lineto
  2396.       0.32 -0.48 lineto
  2397.       0    -0.72 lineto
  2398.  
  2399.       0.05 -1.03 moveto
  2400.       0.4  -0.76 lineto
  2401.       0.84 -0.84 lineto
  2402.       0.5  -0.96 lineto
  2403.       0.31 -1.18 lineto
  2404.  
  2405.       0.87 -1.5  moveto
  2406.       0.58 -1.28 lineto
  2407.       0.8  -1.14 lineto
  2408.       0.94 -1.18 lineto
  2409.       1.24 -1.08 lineto
  2410.       1.42 -1.18 lineto
  2411.  
  2412.       1.68 -1.02 moveto
  2413.       1.52 -0.84 lineto
  2414.       1.64 -0.66 lineto
  2415.       1.73 -0.36 lineto
  2416.  
  2417.       1.73  0    moveto
  2418.       1.41 -0.26 lineto
  2419.       1.32 -0.49 lineto
  2420.       1.06 -0.24 lineto
  2421.       1.42  0.18 lineto
  2422.  
  2423.       0.87  0.57 moveto
  2424.       0.87  0.26 lineto
  2425.       0.99  0.26 lineto
  2426.       1.05  0.12 lineto
  2427.       0.82 -0.07 lineto
  2428.       0.68 -0.07 lineto
  2429.       0.62  0.36 lineto
  2430.  
  2431.  
  2432.       3 sqrt 2 div  1 2 div moveto
  2433.  
  2434.     } repeat
  2435.  
  2436.     LineWidth Pointsize div 7 2 div mul setlinewidth
  2437.     stroke
  2438.  
  2439.   } def
  2440.   /ReptileFilled
  2441.   {
  2442.     0     0    moveto
  2443.     0.32 -0.40 lineto
  2444.     0.32 -0.48 lineto
  2445.     0    -0.72 lineto
  2446.  
  2447.    -0.40 -0.55 lineto
  2448.    -0.47 -0.68 lineto
  2449.    -0.42 -0.97 lineto
  2450.    -0.27 -0.99 lineto
  2451.    -0.21 -0.88 lineto
  2452.  
  2453.     0.05 -1.03 lineto
  2454.     0.4  -0.76 lineto
  2455.     0.84 -0.84 lineto
  2456.     0.5  -0.96 lineto
  2457.     0.31 -1.18 lineto
  2458.  
  2459.     0.32 -1.39 lineto
  2460.     0.55 -1.60 lineto
  2461.     0.59 -1.74 lineto
  2462.     0.82 -1.86 lineto
  2463.  
  2464.     0.87 -1.5  lineto
  2465.     0.58 -1.28 lineto
  2466.     0.8  -1.14 lineto
  2467.     0.94 -1.18 lineto
  2468.     1.24 -1.08 lineto
  2469.     1.42 -1.18 lineto
  2470.     1.52 -1.45 lineto
  2471.     1.45 -1.81 lineto
  2472.     1.74 -1.47 lineto
  2473.     1.68 -1.02 lineto
  2474.     1.52 -0.84 lineto
  2475.     1.64 -0.66 lineto
  2476.     1.73 -0.36 lineto
  2477.     2.28 -0.46 lineto
  2478.     2.36 -0.11 lineto
  2479.     2.12 -0.15 lineto
  2480.     1.73  0    lineto
  2481.     1.41 -0.26 lineto
  2482.     1.32 -0.49 lineto
  2483.     1.06 -0.24 lineto
  2484.     1.42  0.18 lineto
  2485.     1.21  0.41 lineto
  2486.     1.11  0.60 lineto
  2487.  
  2488.     0.87  0.57 lineto
  2489.     0.87  0.26 lineto
  2490.     0.99  0.26 lineto
  2491.     1.05  0.12 lineto
  2492.     0.82 -0.07 lineto
  2493.     0.68 -0.07 lineto
  2494.     0.62  0.36 lineto
  2495.     0.26  0.52 lineto
  2496.     0.19  0.48 lineto
  2497.     closepath
  2498.     fill
  2499.   } def
  2500.   end
  2501.  
  2502.   /BuildChar
  2503.   {
  2504.     3 sqrt 3 mul 2 div  3 2 div
  2505.     -1.83 -1.96 2.46 2.1
  2506.     setcachedevice
  2507.     exch begin
  2508.     Encoding exch get
  2509.     CharProcs exch get
  2510.     end
  2511.     exec
  2512.   } def
  2513.   end
  2514.  
  2515.   /Pointsize 2000 Frequency div def
  2516.  
  2517.   /FillFont newfont definefont pop
  2518.   /FillFont findfont Pointsize scalefont setfont
  2519.  
  2520.   /pntsize Pointsize 6 mul 7 div def
  2521.   /HeightDiff Pointsize 2 mul 7 div .49 mul def
  2522.  
  2523.   eoclip newpath
  2524.  
  2525.   currentscreen
  2526.   3 -1 roll
  2527.   pop 120
  2528.   3 1 roll
  2529.   setscreen
  2530.  
  2531.   Bblly pntsize Bbury pntsize add HeightDiff add
  2532.   {
  2533.     Bbllx 1 index moveto
  2534.     {
  2535.       currentpoint
  2536.       1 index exch
  2537.  
  2538.       2 copy 2 copy translate
  2539.       240 rotate
  2540.       Gray1 0 ge
  2541.       { Gray1 1 exch sub setgray
  2542.         (b) show
  2543.       } if
  2544.       0 0 moveto
  2545.       -240 rotate
  2546.       neg exch neg exch translate
  2547.  
  2548.       2 copy translate
  2549.       120 rotate
  2550.       Gray2 0 ge
  2551.       { Gray2 1 exch sub setgray
  2552.         (b) show
  2553.       } if
  2554.       0 0 moveto
  2555.       -120 rotate
  2556.       neg exch neg exch translate
  2557.  
  2558.       Gray3 1 exch sub setgray
  2559.       (b) show
  2560.  
  2561.       currentpoint
  2562.       dup 4 index sub
  2563.       pntsize 2.1 div gt { pntsize sub } if
  2564.       3 -1 roll Bburx gt
  2565.       {pop pop pop exit} if
  2566.       moveto
  2567.     } loop
  2568.   } for
  2569.  
  2570.   LineWidth 0 gt
  2571.   {
  2572.     0 setgray
  2573.     Bblly pntsize Bbury pntsize add
  2574.     {
  2575.       Bbllx 1 index moveto
  2576.       {
  2577.         (a) show
  2578.         currentpoint
  2579.         dup 3 index sub
  2580.         pntsize 2.1 div gt { pntsize sub } if
  2581.         1 index Bburx gt
  2582.         {pop pop pop exit} if
  2583.         moveto
  2584.       } loop
  2585.     } for
  2586.   } if
  2587. } bind def
  2588.  
  2589. %@Fill
  2590. /SpiderWeb %Spinnweben,5, Linienbreite=5, Separation=300, Maximalwinkel=40, Minimalwinkel=10, Zufallszahl=0
  2591.    { srand
  2592.    /MinAng exch 2 90 InRange def
  2593.    /MaxAng exch MinAng 90 InRange MinAng wDstChck def
  2594.    /Sep exch 10 500 InRange def
  2595.    /Linewidth exch 0 100 InRange def
  2596.  
  2597.    eoclip
  2598.    newpath
  2599.  
  2600.    /dx Bburx Bbllx sub def
  2601.    /dy Bbury Bblly sub def
  2602.    /hyp dx dup mul dy dup mul add sqrt def
  2603.    /DifAng MaxAng MinAng sub def
  2604.  
  2605.    Bbllx Bblly translate
  2606.    dx 2 div dy 2 div translate
  2607.  
  2608.    /theta 0 def
  2609.    /dtheta 0 def
  2610.  
  2611.    {  0 0 moveto
  2612.  
  2613.       /theta theta dtheta add def
  2614.       theta 360 ge
  2615.         { exit } if
  2616.       /dtheta rand DifAng mod MinAng add def
  2617.       theta dtheta add 350 gt
  2618.         { /dtheta 360 theta sub def } if
  2619.  
  2620.       hyp theta cos mul hyp theta sin mul lineto
  2621.  
  2622.       0 Sep hyp
  2623.          {
  2624.          dup theta cos mul
  2625.          1 index theta sin mul
  2626.          moveto
  2627.  
  2628.          dup theta dtheta add cos theta cos add mul
  2629.          1 index theta dtheta add sin theta sin add mul
  2630.          2 index
  2631.          theta 180 add dtheta add
  2632.          theta 180 add
  2633.          arcn
  2634.  
  2635.          pop
  2636.          } for
  2637.       Linewidth setlinewidth
  2638.       stroke
  2639.       } loop
  2640.    } bind def
  2641.  
  2642. %@Fill
  2643. /Spirals %Spiralen,4, Size=150, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  2644.    {
  2645.    /BackgroundGrey exch -1 100 InRange def
  2646.    /ForegroundGray exch 0 100 InRange def
  2647.    /Linewidth exch 0 100 InRange def
  2648.    /Size exch 10 500 InRange def
  2649.  
  2650.    eoclip
  2651.    BackgroundGrey 0 ge
  2652.       { BackgroundGrey 100 div 1 exch sub setgray fill }
  2653.       { newpath } ifelse
  2654.  
  2655.    /cx Bburx Bbllx add 2 div def
  2656.    /cy Bbury Bblly add 2 div def
  2657.    /pntsize2 Size 2 div def
  2658.    /cy2 cy pntsize2 add def
  2659.    /hyp Bburx Bbllx sub dup mul
  2660.         Bbury Bblly sub dup mul
  2661.         add sqrt 2 div def
  2662.  
  2663.    ForegroundGray 100 div 1 exch sub setgray
  2664.  
  2665.    Linewidth setlinewidth
  2666.    0 Size hyp
  2667.       { cx cy 2 index 90 270 arc
  2668.         cx cy2 2 index pntsize2 add -90 90 arc
  2669.         pop
  2670.       } for
  2671.    stroke
  2672.    } bind def
  2673.  
  2674. %@Fill
  2675. /Spokes %Strahlen,5, Anzahl=120, Linienbreite=5, Horizontal=0, Vertikal=0, Vordergrundgrau=100
  2676.         { %def -- Fill function that fills with spokes
  2677.         /ForegroundGray exch 0 100 InRange def
  2678.     /wY exch 0 100 InRange def
  2679.     /wX exch 0 100 InRange def
  2680.     /LineWidth exch 0 100 InRange def
  2681.     /Number exch 4 360 InRange def
  2682.  
  2683.         eoclip
  2684.         newpath
  2685.         /Flen Bburx Bbllx sub dup mul Bbury Bblly sub dup mul add sqrt def
  2686.         Bbllx Bblly translate
  2687.     Bburx Bbllx sub wX mul 100 div  Bbury Bblly sub wY mul 100 div translate
  2688.  
  2689.     360 Number div
  2690.         Number {
  2691.            0 0 moveto
  2692.            Flen 0 lineto
  2693.            dup rotate
  2694.            } repeat
  2695.         pop
  2696.         ForegroundGray 100 div 1 exch sub setgray
  2697.     LineWidth setlinewidth
  2698.     stroke
  2699.         } bind def
  2700.  
  2701. %@Fill
  2702. /Squares %Quadrate,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  2703.    {
  2704.    /BackgroundGray exch -1 100 InRange def
  2705.    /ForegroundGray exch 0 100 InRange def
  2706.    /Linewidth      exch 0 100 InRange def
  2707.    /Frequency      exch 2 100 InRange def
  2708.  
  2709.    /newfont 10 dict def
  2710.    newfont begin
  2711.  
  2712.    /FontMatrix [1  0  0
  2713.                 1  0  0] def
  2714.    /FontType 3 def
  2715.    /FontBBox [0 0 1 1] def
  2716.    /Encoding 256 array def
  2717.    0 1 255 {Encoding exch /.notdef put} for
  2718.  
  2719.    /BuildChar
  2720.      { 1  0
  2721.        -0.1 -0.1 1.1 1.1
  2722.        setcachedevice
  2723.        pop begin
  2724.  
  2725.        0 0 moveto
  2726.        0 1 lineto
  2727.        1 1 lineto
  2728.        1 0 lineto
  2729.  
  2730.        Linewidth pntsize div setlinewidth
  2731.        stroke
  2732.  
  2733.       end
  2734.      } def
  2735.    end
  2736.  
  2737.    /pntsize 1000 Frequency div def
  2738.  
  2739.    /FillFont newfont definefont pop
  2740.    /FillFont findfont pntsize scalefont setfont
  2741.  
  2742.    eoclip
  2743.    BackgroundGray 0 ge
  2744.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2745.       { newpath } ifelse
  2746.  
  2747.    ForegroundGray 100 div 1 exch sub setgray
  2748.  
  2749.    Bblly pntsize Bbury
  2750.      { Bbllx exch moveto
  2751.        { (a) show
  2752.          currentpoint
  2753.          pop Bburx gt
  2754.          {exit} if
  2755.        } loop
  2756.      } for
  2757.    } bind def
  2758.  
  2759. %@Fill
  2760. /StarOfDavid %Davidstern,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  2761.    {
  2762.    /BackgroundGray exch -1 100 InRange def
  2763.    /ForegroundGray exch 0 100 InRange def
  2764.    /Linewidth      exch 0 100 InRange def
  2765.    /Frequency      exch 2 100 InRange def
  2766.  
  2767.    /newfont 10 dict def
  2768.    newfont begin
  2769.  
  2770.    /FontMatrix [1 3 sqrt 2 mul div  0
  2771.                 0                   1 3 sqrt 2 mul div
  2772.                 0                   0] def
  2773.    /FontType 3 def
  2774.    /FontBBox [0 0 2 3 sqrt 2 mul] def
  2775.    /Encoding 256 array def
  2776.    0 1 255 {Encoding exch /.notdef put} for
  2777.  
  2778.    /BuildChar
  2779.      { 1  3 sqrt
  2780.        -0.1 -0.1 2.1 3 sqrt 2 mul 0.1 add
  2781.        setcachedevice
  2782.        pop begin
  2783.  
  2784.        1 2 div  0 moveto
  2785.        3 2 div  0 lineto
  2786.        2  3 sqrt 2 div lineto
  2787.        3 2 div  3 sqrt lineto
  2788.        1 2 div  3 sqrt lineto
  2789.        0  3 sqrt 2 div lineto
  2790.        closepath
  2791.  
  2792.        Linewidth pntsize div 3 sqrt 2 mul mul setlinewidth
  2793.        stroke
  2794.  
  2795.       end
  2796.      } def
  2797.    end
  2798.  
  2799.    /pntsize 1732 Frequency div def
  2800.  
  2801.    /FillFont newfont definefont pop
  2802.    /FillFont findfont pntsize scalefont setfont
  2803.  
  2804.    eoclip
  2805.    BackgroundGray 0 ge
  2806.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2807.       { newpath } ifelse
  2808.  
  2809.    ForegroundGray 100 div 1 exch sub setgray
  2810.  
  2811.    Bblly pntsize Bbury
  2812.      { Bbllx pntsize sub 1 index moveto
  2813.        { (a) show
  2814.          currentpoint
  2815.          dup 3 index sub
  2816.          pntsize 2.1 div gt { pntsize sub } if
  2817.          1 index Bburx gt
  2818.          {pop pop pop exit} if
  2819.          moveto
  2820.        } loop
  2821.      } for
  2822.    } bind def
  2823.  
  2824. %@Fill
  2825. /Stars %Sterne,4, Anzahl=100, Maximalgr÷▀e=300, Minimalgr÷▀e=3, Zufallszahl=0
  2826.    { srand
  2827.    /MinSize exch 1 1000 InRange def
  2828.    /MaxSize exch MinSize 1000 InRange def
  2829.    /Number exch 1 2000 InRange def
  2830.  
  2831.    /newfont 10 dict def
  2832.    newfont begin
  2833.  
  2834.    /FontMatrix [1  0  0
  2835.                 1  0  0] def
  2836.    /FontType 3 def
  2837.    /FontBBox [0 0 1 1] def
  2838.    /Encoding 256 array def
  2839.    0 1 255 {Encoding exch /.notdef put} for
  2840.  
  2841.    /BuildChar
  2842.      { 1  0
  2843.        -0.1 -0.1 1.1 1.1
  2844.        setcachedevice
  2845.        pop begin
  2846.  
  2847.        1 .5 moveto
  2848.        .5 .5 .5 0 360 arc
  2849.        fill
  2850.  
  2851.        end
  2852.      } def
  2853.    end
  2854.  
  2855.    /FillFont newfont definefont pop
  2856.    /FillFont findfont 2 scalefont setfont
  2857.  
  2858.    /dx Bburx Bbllx sub def
  2859.    /dy Bbury Bblly sub def
  2860.  
  2861.    eoclip
  2862.    0 setgray
  2863.    fill
  2864.  
  2865.    1 setgray
  2866.    /mtx matrix currentmatrix def
  2867.    dx dy mul Number mul 100000 div cvi
  2868.       { rand dx mod Bbllx add
  2869.       rand dy mod Bblly add
  2870.       moveto
  2871.       MaxSize rand  MaxSize MinSize div cvi  mod 1 add div 10 div
  2872.       dup scale
  2873.       (a) show
  2874.       mtx setmatrix
  2875.       } repeat
  2876.  
  2877.    } bind def
  2878.  
  2879. %@Fill
  2880. /StarShapes %Sternformen,5, Punkte=5, Rasterabstand=2, Abstand=100, Winkel=36, Grau=100
  2881.    {
  2882.    /Grey exch 0 100 InRange def
  2883.    /Theta exch 1 90 InRange def
  2884.    /Spacing exch 1 300 InRange def
  2885.    /Frequency exch 1 25 InRange def
  2886.    /Points exch 1 15 InRange def
  2887.  
  2888.    /str 1 string def
  2889.    str 0 Points put
  2890.  
  2891.    /newfont 10 dict def
  2892.    newfont begin
  2893.  
  2894.    /FontMatrix [.001                0
  2895.                 0                   .001
  2896.                 0                   0] def
  2897.    /FontType 3 def
  2898.    /FontBBox [0 0 500 1000] def
  2899.  
  2900.    /Encoding 256 array def
  2901.    0 1 255 {Encoding exch /.notdef put} for
  2902.  
  2903.    /BuildChar
  2904.      {Spacing 100 div 500 mul  dup
  2905.       -0.1 -0.1 500.1 1000.1
  2906.       setcachedevice
  2907.       exch begin
  2908.  
  2909.       250 250 translate
  2910.       250 250 scale
  2911.       90 rotate
  2912.  
  2913.       dup
  2914.       180 exch div dup sin exch cos div
  2915.       Theta 2 div dup sin exch cos div
  2916.  
  2917.       1 0 moveto
  2918.       2 index
  2919.          {
  2920.          360 3 index div rotate
  2921.          dup dup 3 index add div
  2922.          dup 3 index mul neg
  2923.          lineto
  2924.          1 0 lineto
  2925.          } repeat
  2926.       closepath
  2927.  
  2928.       fill
  2929.       pop pop pop
  2930.  
  2931.       end
  2932.      }def
  2933.    end
  2934.  
  2935.    /pntsize 100000 Frequency div Spacing div def
  2936.  
  2937.    /FillFont newfont definefont pop
  2938.    /FillFont findfont pntsize scalefont setfont
  2939.  
  2940.    /increment Spacing 100 div pntsize mul def
  2941.  
  2942.    eoclip newpath
  2943.  
  2944.    Grey 100 div 1 exch sub setgray
  2945.    Bblly increment Bbury
  2946.      { Bbllx 1 index moveto
  2947.        { str show
  2948.          currentpoint
  2949.          dup 3 index sub
  2950.          increment 2.1 div gt { increment sub } if
  2951.          1 index Bburx gt
  2952.          {pop pop pop exit} if
  2953.          moveto
  2954.        } loop
  2955.      } for
  2956.    } bind def
  2957.  
  2958. %@Fill
  2959. /StoneWall %Steinmauer,4, Rasterabstand=15, Maximalgrau=100, Minimalgrau=0, Linienbreite=5
  2960.    {
  2961.    /Linewidth exch 0 100 InRange def
  2962.    /MinGrey exch 0 100 InRange def
  2963.    /MaxGrey exch MinGrey 100 InRange def
  2964.    /Frequency exch 1 50 InRange def
  2965.  
  2966.    /DifGrey MaxGrey MinGrey sub def
  2967.    DifGrey 0 eq
  2968.       { /DifGrey 1 def
  2969.       } if
  2970.    Linewidth Frequency mul 250 div setlinewidth
  2971.    eoclip newpath
  2972.    0 srand
  2973.  
  2974.    currentscreen
  2975.    3 -1 roll
  2976.    pop 100
  2977.    3 1 roll
  2978.    setscreen
  2979.  
  2980.    /dy Bbury Bblly sub def
  2981.    /dx Bburx Bbllx sub def
  2982.    Bbllx Bbury translate
  2983.    250 Frequency div dup scale
  2984.  
  2985.    dy 920 div Frequency mul cvi {
  2986.       0 0 moveto
  2987.       /x0 0 def
  2988.       /y0 0 def
  2989.       /x1 0 def
  2990.       /y1 0 def
  2991.       /x2 0 def
  2992.       /y2 0 def
  2993.       /x3 0 def
  2994.       /y3 0 def
  2995.       0 5 dx 200 div Frequency mul
  2996.          { rand 50 mod 25 div 1 sub add
  2997.          x3 y3 moveto
  2998.          x2 y2 x1 y1 x0 y0 curveto
  2999.          dup rand 30 mod 15 div neg 2 sub
  3000.          2 copy
  3001.          /y0 exch def
  3002.          /x0 exch def
  3003.          lineto
  3004.          dup rand 50 mod 10 div 2.5 sub add rand 50 mod 10 div neg
  3005.          1 index rand 50 mod 10 div
  3006.          4 index rand 30 mod 15 div 2 add
  3007.          6 copy
  3008.          /y3 exch def
  3009.          /x3 exch def
  3010.          /y2 exch def
  3011.          /x2 exch def
  3012.          /y1 exch def
  3013.          /x1 exch def
  3014.          curveto
  3015.          pop
  3016.          closepath
  3017.          gsave
  3018.          rand DifGrey mod MinGrey add 100 div 1 exch sub setgray fill
  3019.          grestore
  3020.          0 setgray stroke
  3021.          } for
  3022.       0 -4 translate
  3023.       } repeat
  3024.    } bind def
  3025.  
  3026. %@Fill
  3027. /Text %Text,5, Schrift=1, Zeichen=67, Rasterabstand=4, Abstand=100, Hintergrundgrau=0
  3028.    {
  3029.    /BackGrey exch -1 100 InRange def
  3030.    /Spacing exch 30 300 InRange def
  3031.    /Frequency exch 1 50 InRange def
  3032.    /Character exch 33 255 InRange def
  3033.    /Font exch 1 35 InRange def
  3034.  
  3035.    /pntsize 100000 Frequency div Spacing div def
  3036.    Font  1 eq { /Times-Roman } if
  3037.    Font  2 eq { /Times-Italic } if
  3038.    Font  3 eq { /Times-Bold } if
  3039.    Font  4 eq { /Times-BoldItalic } if
  3040.    Font  5 eq { /Helvetica } if
  3041.    Font  6 eq { /Helvetica-Oblique } if
  3042.    Font  7 eq { /Helvetica-Bold } if
  3043.    Font  8 eq { /Helvetica-BoldOblique } if
  3044.    Font  9 eq { /Courier } if
  3045.    Font 10 eq { /Courier-Oblique } if
  3046.    Font 11 eq { /Courier-Bold } if
  3047.    Font 12 eq { /Courier-BoldOblique } if
  3048.    Font 13 eq { /Symbol } if
  3049.    Font 14 eq { /AvantGarde-Book } if
  3050.    Font 15 eq { /AvantGarde-BookOblique } if
  3051.    Font 16 eq { /AvantGarde-Demi } if
  3052.    Font 17 eq { /AvantGarde-DemiOblique } if
  3053.    Font 18 eq { /Bookman-Demi } if
  3054.    Font 19 eq { /Bookman-DemiItalic } if
  3055.    Font 20 eq { /Bookman-Light } if
  3056.    Font 21 eq { /Bookman-LightItalic } if
  3057.    Font 22 eq { /Helvetica-Narrow } if
  3058.    Font 23 eq { /Helvetica-Narrow-Bold } if
  3059.    Font 24 eq { /Helvetica-Narrow-BoldOblique } if
  3060.    Font 25 eq { /Helvetica-Narrow-Oblique } if
  3061.    Font 26 eq { /NewCenturySchlbk-Roman } if
  3062.    Font 27 eq { /NewCenturySchlbk-Bold } if
  3063.    Font 28 eq { /NewCenturySchlbk-Italic } if
  3064.    Font 29 eq { /NewCenturySchlbk-BoldItalic } if
  3065.    Font 30 eq { /Palatino-Roman } if
  3066.    Font 31 eq { /Palatino-Bold } if
  3067.    Font 32 eq { /Palatino-Italic } if
  3068.    Font 33 eq { /Palatino-BoldItalic } if
  3069.    Font 34 eq { /ZapfChancery-MediumItalic } if
  3070.    Font 35 eq { /ZapfDingbats } if
  3071.    findfont pntsize scalefont setfont
  3072.  
  3073.    /str 1 string def
  3074.    str 0 Character put
  3075.  
  3076.    /increment Spacing 100 div pntsize mul 2 mul def
  3077.  
  3078.    eoclip
  3079.    BackGrey 0 ge
  3080.       { BackGrey 100 div 1 exch sub setgray fill }
  3081.       { newpath } ifelse
  3082.  
  3083.    /Bbury Bbury pntsize add def
  3084.  
  3085.    0 setgray
  3086.    Bblly increment Bbury
  3087.      { Bbllx 1 index moveto
  3088.        { str show
  3089.          currentpoint increment 2 div add
  3090.          dup 3 index sub
  3091.          increment 2.1 div gt { increment sub } if
  3092.          1 index Bburx gt
  3093.          {pop pop pop exit} if
  3094.          moveto
  3095.        } loop
  3096.      } for
  3097.    } bind def
  3098.  
  3099. %@Fill
  3100. /Tiles %Kacheln,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  3101.    {
  3102.    /BackgroundGray exch -1 100 InRange def
  3103.    /ForegroundGray exch 0 100 InRange def
  3104.    /Linewidth      exch 0 100 InRange def
  3105.    /Frequency      exch 2 100 InRange def
  3106.  
  3107.    /newfont 10 dict def
  3108.    newfont begin
  3109.  
  3110.    /FontMatrix [1  0  0
  3111.                 1  0  0] def
  3112.    /FontType 3 def
  3113.    /FontBBox [0 0 2 1] def
  3114.    /Encoding 256 array def
  3115.    0 1 255 {Encoding exch /.notdef put} for
  3116.  
  3117.    /BuildChar
  3118.      { 2  .5
  3119.        -0.1 -0.1 2.1 1.1
  3120.        setcachedevice
  3121.        pop begin
  3122.  
  3123.        0   0 moveto
  3124.        1.5 0 lineto
  3125.        1.75  0 .25 180 90 arcn
  3126.        1.75 .5 .25 -90 90 arc
  3127.        1.75  1 .25 270 180 arcn
  3128.        0   1 lineto
  3129.  
  3130.        Linewidth pntsize div setlinewidth
  3131.        stroke
  3132.  
  3133.        end
  3134.      } def
  3135.    end
  3136.  
  3137.    /pntsize 500 Frequency div def
  3138.  
  3139.    /FillFont newfont definefont pop
  3140.    /FillFont findfont pntsize scalefont setfont
  3141.  
  3142.    eoclip
  3143.    BackgroundGray 0 ge
  3144.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3145.       { newpath } ifelse
  3146.  
  3147.    ForegroundGray 100 div 1 exch sub setgray
  3148.  
  3149.    Bblly pntsize Bbury
  3150.      { Bbllx 1 index moveto
  3151.        { (a) show
  3152.          currentpoint
  3153.          dup 3 index sub
  3154.          pntsize 2.1 div gt { pntsize sub } if
  3155.          1 index Bburx gt
  3156.          {pop pop pop exit} if
  3157.          moveto
  3158.        } loop
  3159.      } for
  3160.    } bind def
  3161.  
  3162. %@Fill
  3163. /TreeRings %Baumringe,5, Maximalabstand=150, Minimalabstand=0, Linienbreite=5, Hintergrundgrau=0, Zufallszahl=0
  3164.    { srand
  3165.    /BackGrey exch -1 100 InRange def
  3166.    /LineWidth exch 0 100 InRange def
  3167.    /MinDist exch 0 500 InRange def
  3168.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  3169.  
  3170.    eoclip
  3171.    BackGrey 0 ge
  3172.       { BackGrey 100 div 1 exch sub setgray fill }
  3173.       { newpath } ifelse
  3174.  
  3175.    /cx Bburx Bbllx add 2 div def
  3176.    /cy Bbury Bblly add 2 div def
  3177.    /pntsize MaxDist MinDist sub def
  3178.    /hyp Bburx Bbllx sub dup mul Bbury Bblly sub dup mul add sqrt def
  3179.  
  3180.    /wr 0 def
  3181.    0 setgray
  3182.    LineWidth setlinewidth
  3183.  
  3184.       {
  3185.       /wr rand pntsize mod MinDist add wr add def
  3186.       cx wr add  cy moveto
  3187.       cx cy wr 0 360 arc
  3188.       stroke
  3189.       wr hyp gt {exit} if
  3190.       } loop
  3191.    } bind def
  3192.  
  3193. %@Fill
  3194. /Triangle %Dreiecke,4, Rasterabstand=8, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0
  3195.    {
  3196.    /BackgroundGray exch -1 100 InRange def
  3197.    /ForegroundGray exch 0 100 InRange def
  3198.    /Linewidth      exch 0 100 InRange def
  3199.    /Frequency      exch 2 100 InRange def
  3200.  
  3201.    /newfont 10 dict def
  3202.    newfont begin
  3203.  
  3204.    /FontMatrix  [ 1 3 sqrt div  0
  3205.                   0             1 3 sqrt div
  3206.                   0             0] def
  3207.    /FontType 3 def
  3208.    /FontBBox [0 0 1 3 sqrt] def
  3209.    /Encoding 256 array def
  3210.    0 1 255 {Encoding exch /.notdef put} for
  3211.  
  3212.    /BuildChar
  3213.      { 1  0
  3214.        -0.1 -0.1 1.1 3 sqrt 0.1 add
  3215.        setcachedevice
  3216.        pop begin
  3217.  
  3218.        0 0 moveto
  3219.        1 3 sqrt lineto
  3220.        0 3 sqrt lineto
  3221.        1 0 lineto
  3222.        closepath
  3223.  
  3224.        0 3 sqrt 2 div moveto
  3225.        1 3 sqrt 2 div lineto
  3226.  
  3227.        Linewidth pntsize div 3 sqrt mul setlinewidth
  3228.        stroke
  3229.  
  3230.       end
  3231.      } def
  3232.    end
  3233.  
  3234.    /pntsize 1732 Frequency div def
  3235.    /FillFont newfont definefont pop
  3236.    /FillFont findfont pntsize scalefont setfont
  3237.  
  3238.    eoclip
  3239.    BackgroundGray 0 ge
  3240.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3241.       { newpath } ifelse
  3242.  
  3243.    ForegroundGray 100 div 1 exch sub setgray
  3244.  
  3245.    Bblly pntsize Bbury
  3246.      { Bbllx pntsize sub pntsize 3 sqrt div Bburx
  3247.        { 1 index moveto
  3248.        (a) show
  3249.        } for
  3250.      pop
  3251.      } for
  3252.    } bind def
  3253.  
  3254. %@Fill
  3255. /Waves %Wellen,5, Rasterabstand=6, Linienbreite=5, Vordergrundgrau=100, Hintergrundgrau=0, Abstand(%)=100
  3256.    {
  3257.    /Spacing        exch 30 300 InRange def
  3258.    /BackgroundGray exch -1 100 InRange def
  3259.    /ForegroundGray exch 0 100 InRange def
  3260.    /Linewidth      exch  0 100 InRange def
  3261.    /Frequency      exch  2 100 InRange def
  3262.  
  3263.    /newfont 10 dict def
  3264.    newfont begin
  3265.  
  3266.    /FontMatrix [1 84 div   0
  3267.                 0          1 84 div
  3268.                 0          0] def
  3269.    /FontType 3 def
  3270.    /FontBBox [37 56 111 114] def
  3271.    /Encoding 256 array def
  3272.    0 1 255 {Encoding exch /.notdef put} for
  3273.  
  3274.    /BuildChar
  3275.      { 74  0
  3276.        36.9 55.9 111.1 114.1
  3277.        setcachedevice
  3278.        pop begin
  3279.  
  3280.        1 1.5 scale
  3281.  
  3282.        37 38 moveto
  3283.        76 38 79 73 111 57 curveto
  3284.        80 60 80 38 111 38 curveto
  3285.  
  3286.        Linewidth pntsize div 84 mul setlinewidth
  3287.        stroke
  3288.  
  3289.       end
  3290.      } def
  3291.    end
  3292.  
  3293.    /pntsize 783 Frequency div def
  3294.  
  3295.    /FillFont newfont definefont pop
  3296.    /FillFont findfont pntsize scalefont setfont
  3297.  
  3298.    /Height pntsize Spacing 100 div mul def
  3299.  
  3300.    /Bbllx Bbllx Height sub def
  3301.    /Bblly Bblly Height sub def
  3302.    /Bburx Bburx Height add def
  3303.    /Bbury Bbury Height add def
  3304.  
  3305.    eoclip
  3306.    BackgroundGray 0 ge
  3307.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3308.       { newpath } ifelse
  3309.  
  3310.    ForegroundGray 100 div 1 exch sub setgray
  3311.    Bblly Height Bbury
  3312.      { Bbllx exch moveto
  3313.        { (a) show
  3314.          currentpoint
  3315.          pop Bburx gt
  3316.          {exit} if
  3317.        } loop
  3318.      } for
  3319.    } bind def
  3320.  
  3321. 
  3322.