年賀状書いた。
%! << /PageSize [285 420] >> setpagedevice % excerpt from Bill Casselman's % "Mathematical Illustrations - a manual of geometry and PostScript" /ctransform { load 1 dict begin /f exch def [{[3 1 roll f {moveto}]} {[3 1 roll f {lineto}]} {[7 1 roll f 6 2 roll f 6 2 roll f 6 2 roll {curveto}]} {[{closepath}]} pathforall] newpath {aload pop exec} forall end } def /f {/y exch def /x exch def x y fsub 5 y mul cos mul y x fsub 3 y mul cos mul } def /fsub { % u = sin (a √(30 - (b^2 / 10))) * 460 /b exch def /a exch def a 30 b dup mul 10 div sub sqrt mul sin 460 mul } def /setrandcolor { % def /r1 {rand 5 mod 3 div} def /r2 {rand 7 mod 6 div} def /r3 {rand 5 mod 6 div} def r1 r2 r3 setrgbcolor } def 1 1 20 { % for /n exch def newpath /ShowcardGothic-Reg findfont 4 scalefont setfont -0.4 9 moveto (2018) true charpath -0.1 6 moveto (1820) true charpath 0 3 moveto (2018) true charpath -0.1 0 moveto (1820) true charpath /f ctransform gsave clip newpath /j { /x exch def rand x mod x div 30 mul } def 0 5 400 { /i exch def 10 j setlinewidth setrandcolor 0 i moveto 300 i lineto stroke } for grestore currentlinewidth 2 mul setlinewidth 0.1 0 0 setrgbcolor stroke 3 410 moveto /Georgia-Bold findfont 5 scalefont setfont 0.3 0.2 0.2 setrgbcolor n =string cvs show (/20) show showpage } for
2018 by Keiichiro Shikano on Scribd
今年は球体を作ってみたいなと思って、はじめはエッシャーふうの非ユークリッド空間の円盤への写像を「2018」のパターンで埋めようと思ったのだけど、ちょっと調べたら、それをやるには3つか5つの頂点を持つような「2018」をデザインしてそれを中心から外周へと再帰的に貼り付けていくことになりそうで、デザイン力が要求されるし、コードを書く時間もないから、やめ。 正方形を円へと等角写像で膨らませて輪郭を作りつつ、sinをとって膨らみ感を強調し、x軸で多少オフセットして、全体にそれっぽく見せることでごまかしています。
フォントはShowCard Gothicというボリューム感のあるフォントを選びました。
にしても、はじめてPostScript手書きで年賀状を作ってからもう10年になるのかあ。 ということで、これを機に過去のぶんもすべてGitHubにまとめておきました。
もともとPostScriptしばりというわけでもなく、なんとなく西暦の文字列を使って世界で1枚だけの年賀状をアルゴリズミックに生成するつもりしかなくて、2009年はPostScriptじゃないしコードも残っていなかった(Gaucheで書き捨てた)。 まあでも、よく10年続いたなと思う。
10年続きはしたけれど、年に一回しか書かないこともあり、PostScript力にはたいした進歩が感じられませんね。
0 件のコメント:
コメントを投稿