PostScript

FizzBazz

PostScript で http://karetta.jp/book-node/gauche-hacks/023107 っぽいやり方で書いてみる。むしろ、Unix コマンドをパイプで繋げていくのに似ているような。 /map{[3 1 roll forall]}def % map は簡単に自作できます /integer?{type/integertype eq}def […

PostScript script 別解

#!/bin/sh exec gs -q -dNODISPLAY -dBATCH -d#!='{2{currentfile 256 string readline{pop}if}repeat}' -- $0 "$@" (Hello, World!)= 特徴 別ファイルが必要ない。 #! や exec の行に何か追加しても大丈夫 前の (id:yshl:20050818:1124357080 id:yshl:20070…

PostScript golf のために

以下の技は code golf 限定です。エディタで普通に PostScript 画像を書くときや、PostScript インタープリタを使ったスクリプトを書く時などに使ってはいけません。 PostScript で、スタック以外の場所に値を保存しておきたい場合、通常は /x 42 def % 42 …

あ、これでいいんじゃないか。

第2回 「単一代入」と「末尾再帰」 | 日経 xTECH(クロステック) を読み直して、思いついた。http://www.hizum.net/diary/?date=20060913#p01 の closure を以下のように変えればいいのではないだろうか。 /closure { [currentdict dup length dict copy /b…

PostScript の変数の評価

http://www.hizum.net/diary/?date=20060913#c03 より。手続き A 内で変数を評価するとき、手続きが生成された時点での値を使いたい場合どうすればいいかという話です。長くなったので、コメント欄ではなく、こちらに書きます。 まず、 hoge 部分に {} があ…

コマンドライン引数

以前から PostScript script でコマンドライン引数を利用できないかと思っていたのだけど、Ghostscript でコマンドライン引数を利用する方法がわかったのでメモ。 PostScript ファイルを指定して Ghostscript を起動する時に gs -- ファイル名 arg1 arg2 ...…

=only って初めて見た

anarchy golf - the source code で =only という手続きが使われていた。動作はスタックの一番上にあるものを標準出力に出力して改行しない、という "=" の改行なし版のようなのだけど、web 上で読めるリファレンスに見当たらない。一体何なのかと思ってちょ…

黄金の回転

