アスキーアートエディター作ってみました

このエントリーをはてなブックマークに追加
568556
差の絶対値のアルゴリズムは実際に使ったことがあるから
大体どうなるかは予測できるけど、モノクロ限定の方は使ったことないんだよなぁ。
Oh!X1999夏号に書いてあったやり方です。詳しくは本を参照して下さい。

今度のやり方はライン単位で計算していきます。(この説明では縦は16ドットとします)
まず原画と文字をXORし、異なっているビットの場所を明らかにします。
原画1001,0100,0001,1000(見やすいように4bit毎に区切っています)
文字1000,1100,1001,1100 の場合、
X0R 0001,1000,1000,0100 となり、
1になっているところが原画と違っている場所になります。

今度のやり方ではこの違っている個所をそのままカウントするのではなく、
"ライン毎のドット(bit)の並びの似ている度合い"を求めます。

原画の、各ビットと最も近いところにある1のビットとの距離を求めると、
原画1001,0100,0001,1000
距離0110,1012,3210,0123
になります。
自分自身が1の場合距離は0で、隣にあると1、隣の隣だと2、となっていくわけです。
XORで求めた異なっている場所の距離を足したものが、
"ライン毎のドット(bit)の並びの似ている度合い"で、
距離0110,1012,3210,0123
X0R 0001,1000,1000,0100 なので
  ***0,1***,3***,*1** を足した5が並びの似ている度合いです。