成果物
このアルゴリズムは、何をするのか謎だったのですが、Blue Noiseという、均一なノイズを生成するアルゴリズムのようです。他のアルゴリズムは、動作が遅いそうで、早いということがこのアルゴリズムのメリットのようです。意外と苦戦しましたが、二次元配列にも対応させました。
仕組み
STEP0
画面を適切な数に分割します。(一マスには点一つというルールがあります)
STEP1
スタート地点を決めて、アクティブの点の中に入れます。
STEP3
アクティブの点をいくつか選びその周りに候補を決めます、候補の周りのグリッドを探し、近すぎる点がなければ、候補をアクティブの中に追加します。k回繰り返しても候補が確定しなければ、選んでいる点をアクティブの中から除外します。
コード
二次元配列対応させたバージョンはこちらです。