立体角
立体角の計算
式
(ppt ファイル : solid_angle_cal.ppt)
面積 S の曲面を点 O から見込む立体角 Ω は以下のように書ける。
ここで、dS は曲面上の微小領域の面積、 は微小領域の単位法線ベクトル、dS は単位法線ベクトルに微小領域の面積をかけたベクトル、 r は微小領域の位置ベクトル、r は位置ベクトルの大きさ、 は r 方向の単位ベクトルを表す。また、 と の間の角を θ とすると となるので、上記立体角 Ω は
と書くことも出来る。これは次のように解釈できる。点 O から微小領域を見るとθだけ傾いているので、点 O から見た微小領域の面積は cosθ だけ小さくなり、cosθdS となる。微小領域が r だけ離れた場所にある場合、この領域を見込む立体角は cosθdS / r2 となる。これを面積 S の曲面全体にわたって積分すれば、曲面を見込む立体角になる。
円板を見込む立体角
式
(ROOT 用ファイル : cir_solid_angle.C)
- 上図の円板を見込む立体角 Ω (円板が張る立体角、円錐の頂点が底面を見込む立体角)は、
- である。ただし、点 C は円の中心で、線分 OC は円に垂直である。
導出(その1)
求める立体角 Ω は、点 O からの距離 の平面が単位球面から切り取る曲面の面積に等しい (下図参照) 。
(ROOT 用ファイル : cir_solid_angle_cal.C)
- この面積は以下のように計算できる。
導出(その2)
- 下図のような座標を考える。
(ROOT 用ファイル : cir_solid_angle_dxdy.C)
点(0,0,c) から点 (x,y,0) にある微小面積 ΔxΔy を見込む微小立体角は、点 (x,y,0) と点 (0,0,c) の距離 r と図中の角 θ を用いて以下のように書ける。
求める立体角 Ω はこれを x, y で積分して
となる。これを計算すれば良い。x, y, r は c, θ, φ を用いて
と書ける。この時、積分範囲は となる。また、ヤコビ行列式を計算すると (立体角/ノート参照)、
- となるので、
- と書き換えることができる。これを計算すれば求める立体角が出る(下記参照)。
- 下図のような座標を考える。
三角形を見込む立体角
式
(ROOT 用ファイル : tri_solid_angle.C)
単位球面内に三角形が置かれているとする (単位球面外でも良い)。点 O から三角形を見込む立体角 Ω (三角形が張る立体角、三角錐の頂点から底面を見込む立体角) は、図の単位球面上の球面三角形 (spherical triangle) の面積に等しい。三角形の各辺を見込む(普通の)角を a, b, c、球面三角形の各頂点の (普通の) 角を A, B, C とすると を用いて、
- となる。いくつか違う形の式を書いたが、変形すれば同じになる。(ただし適応範囲は違うかも。最後の式とか。後で確認。)この立体角は球面過剰 (spherical excess) とも言う。球面三角形の頂点の角 A は弧 AB を含む面と弧 AC を含む面の間の角と言うことも出来る。
- 参考
導出
直角三角形を見込む立体角
式
(ROOT 用ファイル : right_tri_solid_angle.C)
直角三角形が図のように置かれている場合、この直角三角形を見込む立体角 Ω (直角三角形が張る立体角) は、図の単位球面上の直角球面三角形 (right spherical triangle) の面積に等しい。直角三角形の斜辺でない 2 辺を見込む(普通の)角を a, b、 球面三角形の図の頂点の (普通の) 角を A, B とすると
- となる。
長方形を見込む立体角
式
(ROOT 用ファイル : rec_solid_angle.C)
- 上図の点 O から長方形を見込む立体角 Ω (長方形が張る立体角、四角錐の頂点が底辺を見込む立体角)は、
である。ただし、点 C は長方形の中心で、線分 OC は長方形に垂直である。参考 : 長方形が張る立体角の求め方がわかりません [物理のかぎしっぽ]
導出(その1)
下図のように、xy 平面上に置かれた長方形 (横の長さ: a, 縦の長さ: b) が 点 (0,0,c) に対して張る立体角を考える。
(ROOT 用ファイル : rec_solid_angle_dxdy.C)
点 (x,y,0) にある微小面積 ΔxΔy が点(0,0,c) に対して張る微小立体角は、点 (x,y,0) と点 (0,0,c) の距離 r と図中の角 γ を用いて以下のように書ける。
長方形を見込む立体角は、これを x, y で積分して、
となる。この積分は x = ctanθ, y = ctanφ と置くと、α = arctan (a/c), β = arctan (b/c) を用いて次のように計算できる。
WolframAlpha でこの積分を計算させると (例は ここ )
- となる。これを 4 倍すれば、上の方で示した長方形を見込む立体角になる。確認のために右辺を微分すると、
なので (論文でも使えそうなリファレンスとしては NIST Digital Library of Mathematical Functions - §4.24 Inverse Trigonometric Functions: Further Properties - (ii) Derivatives - 4.24.E7)
- となる。
導出(その2)
- 下図のような座標系を考える。
(ROOT 用ファイル : rec_solid_angle_def.C)
すなわち、半径 r の球面上のある点 (x,y,z) (図中の点 P) を図の θ と φ で指定する。このとき、
と書ける。これは、線分 OB の長さを 1 と考えたとき、線分 AB の長さが tanθ, 線分 BC の長さが tanφ, 線分 OP の長さが となることから導ける。この座標系のヤコビ行列式を計算すると
となる (立体角/ノート参照)。ここで r = 1 とすると、長方形 PABC を原点 O から見込む立体角は単位球面上の点 P, A', B', C' で囲まれた曲面の面積となる。この面積は、上記ヤコビ行列式を用いて
と書ける。導出(その1)と同じように WolframAlpha でこの積分を計算させると (例は ここ )
- となる。すなわち、長方形 PABC を原点 O から見込む立体角が θ と φ で書けたことになる。これを 4 倍すれば、上の方で示した長方形を見込む立体角になる。
- 下図のような座標系を考える。
長方形を見込む立体角 (Off-axis の場合)
式
(ROOT 用ファイル : rec_solid_angle_off_axis.C)
- 上図のように長方形が置かれている場合、点 P から長方形を見込む立体角 Ω (長方形が点 P に対して張る立体角、四角錐の頂点が底辺を見込む立体角)は、
- である。
導出
- 立体角 Ω は以下の積分を計算すれば良い。
また、次のようにも考えてもよい: 全体の立体角 から と を引き、重なって引いた分の を足せば良い。
- 立体角 Ω は以下の積分を計算すれば良い。
楕円を見込む立体角
立体角/計算ノート(楕円)