home *** CD-ROM | disk | FTP | other *** search
- プログラム名:MANDEL.EXP
- 対応機種 :FM TOWNS(一部の機能は要RAM2MB )
- 作者 :木村文彦
-
-
- ● 口 上
-
- マンデルブロ図形とはフラクタル図形の一種で,フランスの数学者マンデルブロ
- により発見されたものです。配色を工夫することで,実に美しい様々なパターンを
- 見せてくれるのですが,どこでも美しいとは限らず,美しい場所を探すのはたいへ
- ん手間のかかることです。とくに,その計算には大変な時間を必要とするため,従
- 来パソコンではなかなか手軽に鑑賞するというわけにはいきませんでした。このプ
- ログラムで,TOWNSの386パワーとグラフィック機能を充分に活用して,手
- 軽にマンデルブロ図形の美しさを味わってください。
- なお,本プログラムは◎h!FM '90年6月号に寄稿したものですが,◎h!FM編集部
- および富士通のご好意により,この場を借りまして配布させていただきます。
-
-
- ● 準 備
-
- このプログラムはTownsOS上で使用します。TownsMENUで,次のようにア
- イテム登録するとよいでしょう。
- まず「MANDEL」ディレクトリを作成して,その中にプログラム本体である「MAN
- DEL.EXP」を格納します(このプログラムで扱うデータの「*.MDL」「*.MDC」もこ
- こに格納します)。そしてアイテム登録では,タイトルを「マンデルブロ」とでも
- し,パラメータのところは「\MANDEL\」とします。
- このプログラムには,位置や色のデータをファイルから呼び出したり,ファイル
- に保存したりする機能がありますが,このためのディレクトリはプログラムを起動
- した後では変更することができません。カレントディレクトリ以外のディレクトリ
- を使用する場合には,起動パラメータでディレクトリを指定するようにしてくださ
- い。なお,ディレクトリ名の最後には,ディレクトリであることを示す「\」記号
- が必要です。
-
-
- ● パッド操作
-
- このプログラムは,保存ファイル名を入力する場合を除いて,すべてTownsパッ
- ドで操作します。パッドはどちらのポートに差してもかまいません。
- 基本的に,決定する際にはAボタンを押し,中止する場合にはBボタンを押しま
- す。移動ボタンは,メニューなどの文字カーソル(緑色で表される)を移動したり,
- 描画画面のスクロール,拡大枠や十字カーソルの移動,数値の増減など,なんらか
- の移動を伴うものに使用しています。
- SELECTボタンとRUNボタンは補助的な機能に割り当てており,統一した意味はあ
- りません。強いていえば,SELECTボタンは選択に関した機能,RUNボタンは動作開
- 始に関する機能に割り当てました。実際の割り当ては,画面右下のメニューボック
- ス内に簡単に表示されますから,それを見てください。
-
-
- ● 基本的な遊び方
-
- 「マンデルブロ」アイコンをダブルクリックしてプログラムを起動すると,まず
- 四角い枠の中にオープニングメッセージが表示されます。ここでRUNボタンを押す
- と,マンデルブロ図形の全体図が表示され始めます。このときタイミングの関係で,
- RUNボタンを一度押しただけでは,表示が開始されない場合があります。その場合
- は描画が始まるまでRUNボタンを押し続けてください 。
- この全体図は,右上の枠内に表示されているように,上限回数が250回のもので
- す(フラクタルの繰り返し計算回数の上限。詳しいことは,◎h!FM '89年9月号p.
- 56からを参照してください)。 この図形は実にあっさりと表示されますが,同じ
- ことを8086マシンで行わせると,数時間から,下手をしたら数十時間はかかります
- (少なくとも,昔自作したものはそうでした)。同じTOWNSでも,80386用に
- コーディングされていないもの,たとえば前記掲載の80286用のMANDEL.COMと比較
- すると1桁ほど 高速になっています。
- さて,全体図を表示し終わったら,いよいよ景勝地の探索を始めましょう。
- SELECTボタンを押してメインメニューを表示してください。色々な機能のボタン
- が並んでいますが,この中から一番上にある「拡大」機能を選択します。上下の移
- 動ボタンを押して緑色の文字を動かし,Aボタンで決定します。
- 「拡大」を選択すると描画画面に四角い枠が表示されますから,これを移動ボタ
- ンで上下左右に動かし,またRUNボタンで枠を大きく,SELECTボタンで小さくした
- りして,拡大表示したい部分に枠を合わせます。位置が決ったらAボタンを押して
- 拡大描画を実行します。このときどこの部分を拡大するかで景観がずいぶんと違っ
- てきます。なるべく黒い部分に近くて色が込み合っているところを選ぶのが,美し
- い場所を見つけるこつです。
- 描画が始まると,最初は粗く,そして次第に細かく描画されていきます。こうす
- ることで,人間工学的に,より高速感が味わえるようにしたつもりです。もしも,
- 意図していた場所と異なっていた場合や,あるいはさらに拡大表示したいときには,
- 途中でBボタンを押して描画を中断してください。この状態で移動ボタンを押して
- 上下左右にスクロールしたり,さらにメニューを表示して拡大機能を使ったりでき
- ます。
- 描画を再開するときにはAボタンを押してください。このとき,描画はそのとき
- の描画間隔から再開します。ですから中断するのは画面走査が終わってすぐのとき
- が一番効率がよいといえるでしょう。
- このスクロール機能は全体図を表示しているとき以外はいつでも使えます。なか
- なか便利な機能です。長時間かかって描画したあげく,もう少し位置をずらしたか
- ったという場合には,面倒なので普通あきらめてしまうものですが,この機能のお
- かげで心ゆくまでフレーミングに凝ることができます。もちろんこのスクロールも
- リアルタイムに計算するものですから,繰り返し回数が多いとスクロール速度が遅
- くなります。なるだけ粗い描画状態のときに中断してスクロールしておくのがこつ
- です。
- さて,これ以上拡大しても代わり映えしそうにないなら,場所を変えましょう。
- このときスクロールで移って行ったのではたいへんです。どんどん拡大して行った
- 場合,全体図はとんでもなく大きくなっていることを忘れないようにしてください
- (最大で10Km以上になります)。こんなときには,メインメニューの中から「縮小」
- 機能を選びます。
- これは縦横それぞれ1/2に縮小するものです。これでも間に合わないようなとき
- には,メインメニューから「全体図」を選んで全体図に戻るのがよいでしょう。こ
- の全体図はメモリ上に計算結果を蓄えてありますから,一瞬で表示されます。
- ここで説明したほかにも,このプログラムには様々な機能があります。左下に表
- 示されるメッセージを参考にして,色々と機能を試してみてください。
- 最後に,プログラムを終えるときには,メインメニューの一番下にある「プログ
- ラム終了」を選択してください。
-
-
- ● 応用的な遊び方
-
- ちょっとおもしろい機能を2つばかり紹介しておきましょう。まずお気に入りの
- 場所を表示してください。このとき途中で止めずに最後まで描画させておいたほう
- がよいでしょう。準備ができたらメインメニューの中から「色設定」を選び,さら
- にそのサブメニューの中から「色間隔」を選んでください。ここでRUNボタンを押
- すと色が自動的に変化していきます。まるで生き物のような動きを見ることができ
- ます。この変化はエンドレスに続きますから,デモや鑑賞用にけっこう使えるので
- はないかと思います。止めるときには再びRUNボタンを押してください(Bボタン
- ではないので注意)。
- 次に,少しずつ成長していくさまを鑑賞してみましょう。Bボタンを押して「色
- 設定」サブメニューに戻り,さらにBボタンを押してメインメニューに戻ってくだ
- さい。この中から「上限回数」を選び,SELECTボタンを押して自動増加を実行させ
- ます。これで上限回数1回から初めて,自動的に上限回数を上げながら描画してい
- きます。上限回数が小さい間は画面は真っ黒ですが,そのうちに少しずつ,結晶が
- 成長するように,あるいは木の枝が伸びるように,画面が埋まってゆくのを鑑賞で
- きます。ただし,この機能は,原理的にメモリアクセスが頻繁に必要なため,描画
- 速度はかなり遅くなります。また,大量のメモリを必要とするために,残念ながら,
- 2MバイトタイプのTOWNSでないと動作しません。なお1MバイトタイプのT
- OWNSで動作しない機能はこれのみです。
- 拡大したり,上限回数を上げたりすると,比較的美しい景観の場所が見られるよ
- うになるのですが,もっと手軽に楽しめるのが,配色の変更です。同じ図でも配色
- によって全く違った様相を呈します。とくに,計算をし直す必要がないために,じ
- っと待たなくてすむのはありがたいことです。
- このプログラムではRGB各8ビット256階調からなる約1677万色中251色を自由
- に使用できます。初期画面の黒に相当する1色を除いた250色に割り当てられた色は
- 画面右中央部のパネル内 に横25列,縦に10行で表示されています。
- 手軽なわりに有効な配色の変更については,様々な機能を用意しました。これら
- の機能はメインメニュー内の「色設定」サブメニューに集めています。
- 個別に色を編集するには「個別設定」機能を使用します。ここではまず色番号を
- 決めてから,Aボタンを押して編集モードに入り,RGBをSELECTボタンで選びな
- がら,左右の移動ボタンで緑色のレベルバーを動かして色を変えていきます。なお,
- 編集する色番号を決める際には,左右の移動ボタンで1つずつ数値を変えるほかに,
- 画面から色番号を抽出してくる方法を用意しました。これにはSELECTボタンを使用
- します。十字カーソルが画面に表示さ れますから,移動ボタンで上下左右に動か
- して,抽出したい部分に合わせてAボタンを押してください。
- さて色編集は手軽ではあるのですが,芸術的センスが要求されかえって大変だと
- もいえます。そこで「色間隔」「グラデーション」などのおまかせ機能的なものを
- 用意しました。とくに,「色間隔」では,選択式にしてはけっこう様々なバリエー
- ションが楽しめます。
- なお,色データだけのファイルへの保存,読み込みもサポートしていますから,
- お気に入りの色パターンができたらファイルに保存しておくとよいでしょう。パス
- テル調や金属調,はたまたサイケ調やゴッホ調など作ると楽しいでしょう。ここま
- でくると,もはや芸術の領域のような気がします。
-
-
- ● データファイルについて
-
- このプログラムでは2種のファイルを扱います。1つは色データを収めたもので
- 拡張子が「.MDC」となっています。もう1つは色データのほかに,位置と分解能,
- 上限回数を収めたもので,拡張子は「.MDL」です。計算結果の保存は行いませんが,
- TOWNS用では改めて計算描画しても充分高速であるため,320Kバイトものフ
- ァイルを扱うよりよいと判断したからです。ちなみにこのプログラムで扱うデータ
- ファイルのサイズはそれぞれ753/767バイトとなっています。
- データを保存するときにはASCII文字の数字と英字しかファイル名に使えません。
- しかし,これは保存するときだけのことで,読み込む場合には漢字のファイル名で
- あってもかまいません。したがって,いったん英数字のファイル名で保存したもの
- を後で漢字のファイル名にリネームすることもできます。
- なお,このプログラムは日経バイト '86年6月号掲載の「マンデルズーム・プロ
- グラミング」中の数式(1)(p.148)を元に,我流でコーディングしたものです。そ
- のほか色々と出回っています書籍やフリーウェアのソースなどはいっさい参照しな
- いで組んだので,無駄な点などがあるかもしれません。収録されていますソースを
- ご覧になって,改良すべき点に気がつかれましたらましたら,◎h!FM編集部宛にご
- 教示いただければ幸いです。
-
-
- ● 著作権・再配布について
-
- このプログラムの著作権は作者が保持しておりますが,著作権法の定める「個
- 人的な利用」の範疇であれば自由に利用してくださってけっこうです。また,転
- 載・配布についても事前の許諾なしに自由に行ってくださってかまいません。た
- だし配布時に,
- 1. 「木村文彦」がプログラミングしたものであること
- 2. ◎h!FM '90年6月号に掲載されたものであること
- 3. 作者の自由転載許可に基づいて転載・配布したものであること
- を,説明用のテキストに明記してください。