PostScript 的にはこうですかね。 %!PS gsave 3 dict begin mark /clockwise? false def /a 4 def /phi 5 sqrt 1 add 2 div def 300 300 a a clockwise? not{neg}if 10{ 4 copy rectstroke 3 2 roll add exch dup phi mul exch clockwise?{neg}if 4 copy rec…

PostScript のバイナリ化の話の続き

id:yshl:20070327:1174995564 のお返事をいただきました。 3番目も典型的な「やばい正規表現」になってました。他のエスケープも考慮すると、多分一番内の(?:)を単に(?:[^()\\]|\\.)+にするだけでよさそうな気がしますがどうでしょう。 http://www.nmt.ne.jp…

NMTnet|404 Not Found エラー のプログラムについて

バグを見つけたかもしれない。 Helvetica-Bold などの - を含んだ単語が変換されない。hoge10 のように数字を含んだ単語があると、数字部分がバイナリーに変換される。 42 行目の s@($p)|(\s+\d\s+|\s*[-\d]\d+\s*)|(/\w+|\s*[a-zA-Z]+\s*)@ は s@($p)|(\s+\…

あなごおる

標準入力を読むには (%stdin)(r)file とするしかないのだろうか。 追記:標準入力が数字だけで一気に読み込みたい場合は (%stdin)run が使えるかな。 anarchy golf - Fibonacci Numbers PostScript で書いた 1 0 46{2 copy add dup =}repeat というプログラム…

1+1 は田んぼの田

PostScript のインタープリターを使うと、1+1 = と聞いたら "田" であると答えるようにコンピュータを仕込めます。 % gs -q -dNODISPLAY GS> /1+1 (田) def % 1+1 を "田" という文字列であると定義する GS> 1+1 = % 1+1 を表示する 田 GS> quit = はスタッ…

球内に閉じ込められた 30 個の電荷

立体視できます。 面倒だったので、加速度ではなく速度が力に比例するようにしました。電流が電圧に比例している様子をイメェジしてください。たぶん抵抗が大きいのでしょう。 球の表面での反発係数は 0 です。面倒だったので。 途中から時間ステップが 20 …

共鳴する振り子

例の如く PostScript で書いて ImageMagick で変換。 「どんな時に共鳴が起こるかな? Let's パラメータをいろいろ変えてみよう!」 実際に下のプログラムを実行してみてくれる人なんているのだろうか。 以下ソース

東京=トンキン=ハノイ=河内=大阪府東部

http://www.kernelthread.com/hanoi/html/ps.html のプログラムは、PostScript なのになんで動かす手順を文字で表示するだけなのだろう。 ということで PostScript でハノイの塔を解くプログラムを書いて gif アニメ化した。 以下はソース。日本語化が不完全…

Collatz 予想

Collatz 予想の関数 を 1 〜 100 の整数に何度も作用させた時の値の変化をアニメーションにしてみた。例によって PostScript で書いて ImageMagick で変換し、作成。 ところで キミならどう書く 2.0 - ROUND 2 - — Lightweight Language Ring の問題ですが、…

ψにΦ

の解の一つ, , (正しく計算できていれば)を図にしてみた。 赤が実部、青が虚部、黒が絶対値です。

100までの素数を求めるプログラム

キミならどう書く 2.0 - ROUND 1 - — Lightweight Language Ring 誰も PostScript で作ってないようなので、作ってみた。〆切は過ぎているけど。g:eszett:id:yshl:20060701:p1 グループ日記のスーパーpre記法の拡張で、プログラムのソースに色をつけられるよ…

手書き PostScript で重力レンズ

質点が作る重力レンズが白丸の手前を通過した時どう見えるか。 市松模様の手前を通過した時どう見えるか。

手書き PostScript でステレオグラム

うまく作れていれば、○の中に★があるのが見えるはず 以下ソース

手書き PostScript で円制限三体問題

円制限三体問題を PostScript で数値計算してみた。 円制限三体問題というのは、重力によって 2 個の質点が円軌道で公転している中に、もう 1 個他の質点に及ぼす重力が無視できるくらい小さい質点を置いた時、どう運動するか、という問題です。ラグランジュ…

PostScriptでライフゲーム

よくあるプログラムだろうけど、せっかく作ったので載せます。 どうも手続き型言語風な書き方になってしまいます。

Ghostscript についてくる Calligraphic-Hiragana というフォントでは、や行の「い」と「え」、わ行の「う」が、あ行とは別に存在している。あと、や行の「え」の字体が「わ」のような形をしている。

手書きPostscript その4

惑星とか月っぽいもの 重いので続きを読む記法で

手書き Postscript 3 の続き

以前、二重振り子の gif アニメを Postscript と ImageMagick で作った時、背景を透明にすると残像が生じていた。これは、ImageMagick の convert に -dispose オプションを付けていなかったために、次のフレームを上書きするように設定された gif ファイル…

手書きPostscript その3

パラメータを変えてみる。 背景を透明にすると、なぜか残像が見える。

手書き Postscript その2

二重振り子 ソースは

手書き PostScript

PostScript でお絵(というか字)書き %!PS-Adobe-2.0 %%BoundingBox: 0 0 67 50 1 39 moveto 1 0 0 setrgbcolor /Times-Roman findfont 16 scalefont setfont (yshl) show 1 23 moveto 0 1 0 setrgbcolor /Symbol findfont 16 scalefont setfont (yshl) show …

Postscript script

Postscript をシェルスクリプトのように実行する方法 Wayback Machine について。 良くこんなの考えたものだと思いつつ、試してみたのだが、Ghostscript にオプションを渡そうとしても、うまくいかない。 Linux などでは、1行目に複数のオプションを書いても…