ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing】均一なノイズをつくるPoison-disc Samplingをやってみた

成果物

www.youtube.com

このアルゴリズムは、何をするのか謎だったのですが、Blue Noiseという、均一なノイズを生成するアルゴリズムのようです。他のアルゴリズムは、動作が遅いそうで、早いということがこのアルゴリズムのメリットのようです。意外と苦戦しましたが、二次元配列にも対応させました。

仕組み

STEP0

画面を適切な数に分割します。(一マスには点一つというルールがあります)

STEP1

スタート地点を決めて、アクティブの点の中に入れます。

STEP3

アクティブの点をいくつか選びその周りに候補を決めます、候補の周りのグリッドを探し、近すぎる点がなければ、候補をアクティブの中に追加します。k回繰り返しても候補が確定しなければ、選んでいる点をアクティブの中から除外します。

コード

二次元配列対応させたバージョンはこちらです。