レーリー散乱: 波長の4乗に反比例する散乱。青い光が強く散乱される。前後対称。
ミー散乱: 粒子サイズに依存する散乱。前方散乱が支配的。
入射光: Z軸負方向から入射。散乱分布はこの軸に対する位相関数。
操作: マウスドラッグで視点回転
Prompt: 大気散乱を考慮した散乱モデルにはレーリー散乱とミー散乱がある粒子への光の散乱の分布を移送関数と呼ぶ、これらの分布の3次元分布を可視化するコードをhtmlとJavaScriptで書け。見る方向はマウスで制御するものとする
大気散乱の3次元可視化システムを作成しました。このシステムの特徴は以下の通りです: 主な機能 散乱モデル レーリー散乱: 波長の4乗に反比例する散乱特性を表現(青い光が強く散乱) ミー散乱: Henyey-Greenstein位相関数を使用した前方散乱の強い特性 移送関数: 各散乱の3次元分布を球面上の変形で可視化 インタラクティブ制御 マウスドラッグで視点を自由に回転 マウスホイールでズーム調整 波長スライダー(400-700nm)で色と散乱強度を変更 粒子サイズでミー散乱の特性を調整 散乱強度と分解能の調整 表示モード レーリー散乱のみ ミー散乱のみ 両方同時表示(比較用) 物理的な実装 レーリー散乱位相関数: (1 + cos²θ) を使用し、波長依存性 λ⁻⁴ を適用 ミー散乱: Henyey-Greenstein近似を使用し、非対称パラメータ g=0.8 で前方散乱を表現 可視化: 散乱強度に応じて球面を変形させ、散乱の方向性と強度を直感的に表現 このツールは大気光学や散乱理論の理解に役立ち、異なる条件下での散乱パターンの違いを視覚的に比較できます。
制御パネル 横幅を140pxに縮小(元の約半分) パディングとマージンを調整してコンパクト化 ボタンテキストを短縮(「レーリー散乱」→「レーリー」など) フォントサイズを小さくして読みやすさを維持 マウス制御の改善 左右ドラッグ: 水平方向回転(Y軸周り)- より直感的な操作 上下ドラッグ: 垂直方向回転(X軸周り)- 符号を反転して自然な動作 ホイール: 拡大/縮小 - 既存機能を維持 これで制御パネルが画面の大部分を覆うことなく、より直感的なマウス操作で3D散乱分布を観察できるようになりました。
画像サイズの固定 キャンバスサイズを600×500pxに固定 コンテナを中央配置し、枠線を追加 レスポンシブ設定を削除 位相関数の軸表示 入射ベクトル: 赤い矢印で上から下向きの入射光を表示 散乱光ベクトル: 緑の矢印で散乱方向の例を表示 座標軸: X(赤)、Y(緑)、Z(青)の半透明軸を表示 ラベル: 「入射光」「散乱光」のテキストスプライト アニメーション制御 チェックボックスでアニメーションのON/OFF切り替え チェック時のみ散乱分布と散乱光矢印が回転 デフォルトは静止状態 物理的意味の明確化 入射光(上から下)に対する散乱分布の3次元形状 レーリー散乱: 前後対称だが側方散乱も強い ミー散乱: 前方散乱が支配的な非対称分布 これで散乱の物理的プロセスがより直感的に理解できる可視化システムが完成しました。
位置の変更 説明パネル(#info)を右上に移動 画像と重ならない位置に配置 幅を250pxに調整してコンパクト化 表示/非表示機能 「説明表示/非表示」ボタンを右上に追加 クリックで説明パネルの表示/非表示を切り替え フェードイン/アウトのアニメーション効果 スタイリング ボタンは半透明の黒背景で目立たせる 説明パネルが非表示時はボタンテキストが「説明表示」に変更 pointer-events: noneで非表示時のクリックを無効化 これで画像(位相関数)が説明文に隠れることなく、必要に応じて説明を確認できるようになりました。デフォルトでは説明が表示されており、邪魔な時はボタンで簡単に非表示にできます。
入射ベクトルの向きを修正しました: 変更内容 入射ベクトルの方向修正 入射光の矢印をZ軸負方向(奥から手前)に配置 rotation.x = Math.PI / 2でZ軸方向を向くように回転 position.set(0, 0, -1.8)で散乱中心から後方に配置 ラベル位置の調整 「入射光」ラベルをZ軸負方向(-2.5)に移動 入射ベクトルと同じ方向に配置 説明文の更新 入射光がZ軸負方向からの入射であることを明記 散乱分布がこの入射軸に対する位相関数であることを説明 これで物理的に正しい配置になりました: レーリー散乱: 入射方向に対して前後対称の8の字型分布 ミー散乱: 入射方向(+Z方向)への前方散乱が支配的な非対称分布 散乱の角度依存性が入射ベクトルを基準として正しく表現されるようになりました。