Lyapunov Fractal
リアプノフ・フラクタルはロジスティック写像をベースとしたフラクタルの一種です。 このリポジトリでは、リアプノフ・フラクタルを体感できるものを展示しています。
提供しているもの
Python用は学習用途、EXE版は利用用途で公開しています。
Python版
matplotlibを使ってリアプノフ・フラクタルを描画します。
git clone https://github.com/GRGSIBERIA/lyapunov-fractal.git
EXE版
誰でも使えるようにした実行ファイルです。 AVX2対応のため、2011年以降に発売されたCPUでのみ対応しています。
使い方
EXE版に絞って使い方を説明します。
設定ファイルの読み書き
LOAD TOML SETTINGSで設定ファイルを読み込み、SAVE TOML SETTINGSで設定ファイルを保存します。 SAVE TOML SETTINGSでこれまでの作業を保存することができるため、気に入った図形が現れたら保存することをお勧めします。
設定の仕方
WidthとHeightで図形の解像度をピクセル単位で指定します。デフォルトは両方とも512
です。
実際に画面に描画されるサイズは512x512
で固定されます。
AVX2で動かすために解像度は8の倍数で与えてください。
Sequenceでは、A
とB
の文字を使って文字列を作ります。
例えば、AABBABAB
のような文字列を与えると、それに沿ったフラクタルを作ることができます。
応用的に、AA3B4
のような文字列を与えると、AAAABBBB
という文字列に展開できます。
A
もしくはB
のあとに任意の数字を入力することで、長い文字列を作ることができます。
Number of iterationsは周期列の長さです。8の倍数で与えてください。 同じ文字列でも周期列が異なると、全く別物の図形が現れます。
a_min, a_max, b_min, b_maxは、それぞれ図形が取りうる最大値と最小値です。
画面では横軸をA、縦軸をBに置き換えています。
座標の原点は左上です。
a
, b
はそれぞれ a_min < a_max
かつ b_min < b_max
の範囲で値を指定してください。
Initial x valueでは、フラクタルが成長するための初期値を設定できます。
初期値による振る舞いは全く予想ができないため、デフォルトの0.5
を指定することを推奨します。
ただし、値を動かすことによって結果が変わるため、慣れてきたら数字を色々と動かしてもいいと思います。
funcでは、フラクタルを生成する際に使用する関数を指定できます。 デフォルトではsimpleが指定されます。 指定できる関数にはsimpleとcyclicがあります。 simpleはリアプノフ・フラクタルのもとの発想で作られています。 cyclicでは、周期関数を使用するため、周期的な繰り返しが見られるフラクタルを生成できます。
constance 1とconstance 2はフラクタルの定数を入力します。
今のところ、cyclicのみconstance 1を使用します。
cyclicのconstance 1のデフォルト値は2.7
です。
フラクタルの実行と試行錯誤
設定が完了したらRUN LYAPUNOV FRACTALで図形を出力します。
出力された図形をもとに、a_min, a_max, b_min, b_max
をそれぞれ指定することで、
図形の拡大・縮小をすることができます。
T-Lボタンをクリックしてから、図形をクリックすると、図形の左上の座標を自動的にA
とB
に入力します。
また、B-Rボタンをクリックしてから、図形をクリックすると、図形の右下の座標が自動的にA
とB
に入力されます。
A
とB
を広く見たいときは、HOMEボタンをクリックすると、自動的にA
とB
に値が入力されます。
これらのボタンで座標を自動入力したら、再びRUN LYAPUNOV FRACTALを入力すると図形が再度出力されます。
画面右側にあるSET MIN COLORボタンとSET MAX COLORボタンは、それぞれ最小値と最大値の色味を指定することができます。
また、is Chaosチェックボックスがオンのときは、