ねこでじ(Nekodigi)

Nekodigi’s diary

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

【Processing】Diamond-Square AlgorithmでPlasma Fractalを作る

成果物

f:id:Nekodigi:20200329194722j:plain
Plasma Fractalはフラクタルの一種で、拡大しても同じようなパターンが見えます。生成するさいも、再帰的に計算していきます。プラズマや宇宙背景放射のように見えます。

仕組み

まず、2のn乗+1の正方形のマスを作ります。そして、四つの角にランダムな数をセットし、以下のステップを繰り返します。

  1. 正方形の中心のマスの値を4つの角の平均+ランダムな数値にセットします。
  2. 正方形の4辺それぞれで中央のマスを辺の始点と終点の平均+ランダムな数値にセットします。

分割された正方形にも再帰的に作業を繰り返していけば、ノイズが完成します。どの程度ノイズを加えるかによってパターンが変化します。
https://upload.wikimedia.org/wikipedia/commons/b/bf/Diamond_Square.svg
この説明はWikipediaの解説をもとにしています。ぜひご覧ください。
Diamond-square algorithm - Wikipedia

コード

github.com