立體角
立体角,常用字母Ω表示,是一个物体对特定点的三维空间的角度,是平面角在三维空间中的类比。它描述的是站在某一点的观察者测量到的物体大小的尺度。例如,对于一个特定的观察点,一个在该观察点附近的小物体有可能和一个远处的大物体有着相同的立体角。
锥体的立体角大小定义为,以锥体的顶点为球心作球面,该锥体在球表面截取的面积与球半径平方之比,单位为球面度(sr)。[1]一個球體即是4π,半球即是2π。
立体角的定義
以觀測點為球心,構造一個單位球面;任意物體投影到該單位球面上的投影面積,即為該物體相對於該觀測點的立體角。
因此,立體角是單位球面上的一塊面積,這和“平面角是單位圆上的一段弧长”類似。
立體角公式
在球坐标系中,任意球面的極小面積為:
因此,極小立體角(單位球面上的極小面積)為:
所以,立體角是投影面积与球半径平方值的比,这和“平面角是圆的弧长与半径的比”类似。 對極小立體角做曲面积分即可得立體角:
任意定向曲面的立體角
任意定向曲面 相對於某一個點 的立體角,即為該曲面投影到以 為球心的單位球面上的面積。
令 為該單位球面上以 為原點的極小面積的位置向量,可以得到以下公式:
立体角的单位
立体角的国际制单位是球面度(steradian,sr)。立体角有一个非国际制单位平方度,1 sr = (180/π)2 square degree。
常见几何体的立体角
圆锥,球冠
顶角为2的圆锥的立体角为一个单位球的球冠。
(上面结果由下式得到)
应该注意阿基米德在2200年前不用微积分证明了球冠的表面积与半径为球冠边沿到球冠最低点的距离的圆的面积相等。球冠边沿到球冠最低点的距离为
显然,在单位圆中球冠立体角为
当 θ = π/2,球冠变为有着立体角 2π的半球。
当 θ = π,立體角涵蓋整個球體,球冠变为有着立体角 4π的球,我們將4π稱為全方位立體角。
任意四面体的立体角
对于任意一个四面体OABC,其中O,A,B,C分别为四面体的四个顶点。下面给出一个公式,计算从O点观察三角形ABC的立体角Ω的方便简单的公式。令α=∠BOC,β=∠AOC,γ=∠AOB(均为各自平面内两条直线的夹角,可以采用平面三角形的余弦公式计算求得),有(参见L' Huilier')
附上相应的Fortran 程序:
program solid_angle
REAL X(4),Y(4),Z(4) !存放四个顶点的三维坐标,依次为A,B,C,O(程序中以P点代替,为观测点)
X(1)=1
X(2)=0
X(3)=0
X(4)=0
Y(1)=0
Y(2)=1
Y(3)=0
Y(4)=0
Z(1)=0
Z(2)=0
Z(3)=1
Z(4)=0
!以单位1球体,在第一象限的八分之一球所含的四面体为例。程序可适用于任意四面体。
!分别计算6条棱的长度的平方
PA=(X(4)-X(1))**2+(Y(4)-Y(1))**2+(Z(4)-Z(1))**2
PB=(X(4)-X(2))**2+(Y(4)-Y(2))**2+(Z(4)-Z(2))**2
PC=(X(4)-X(3))**2+(Y(4)-Y(3))**2+(Z(4)-Z(3))**2
AB=(X(1)-X(2))**2+(Y(1)-Y(2))**2+(Z(1)-Z(2))**2
BC=(X(3)-X(2))**2+(Y(3)-Y(2))**2+(Z(3)-Z(2))**2
AC=(X(1)-X(3))**2+(Y(1)-Y(3))**2+(Z(1)-Z(3))**2
!应用余弦公式计算三个夹角
COSALPHA=(PB+PC-BC)/2.0/SQRT(PB*PC)
COSBETA=(PA+PC-AC)/2.0/SQRT(PA*PC)
COSGAMA=(PB+PA-AB)/2.0/SQRT(PB*PA)
ALPHA=acos((PB+PC-BC)/2.0/SQRT(PB*PC))
BETA=acos((PA+PC-AC)/2.0/SQRT(PA*PC))
GAMA=acos((PB+PA-AB)/2.0/SQRT(PB*PA))
s=(alpha+beta+gama)/2.
omiga=atan(sqrt(tan(s/2.)*tan(s/2.-alpha/2.)*tan(s/2.-beta/2.)*tan(s/2.-gama/2.)))*4.
write(*,*) omiga*180./3.14159
end