======================================================================= 【ソ フ ト名】 カオスが動く!3次元リヤプノフ空間生成 Ver 1.1 【登 録 名】 3Dlyap11.lzh 【検索 キー】 1:3Dlyap 2:$WIN32 【著作権 者】 谷口 幸夫 MXA01205@nifty.ne.jp http://www1.usen.ne.jp/~yuki-ta/ 【対応 環境】 Window95 以上、トルーカラー(24ビット)以上 【動作 確認】 NEC PC9821BP (Windows95) SONY PCG-505EX (Windows95) 【掲 載 日】 1999/08/21 【作成 方法】 LHA にて解凍を行う。 A> LHA E 3Dlyap11 【ソフトウェア種別】 フリーソフトウェア 【転載 条件】 事後でもかまわないので、私宛にメールをください。 ======================================================================= ダウンロードファイル名を『3Dlyap11.lzh』としてください。 ======================================================================= 【改版の履歴】 Ver 1.0 初版 Ver 1.1 AVIファイル作成時にフレームレートの指定する機能を付加 BMPファイル列を一括消去する機能を付加 AVIファイル作成時のエラー処理を改良 【ソフト紹介】 作者が96年に発表した「リヤプノフ・スクリーンセーバー」(LYAPUN10.LZH、 NIFTY-Serve FWINAL LIB10 #440)の発展版です。 「リヤプノフ・スクリーンセーバー」はリヤプノフ空間というカオス図形を次 々と描画するソフトでした。これを3次元に拡張し、第3座標軸を時間に割り当 てることにより、動画化を実現しました。 描かれるのは完全に数学的な図形ですが、敢えて言葉で表せば、「黒い筋のつ いた軟体動物がその模様を変えながら伸び縮みする」ような、少し気味悪いと同 時に美しい(?)図形です。 本ソフトは Windows標準の動画フォーマットであるAVIファイルを出力しま す。例えば Windows付属の「メディアプレーヤー」などで鑑賞して下さい。 設定する「パラメータ」を変えることにより、無数の動画パターンが作成でき ます。 【ファイル内容】 3Dlyap11.lzhには、以下の2つのファイルが圧縮されています。 readme. txt ------ 説明書 3Dlyap .exe ------ プログラム本体 【概 要】 3Dlyap.exe ---> ***000.bmp ***001.bmp ***002.bmp : <--- 3Dlyap.exe ---> ***.avi ---> メディアプレイヤ等で再生 (1) 3Dlyap.exe により、動画の元となる一連のBMP画像ファイルの組を作 成します。このBMPファイルの名前は以下の形式で作成されます。 (基本部分)(連番).bmp (連番)は3文字以上から成り、3文字未満の数字は左に0パッディング されます。 例 sample019.bmp (2) 3Dlyap.exeを用いて、これらのBMPファイルの組から一つのAVI動画 ファイルを作成します。 (3) 例えば Windows付属の「メディアプレイヤ」等を用いてこのAVIファイ ルを再生します。 【使 い 方】 1 本ソフトを起動します。 メインのダイアログポックスが開きます。 2 BMPファイル名の入力 (1) "Input ROOT Name" ボタンを押します。 ファイル名入力用のダイアログボックスが開きます。 この中で、これから作成するBMPファイルのディレクトリと(基本部 分)を入力します。 例 sample sample.bmp いずれの形でも良い。 (2) "START Number" に連番の一番最初の番号を入力します。 例 0 (3) "END Number" に連番の一番最後の番号を入力します。 例 99 (END Number) - (START Number) + 1 の数の画像が作成されます。 この数が多いほど、滑らかな動きの動画になります。 3 BMPファイル列の作成 (1) "Parameter" にABCの文字の組み合わせを入力します。 このパラメータ列を変えることにより、描画される画像を様々に変化さ せることができます。 ABCの個数や順序は任意ですが、ABCの各文字は最低でも一つ含ま ないといけません。またABCは半角で入力して下さい。ABC以外の 文字はスペースも含めCと認識されます。 例 ABBCCAC 傾向として、文字数が多いほどより複雑な図形が作成されます。 (2) "Width" に作成する画像の横のサイズをピクセル単位で入力します。 (3) "Height" に作成する画像の縦のサイズをピクセル単位で入力します。 (4) "Gamma" に作成する画像の階調を正の整数で入力します。 この値を大きくするほど描画図形が黒っぽくなります。 (5) "Repeat" に計算の繰り返し数を入力します。 この値を大きくするほど描画図形がより正確になりますが、描画スピー ドは遅くなります。 上記の各設定条件の具体的な意味は、後述の【参考:描画方法】をご覧 下さい。 (6) 最後に "Make" ボタンを押します。 計算用の Window が開きます。 メニュー"Start" をクリックします。計算が開始されます。 計算が終了すると Window の下のステータスバーに「計算終了」と表示 されます。 途中で計算を中止したいときはメニュー "Stop" をクリックして下さい。 一連の計算によりBMPファイルが作成されます。 上記の入力例では、 sample000.bmp -> sample099.bmp までの100個のファイルが作成されます。 (7) 計算が終了したら、メニュー "Exit" をクリックして計算用 Window を 閉じます。 4 AVIファイルの作成 (1) "Frame Rate" に一秒当たりに再生するフレーム数を入力します。 (2) "Make AVI File" ボタンを押します。 ファイル名入力用のダイアログボックスが開きます。 この中で、AVIファイル名を入力します。 例 sample sample.avi いずれの形でも良い。 (3) 「開く」ボタンを押します。 「ビデオ圧縮」指定用ダイアログが開きます。 圧縮の形式を指定して、OKボタンを押します。 BMPファイルを元にAVIファイルが作成されます。 ファイルの作成が終了するとメッセージが表示されるので、OKをクリッ クして下さい。BMPファイルの数が多いと、このメッセージの表示まで に長時間かかります。 5 BMPファイルの削除 (1) "Delete BMP Files" ボタンを押します。 確認のためのダイアログボックスが開きます。 「はい」を押します。 BMPファイルの組みが一括して消去されます。 ファイルの消去が終了するとメッセージが表示されるので、OKをクリッ クして下さい。 6 最後に"End" ボタンを押してプログラムを終了します。 7 できたAVIファイルを「メディアプレーヤー」などで鑑賞して下さい。 「メディアプレーヤー」は画面左下のスタートから以下の方法で起動します。 スタート/プログラム/アクセサリ/マルチメディア/メディアプレーヤー 【参考:描画方法】 リヤプノフ画像、及び描画方法について簡単に説明します。 「リヤプノフ空間」とは一種のカオス図形であり、Mario Markus 氏により 提案されました。詳しい内容は以下の文献をご覧下さい。 A.K.デュードニー、リヤプノフ空間へのワープ、別冊日経サイエンス、 コンピューターレクリエーションW 遊びの展開、日経サイエンス社、 1995年6月20日 この文献ではリヤプノフ空間を作成するアルゴリズムと、これにより作成さ れたサンプル画像が掲載されています。このアルゴリズムは大体以下の様に 表現されます。 for(aの値を少しづつ増やす) for(bの値を少しづつ増やす) { aとbの値をパラメータとした「変形ロジスティック関数」の「リ ヤプノフ 指数」を求める ; (a,b)で表される座標にこのリヤプノフ指数の値に対応させた 輝度で点を描く ; } ここで「ロジスティック関数」とは、Fr(X)=rX(1-X)であり、「変形ロジス ティック関数」とは r の値としてaとbをある一定のパターン(パラメータ 列)で変えながら繰り返した関数です。例えばパラメータ列としてa→a→b →bを選んだ場合の変形ロジスティック関数は以下の式で表されます。 Fb( Fb( Fa( Fa( X )))) 「リヤプノフ指数」とは、ある関数で定義される写像の繰り返しにより生成さ れる数列の、”予測不可能性”を表します。本プログラムではこの繰り返しの 回数として、"Repeat"での設定値が使われます。この回数が大きいほどより正 確なリヤプノフ指数が求められます。 このアルゴリズムでも興味深い画像が無数に作成できます。しかし、このリ ヤプノフ空間は2次元であり、静止画しか出来ません。それで3次元に拡張 して動画化を試みました。上記のアルゴリズムを以下のごとく変形しました。 for(aの値を少しづつ増やす) for(bの値を少しづつ増やす) for(cの値を少しづつ増やす) { aとbとcの値をパラメータとした変形ロジスティック関数の ”リヤプノフ指数”を求める ; (a,b,c)で表される座標にこのリヤプノフ指数の値を対 応させる ; } 本プログラムではスクリーン上でaを縦軸にbを横軸にとり、第3の座標c を時間と考えて動画表示を実現しました。abcの値は0.5から4.5まで変化 させています。 得られたリヤプノフ指数から輝度を求めるにあたり、以下の式を用いていま す。 (a)(階調)*(リヤプノフ指数)<-256 の場合 (輝度)= 0 ・・・ 黒 (b) -256<(階調)*(リヤプノフ指数)<0 の場合 (色) = 黄色 (輝度)= 256+(階調)*(リヤプノフ指数) (c) 0<(階調)*(リヤプノフ指数) の場合 (色) = 青色 (輝度)= 255 (階調)の値として、"Gamma" での設定値が使われます。 【作者からのお知らせ】 以下のWWWで、作者作成の他のプログラムを紹介しています。あわせてご 覧ください。 http://www1.usen.ne.jp/~yuki-ta/
ホームページへ戻る