光の芸術 ~光の反射・屈折による線画(JavaScript版)

■ 光の芸術 ~光の反射・屈折による線画~(JavaScript版)
        ... バリア形状のユーザ入力対応 ...

 内側に鏡を張った円や多角形の内部に光を投射したときの光の進路(軌跡)を表示します。

・鏡の形状は円形または正多角形(3,4,5,6,8,12,20角形)。
・方向を指示すると、光は始点からその方向に投射され、周囲の鏡で反射して次々と方向を変えて進む。
 光の投射方向はマウスクリックで指示する。 gridモード時は最も近いgrid点となる。
・条件を設定し、「Hit」ボタンを押す。
・Hit 後の一時停止(Stop)、リスタート(Restart)、中止(Clear)が可能。
・バリア形状をユーザ入力することができる(最大20個)… 詳細は後述。

鏡の形状バリア形状反射の種類軌跡表示線の太さ表示速度
屈折モード   grid
 
バリアのユーザ入力
 ・形状など
 
 
バリア個数
投射角度
反射/屈折回数
入射角
反射/屈折角
現在位置 X
現在位置 Y
In / Out
・内部にバリア(障害物)を設置することができる。バリアの側面も鏡になっている。
・バリアには線分、円形、多角形など種々の形状がある。
 多角形バリアには1辺が開いているものもある(この場合、裏面も鏡)。
 円形バリアや多角形バリアを複数個設置することもできる。
 (注1)バリアの数、大きさ、位相角は毎回ランダムに決定される。
 (注2)同種類のバリアで大きさ・位相角を変更する場合には、一旦別の種類のバリアを選択後、
    再度希望のバリアを選択する。
・通常は「正反射」(入射角=反射角)であるが、反射角を若干変化させることができる。
 「乱反射」は入射角±1度の範囲内で反射角をランダムに変化させる。
 「漸増反射」は反射角を入射角+1度にする。
 「漸減反射」は反射角を入射角-1度にする。
・光の進路(軌跡)の表示モードを設定できる。
  軌跡表示なし: 表示なし(現在位置のみ表示)
  軌跡表示1色: 始点からの軌跡を1色で表示
  軌跡表示多色: 始点からの軌跡を多色で表示
・線の太さ、表示速度も変更できる
  ● 屈折モード
内部の閉じたバリア(円形、多角形)については鏡による反射に代わって、「屈折モード」にすることもできる。
「屈折モード」にすると、これらのバリアについては境界面で光の「屈折」が起こる。
・屈折率は選択可能(水、ガラス、ダイヤモンドに相当)。
・入射角が臨界角(=sin-1(1/屈折率))を越えると全反射となる。
・外側の形状、線分、内部の開いた多角形は常に鏡となる。
  ● バリア形状のユーザ入力
・上のバリア形状で「ユーザ入力」を選択する。
・下のユーザ入力部で個々のバリア形状を選択し、次いで
 ・線分の場合は両端点
 ・円の場合は中心と円状の1点
 ・多角形の場合は中心と1頂点
 をマウスで指示する。
・gridモード時は最も近いgrid点が入力される。
・開多角形では上で指示した1頂点と次の頂点間が開いたものとなる。
・削除ボタンで、最後に入力したものから順に削除できる。
・各バリアは外側の形状からはみ出さないこと(特に屈折モード時)。
・必要に応じて投射方向点を変更が可能。
ホーム