/fib {0 1 2 index -1 1 {pop exch 1 index add} for} def
ただ、せっかく PostScript なので、結果を印刷とかもしたい。印刷には show オペレータを使うわけだけど、show は文字列(string)しかとれない。fib オペレータが返すのは数値(integer)なので、文字列の型に変換する必要がある。
PostScript で型を文字列に変換するには、=string cvs とすればいいようだ。
%!これでページの左下に大きく「89」と印刷される。やっぱりPalatinoフォントの数字は美しい。
/fib {0 1 2 index -1 1 {pop exch 1 index add} for} def
/Palatino-Linotype findfont 300 scalefont setfont
10 10 moveto
11 fib == =string cvs show
さらにグラフなど描いてみる。
%!
/fib {0 1 2 index -1 1 {pop exch 1 index add} for} def
20 setlinewidth
1 1 21 { % for
/i exch def
/x 27 i mul def
0 setgray
/Palatino-Linotype findfont 10 scalefont setfont
10 x 5 sub exch moveto
i fib == =string cvs show
/r {rand i mod 21 div} def
r r r setrgbcolor
newpath
x 30 moveto
i fib == 10 div 30 add x exch lineto
stroke
} for
showpage
0 件のコメント:
コメントを投稿