周期的ノイズについて(2020.06.12)

はじめに

 このページでは、以下の作品の解説をします:

といっても、ほぼ以下のツィートで完結していると思いますが、 こちらのページにもまとめておきます:

周期的ノイズの仕組み

 詳細は @deconbatch さんnote 「周期的パーリンノイズ」 に全て書かれているので、そちらに譲ります。

動画で学びたい人は、英語ですが、The Coding Train さんの動画 Coding Challenge #136.1: Polar Perlin Noise Loops でも解説されているので、そちらをご覧になって下さい。

cnoise 関数の仕組み

 周期的ノイズとは、円周上に定義されたノイズに他ならないので、 周期は 2π となります。

任意の周期で周期的なノイズを作りたい場合は、 周期を c とすれば、関数

$$ f(t)=t\cdot\frac{2\pi}{c} $$

は f(t+c)=f(t)+2π を満たすため、 この値を用いて、次のコードのように周期的ノイズの計算に利用すれば 任意の周期 c (ただし c≠0)からなる周期的ノイズが得られます。

noise(cos(f(t))+1,sin(f(t))+2) 

 周期的ノイズを使えば、ぐるりと閉じた魅力的な閉曲線も描けるようになります。 これはなかなか使い勝手の良い方法なのではないかと感じています。

 円周上で noise 関数を定義するなんて、 うまい方法を考えつく人がいるものだなぁ、 と驚くばかりです。