2012/12/30

2013年賀状

年賀状書いた。

%!
<< /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 { % u = (x^2-y^2) / 200, v = 2xy / 100
  /y exch def
  /x exch def
  x dup mul y dup mul sub 150 div
  1.2 x mul y mul 100 div
} def

/fcn { % u = ((x-100)^2-y^2) / 7 , v = 1.2xy / 7
  /y exch def
  /x exch def
  x 100 sub dup mul y dup mul sub 28 div
  1.2 x mul y mul 7 div
} def

/setrandcolor {
  /m exch .4 add def
  /r1 {rand 1 mod 1 div m add} def
  /r2 {rand 3 mod 17 div m add} def
  /r3 {rand 10 mod 17 div m add} def
  r1 r2 r3 setrgbcolor
} def

/randcgrid {
  currentlinewidth 10 div setlinewidth
    0 .5 300 {
      /i exch def
      i 0 exch moveto 300 0 rlineto /f ctransform
      i 400 div setrandcolor stroke} for
    0 .5 300 {
      /i exch def
      i 0 moveto 0 300 rlineto /f ctransform
      i 300 div setrandcolor stroke} for
} def

/xoffset 200 def

0 1 20{
  /n exch def

  xoffset 10 add -10 translate randcgrid
  0 xoffset sub 20 translate
  0 0 moveto
  newpath
  /Titania findfont 11 scalefont setfont
  0.7 0.1 0.1 setrgbcolor
  12 5.5 moveto
  (2008 2009 2010 2011 2012 2013 2014) true charpath
  /fcn ctransform clip
  /fcn ctransform clip
  1 0.5 0.55 setrgbcolor
  fill
  stroke
  newpath
  1 0 0 setrgbcolor
  120 setlinewidth
  145 140 moveto
  145 400 lineto
  stroke

  initclip
  20 10 moveto
  /Georgia-Bold findfont 10 scalefont setfont
  0 0 0 setrgbcolor
  n =string cvs show
  (/20) show
  showpage
  0 0 moveto
} for

"Mathematical Illustrations"を読みつつパスを変換(実質的には等角写像でぐにゅっと曲げた)して生成した。/fcn が西暦の文字列を構成するパスを変換するための写像を表す関数で、/f が矩形の格子を背景のテクスチャへと変換する写像を表す関数。

SDIM0193

利用したフォントは Titania 。毎年、フォント探しに一番時間がかかってるような気がする。

毎年、親戚や家族付き合いのある友人向けに20枚くらいだけ印刷してて、今年のものは「2008年に生まれた息子も5歳を迎えます今年も来年も引き続きよろしくお願いします」と読みます。去年のものはだいぶ色きちがいになってしまったので、今年はあっさりとした配色にして、何か手書きするスペースを残しました。

No comments :