8近傍まで考慮した塗りつぶしアルゴリズム
Posted: 2013年1月04日(金) 16:31
あけましておめでとうございます。
塗りつぶしアルゴリズムについて質問です。
現在、よくあるペイントソフトにあるような塗りつぶしアルゴリズムを考えています。
通常の塗りつぶしアルゴリズムは4連結領域(上下左右の連結のみを考える領域)を塗りつぶしますよね。たとえば次の図を見てください。
□■■□■
■■■■□
□□■□□
■□□■■
■■□■□
の最上段,左から2列の点(1,2)を指定すると
□■■□□
■■■■□
□□■□□
□□□□□
□□□□□
の領域が塗りつぶされます。
このアルゴリズムはシードフィルアルゴリズムの名前で広く知られていますね。
しかし、私がいま考えているアルゴリズムは4連結ではなく8連結の塗りつぶしアルゴリズムです。つまり、上下左右に加えて四方斜め方向の連結も考慮します。
□■■□■
■■■■□
□□■□□
■□□■■
■■□■□
の最上段,左から2列の点(1,2)を指定すると
□■■□■
■■■■□
□□■□□
□□□■■
□□□■□
の領域が塗りつぶされます。
質問
1.このようなアルゴリズムはどこかに公開されていますか?
2.皆さんだったらどのように実装しますか?
返信お待ちしております。
ご協力ありがとうございます。
塗りつぶしアルゴリズムについて質問です。
現在、よくあるペイントソフトにあるような塗りつぶしアルゴリズムを考えています。
通常の塗りつぶしアルゴリズムは4連結領域(上下左右の連結のみを考える領域)を塗りつぶしますよね。たとえば次の図を見てください。
□■■□■
■■■■□
□□■□□
■□□■■
■■□■□
の最上段,左から2列の点(1,2)を指定すると
□■■□□
■■■■□
□□■□□
□□□□□
□□□□□
の領域が塗りつぶされます。
このアルゴリズムはシードフィルアルゴリズムの名前で広く知られていますね。
しかし、私がいま考えているアルゴリズムは4連結ではなく8連結の塗りつぶしアルゴリズムです。つまり、上下左右に加えて四方斜め方向の連結も考慮します。
□■■□■
■■■■□
□□■□□
■□□■■
■■□■□
の最上段,左から2列の点(1,2)を指定すると
□■■□■
■■■■□
□□■□□
□□□■■
□□□■□
の領域が塗りつぶされます。
質問
1.このようなアルゴリズムはどこかに公開されていますか?
2.皆さんだったらどのように実装しますか?
返信お待ちしております。
ご協力ありがとうございます。