このJavaアプレットは、1998年度の「情報科学特論IV」の課題1を実現したものです。
このJavaプログラムは、JDK1.1に完全準拠していますので、Netscape 4.5以上・Internet Explorer 4以上でないと正常に動作しません。御了承下さい。
上の黒い画面に部屋のレイアウトが表示されます。それぞれの色は以下の通りです。
下の黒い画面には、上の画面に表示されている部屋の、下の壁の輝度を棒グラフ化したものです。棒が長いほど、それに対応する壁の輝度が高い(明るい)ことを意味します。また、棒の色は、輝度が高い程、白く表示されます。
前節で説明したように、グラフに表れている輝度は、表示されている部屋の下の壁の輝度を表しています。「回転」ボタンを押すことによって、部屋の他の壁の輝度のグラフを見ることができます。
部屋のレイアウトは、「レイアウトファイル」を変更することによって行います。現在は以下の3通りしかありませんが、機能的には、このページと同じディレクトリに、レイアウトファイルを追加することによって、他のレイアウトを試すことができます(いまのところ、追加する予定はありません。)。選択できるファイルの反射率は、以下の通りです。なお、「---」は、存在しないことを表します。
ファイル名 | 上の壁 | 左の壁 | 右の壁 | 下の壁 | ドア | 光源 | 障害物 |
sample1.txt | 0.9 | 0.9 | 0.9 | 0.9 | 0.5 | 0.0 | 0.8 |
sample2.txt | 0.9 | 0.9 | 0.9 | 0.9 | 0.5 | 0.0 | --- |
sample3.txt | 0.9 | 0.8 | 0.7 | 0.6 | 0.9 | 0.1 | 0.1 |
JDK-1.1に準拠したJavaプログラムです。クラス名と説明は以下の通 り。
RadioSity.java | メインのクラス。 |
DummyFrame.java | エラーメッセージのダイアログボックスを表示するクラス |
GivenData.java | レイアウトファイルをHTTPで読み込むクラス |
IllegalFormatException.java | レイアウトファイルのフォーマットがおかしい時に投げられる例外クラス |
ControlPanel.java | ボタンなどのUI部品を配置するクラス |
FormFactor.java | フォームファクターを計算するクラス |
Room.java | 部屋のレイアウトを表示するクラス |
RoomElement.java | 部屋のエレメントに関する各種情報を保持するクラス |
LinearSystem.java | 連立一次方程式を解くクラス |
LightSource.java | 光源の情報を保持するクラス |
RoomObstacle.java | 障害物の情報を保持するクラス |
RoomWindow.java | ドア(Windowとかいてあるが、上の説明では「ドア」と言っています)に関する情報を保持するクラス |