ギンの備忘録

デジタルアートやプログラミングやテクノロジー関連のこと。

合成したストレンジアトラクターの分析

はじめに

前回、ストレジアトラクターを複数個用意して合成する手法を紹介しました。

gin-graphic.hatenablog.com

今回は合成したストレンジアトラクターについて分析をしていきます。

合成ストレンジアトラクター

今回説明で用いる合成ストレンジアトラクターはde Jong アトラクター、Clifford アトラクター、Jason Rampe 1st アトラクターの3つを合成したものとします。

x_n+1 = sin(a*y_n) + cos(b*x_n);
y_n+1 = sin(c*x_n) + cos(d*y_n);
x_n+1 = sin(a*y_n) + c*cos(a*x_n);
y_n+1 = sin(b*x_n) + d*cos(b*y_n);
  • Jason Rampe 1st アトラクター
x_n+1 = cos(b*y_n) + c*sin(b*x_n);
y_n+1 = cos(a*x_n) + d*sin(a*y_n);

3つを合成したものが下になります。

f:id:gin_graphic:20220310134311p:plain:w400

合成したものを分解

3つを合成した際に、どのストレンジアトラクターを用いたかを描画時に色分けしてみました。
 赤:de Jong アトラクター
 青:Clifford アトラクター
 緑:Jason Rampe 1st アトラクター
になります。

f:id:gin_graphic:20220310134317p:plain:w400

色分けするとわかりやすいのですが、各ストレンジアトラクターが別々の形を形成しているように見えます。

これを一つずつ抜き出してみます。
3つを合成して計算は行い、描画時に一つだけを描画してみます。

f:id:gin_graphic:20220310134331p:plain:w600

ストレンジアトラクターが別の形となっているようです。

元々のストレンジアトラクター

上で合成した時のパラメータを用いて、それぞれのストレンジアトラクターを独立に描画してみます。

f:id:gin_graphic:20220310134323p:plain:w600

細かい部分は異なりますが、赤と青は似たような形になっています。

緑については独立に計算すると収束していますが、合成したときには他のものの影響なのか形を成しています。
これは合成した時のみの振る舞いと考えられます。

合成したストレンジアトラクターを抜き出す

合成しても各ストレンジアトラクターを分解できることがわかりました。

そこで、3つ合成して中からde Jong アトラクターだけを抜き出して描画を何度も実行してみました。
実行毎にパラメータはランダムに選択しています。

下は24回連続して実行した結果です。

f:id:gin_graphic:20220310140631p:plain:w600

de Jong アトラクターを単独で描画すると収束する場合が多くあるのですが、
合成してから抜き出すとほとんど収束することは無くなりました。
もちろん収束する場合もありますが、頻度は低いようです。

合成後に抜き出した場合、合成するストレンジアトラクターの影響を受けるため、
描画される形が好みのなるかという問題はありそうです。
何を組み合わせれば好みの形になるかを試行錯誤する手間が増える可能性はあります。

ただ、合成して抜き出しを行うことで、収束させずに形を形成させるという観点ではメリットもありそうです。

おわりに

ストレンジアトラクターを合成した時の振る舞いを分析しました。

ストレンジアトラクターを合成した場合、合成に用いた各ストレンジアトラクターは別々の形を形成していることがわかりました。
また、合成前のストレンジアトラクターが収束している場合でも、合成後は何かしらの形を形成することがあるようです。

ストレンジアトラクターを合成し、その中から一つを抜き出すことで、
描画されるストレンジアトラクターの収束頻度が低くなることもわかりました。
合成後に抜き出す手法で、ストレンジアトラクターを用いた作品を作るときに選択肢が増やすことができそうです。


参考にde Jong アトラクターを3つ合成し、その内一つを描画する ソースコード をopenprocessingに置いておきました。