立體角

维基百科,自由的百科全书
跳转至: 导航搜索

立体角,常用字母Ω表示,是一个物体对特定点的三维空间的角度,是平面角在三维空间中的类比。它描述的是站在某一点的观察者测量到的物体大小的尺度。例如,对于一个特定的观察点,一个在该观察点附近的小物体有可能和一个远处的大物体有着相同的立体角。立体角的定义是,物體在一个以观测点为球心的球的投影面积与球半径平方值的比:

\Omega=\frac{S}{r^{2}} = \iint_S \frac { \vec{r} \cdot \textrm{d}\vec{S}}{r^3}

这和“平面角是圆的弧长与半径的比”类似。

立体角的国际制单位是球面度(steradian,sr),一个完整的球面对于球内任意一点的立体角为4π sr(对于球外任意一点的立体角为0 sr)。立体角有一个非国际制单位平方度,1 sr = (180/π)2 square degree

球坐标系中,: d\Omega = \sin\theta\,d\theta\,d\varphi

常见几何体的立体角[编辑]

圆锥,球冠[编辑]

球體中圓錐(1)與球冠(2)的切面。圖中 θ = A/2,r = 1。

顶角为2\theta的圆锥的立体角为一个单位球的球冠。

\Omega = 2 \pi \left (1 - \cos {\theta} \right) .\,\!

(上面结果由下式得到,参见 surface element in spherical polars\int_0^{2\pi} \int_0^{\theta}  \sin \theta' \ d \theta' \ d \phi = 2\pi\int_0^{\theta} \sin \theta' \ d \theta' = 2\pi\left[ -\cos \theta' \right]_0^{\theta} \ = 2\pi\left(1 -\cos \theta \right).

应该注意阿基米德在2200年前不用微积分证明了球冠的表面积与半径为球冠边沿到球冠最低点的距离的圆的面积相等。球冠边沿到球冠最低点的距离为

2r \sin \left( \frac{ \theta}{2} \right).\,

显然,在单位圆中球冠立体角为

\Omega = 4 \pi \sin^2 \left( \frac{ \theta}{2} \right) = 2 \pi \left (1 - \cos {\theta} \right) .\,\!

θ = π/2,球冠变为有着立体角 2π的半球。

θ = π,立體角涵蓋整個球體,球冠变为有着立体角 4π的球,我們將4π稱為全方位立體角。

任意四面体的立体角[编辑]

对于任意一个四面体OABC,其中O,A,B,C分别为四面体的四个顶点。下面给出一个公式,计算从O点观察三角形ABC的立体角Ω的方便简单的公式。令α=∠BOC,β=∠AOC,γ=∠AOB(均为各自平面内两条直线的夹角,可以采用平面三角形余弦公式计算求得), s = \frac {1}{2} (\alpha + \beta + \gamma). 有(参见L' Huilier')

 \tan \left( \frac{\Omega}{4}  \right)
=
\sqrt{ \tan \left( \frac{s}{2}\right) \tan \left( \frac{s - \alpha}{2}\right) \tan \left( \frac{s - \beta}{2}\right) \tan \left( \frac{s - \gamma}{2}\right)}

附上相应的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