SVX日記
2017-10-30(Mon) たのしい納車待ちの過ごし方
……などと、浮かれている場合じゃない……なにせ、人生で初の新車購入で、しかも、ずっと憧れていた、赤いオープンのスポーツカー。しかも、ロードスターのまったく隙のない造りについて知れば知るほどに惚れ込むばかりなのだ。先月に試乗してから、頭の中はそればっか。まったく、チョロい客だったらありゃしないねぇ……。
基本的な要件は残り日数が表示されることだが、グラフ表示も欲しいな。グラフのイメージには車体の絵を使おう。それなりの厚みになるだろうから、ホッチキスでは無理で、糸で吊る必要があるな。そうなると、斜めにしたほうがまとまりがいいかも……。
例によって、自作のTrueLegacyGraphicsCairoライブラリを持ってきて、カラーレーザーでジャーっと。思いのほか、チョロっとコードを書いただけで、目的が達成できてしまった。
# for A4 - 144dpi - 210mm x 297mm - (上下左右の余白 4.23mm)
win = LegacyGraphics.new(winY, winX, 0, 0, 1635, 1142, 16, 8, 7, { :file => 'cal', :type => 'pdf' }) # png/pdf/ps
win.clear; win.box('|', '-') # cls
ps = { :font_family => 'pacman.bmf', :font_weight => 400, :font_size => 40, :layout_width => 120, :layout_alignment => 'center' }
6.times {|y|
4.times {|x|
x0 = x * 256; y0 = y * 256
win.line(x0, y0, x0 + 255, y0 + 255, 0, 'b')
win.rotate(-45, x0 + 128, y0 + 128) {
win.text(x0 + 128 - 60, y0 + 224, '%d' % days, 0, ps)
system('convert roadster.png white.png -gravity south -geometry +%s+0 -compose over -composite progress.png' % [(72 - days) * 192 / 72])
win.put_image_png(x0 + 32, y0 + 80, 'progress.png')
}
days -= 1
}
}
win.refresh # ページ生成(pdf/ps)