===========================================================================
【ソ フ ト名】 リヤプノフ スクリーンセーバー Ver 1.0
【登 録 名】 LYAPUN10.LZH
【検索 キー】 1:LYAPUNOV 2:$WIN16 3:#SCR
【著作権 者】 谷口 幸夫 XMA01205
【対応 環境】 日本語版Windows 95, 日本語版Windows 3.1
【動作 確認】 NEC PC9821BP(日本語版 V3.1、日本語版 95)
【掲 載 日】 1996/06/13
【作成 方法】 LHA にて解凍を行う。 A> LHA E LYAPUN10 (リターン)
【ソフトウェア種別】 フリーソフトウェア
【転載 条件】 転載を希望される方は、事前に私宛にメールをください。
===========================================================================
ダウンロードファイル名を『LYAPUN10.LZH』としてください。
=======================================================================
【ソフト紹介】
「リヤプノフ空間」という、軟体動物のようなカオス図形を次々と描画してゆく
スクリーンセーバーです。デュードニー氏は「ダリ(Salvador Dali)の弟子の作
品と言っても通用しそう・・・」と表現しています。毎回異なる図形を描画する
ので見飽きません。レイアウト、配色など、自分の好みの設定が可能です。ぜひ
一度ご覧下さい。
【ファイル内容】
LYAPUN10.LZH には、以下の2つのファイルが圧縮されています。
README .TXT ・・・・・・ 説明書(いま呼んでいるファイル)
LYAPUNOV.SCR ・・・・・・ スクリーンセーバー・モジュール
【使 い 方】
1 インストール
LYAPUNOV.SCRをWindowsの起動ディレクトリにコピーして下さい。
2 設定
Windowsの「コントロールパネル」において、本スクリーンセーバーを選択したの
ち、通常の方法に従い以下の各種の条件を設定して下さい。”default”ボタンを
押すことにより、標準の設定となります。
@ パラメータ種 : 「A,B」か「A,B,C」のいずれかを選択します。
後者の方がより複雑な図形を描画します。
A パラメータ列長 : 2から99までの整数の値を入力します。大きくす
るほど描画図形がより複雑になりますが、描画スピー
ドが遅くなります。
B パラメータ列を表示 : チェックするとパラメータ列の内容をスクリーン左上
に表示します。
C レイアウト : 「1面付け」、「4面付け−中央」、「4面付け−四
隅」のいずれかを選択します。
D 表示色 : 描画における図形の色を設定します。複数の色をチェ
ックした場合、描画ごとにこれらの中からランダムに
1色を選択します。
E 背景色 : 描画における背景の色を設定します。複数の色をチェ
ックした場合、描画ごとにこれらの中からランダムに
1色を選択します。
F 計算精度 : 正の整数の値を入力します。大きくするほど描画図形
がより正確になりますが、描画スピードは遅くなりま
す。
G 階調 : 正の整数の値を入力します。大きくするほど描画図形
が黒っぽくなります。
各設定条件の具体的な意味は、後述の【参考:描画方法】をご覧下さい。
【削除方法】
このスクリーンセーバーを削除する方法を示します。
@ ファイルLYAPUNOV.SCRを削除する。
A (任意のエディターにより)ファイルCONTROL.INI中の[ScreenSaver.リヤプノフ]
で始まるセクションを削除する。
【参考:描画方法】
以降は、本スクリーンセーバーのプログラムに興味のある方のみ、お読み下さい。
リヤプノフ画像、及び本スクリーンセーバーにおける描画方法について簡単に説
明します。
「リヤプノフ空間」とは一種のカオス図形であり、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 ))))
「リヤプノフ指数」とは、ある関数で定義される写像の繰り返しにより生成され
る数列の、”予測不可能性”を表します。本プログラムでは繰り返しの回数には、
「F計算精度」での設定値が使われます。この回数が大きいほどより正確なリヤ
プノフ指数が求められます。
このアルゴリズムでも十分多くの画像が作成できますが、本スクリーンセーバー
では同一図形の描画を避けるため、及びより複雑な図形を描かせるために、変形
を加えました。上記のアルゴリズムを以下のごとく”3次元”に拡張しました。
for(aの値を少しづつ増やす)
for(bの値を少しづつ増やす)
{
cの値を適当に設定する ;
aとbとcの値をパラメータとした変形ロジスティック関数のリヤプノフ指
数を求める ;
(a,b)で表される座標にこのリヤプノフ指数の値に対応させた輝度で点
を描く ;
}
パラメータ列にcを加えるかどうかは「@パラメータ種」で設定します。また、
パラメータ列は最初の2つはa→bを選択し、3つ目以降は「Aパラメータ列長」
での設定値に達するまでabもしくはabcの中からランダムに選んでゆきます。
cの値は0.5から4.5の範囲で乱数により決定します。
スクリーン上でaを縦軸にbを横軸にとり、aは0.5から4.5まで、bはそれにあ
わせて変化させます。
得られたリヤプノフ指数から輝度を求めるにあたり、本スクリーンセーバーでは
以下のルールを用いています。
(リヤプノフ指数)<-256 → (輝度)= 0 ・・・ 黒
-256<(リヤプノフ指数)<0 → (色) = 表示色、
(輝度)= 256+(階調)*(リヤプノフ指数)
0<(リヤプノフ指数) → (色) = 背景色、(輝度)= 255
このとき表示色と背景色には「D表示色」と「E設定色」で設定した色が、階調
には「G階調」での設定値が使われます。
以上