ソフトの砂場(面積保存型カオス)

最終更新日:1999年01月24日

 [1]を参考に、何種類かの面積保存型カオスについて、パラメータを変えながら描画するプログラムを作成してみました。

図形一覧

プログラムの説明

 ここで作成したプログラムは、パラメータを変えながら上図のような画面を描画するプログラムと、パラメータを指定して一つの図形を描画するプログラムの二種類です。両方とも同じアルゴリズムで描画します。

 描画に用いる計算式は次のとおりです。

回転のカオス(0)
Xn+1 = Yn + a*Xn + 2/(1+Xn**2)
Yn+1 = -Xn
網目状のカオス(1)
Xn+1 = Yn + a*Xn + 3*Xn/(1+Xn**2)
Yn+1 = -Xn
円環状のカオス(2)
Xn+1 = Yn + a*Xn - 3/(1+Xn**2) + 6
Yn+1 = -Xn
強制系のカオス(3)
Xn+1 = Yn + a*Xn + 3/(1+Xn**2)
Yn+1 = -Xn + 5*(-1)**n

実装

 このプログラムは、[1]を基に、Yamada,Kさんが作成された、「Win32用 基本グラフィックス・クラスライブラリ GLIBW32 ver1.23」を使用して作成しました。このライブラリは高度な機能を備えているのですが、相変わらず、低水準の利用方法になっています ^^;

 一覧を描画するプログラムは、aの値を-1.99から指定された幅で増加させながら、図形を描画していきます。各図形は、5万点描画しています。また、その時用いたaの値も、その図形の描画領域内に表示しています。各図形を描画するサイズは100x100ドットで、これが(-20, -20)-(20, 20)の座標系に対応しています。

 図形を一つ描画するプログラムは、400x400ドットの範囲内に、指定された座標系を対応させています。こちらは、その図形を100万点描画しています。

 初期値はいずれも、X0 = 4, y0 = 0としています。

実行

 caoscat.exeが一覧を描画するプログラムで、これを実行すると、まずどの式を用いるかを選択します。次に、aの値を増加させる幅を指定します。上の図は、網目状のカオスでaの値を0.02ずつ増加させたときのものです。描画中にマウスを左クリックすると、描画を中断します。その状態でマウスを右クリックすると、描画を再開します。

 caosview.exeが指定されたパラメータで図形を描画するプログラムで、これを実行すると、どの式を用いるか、aの値をどうするか(増加させる値ではありません)、描画する範囲を指定します。描画する範囲は、例えば100を指定すると、(-100, -100)-(100, 100)の範囲をウィンドウ内に描画します。網目状のカオスで、aの値を1.85、描画する範囲を50にすると、下図のような結果が得られました。

図形の詳細

ダウンロード

ファイル名 caoscat.lzh
バージョン 1.0
ファイルサイズ 172Kバイト
OS Windows NT 4.0 (Windows 95/98でも動作すると思いますが未確認です)
アーカイブの内容 caoscat.exe ... 図形一覧描画プログラム
caosview.exe ... 図形詳細描画プログラム
caoscat.txt ... 簡単な説明
備考

雑感

 パラメータを少しずつ変えながら描画するのが面倒なので、一覧表示するプログラムを作ってみました。パラメータが少し変わるだけで、図形がずいぶん変化するものです。

参考文献・リンク

  1. 井上 博, 上田哲史, CによるカオスCG, サイエンス社, 1994
  2. Yamada,K, Win32用 基本グラフィックス・クラスライブラリ GLIBW32 ver1.23

ホーム