solid_angle#
- regridding.geometry.solid_angle(point, triangle, epsilon=1e-12)[source]#
Calculate the solid angle subtended by a triangle with respect to a query point.
- Parameters:
triangle (tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]]) – A sequence of 3D vertices describing the triangle. Vertices oriented counterclockwise as viewed from outside yield positive angles.
epsilon (float) – If the query point is very close to a vertex, the solid angle is ill-defined. By convention, this function returns zero if the query point is less than epsilon distance away from any vertex.
- Return type:
Notes
The solid angle \(\Omega\) subtended by a triangular surface is given by Van Oosterom and Strackee[1] as
\[\tan \left( \frac{1}{2} \Omega \right) = \frac{\vec{a} \cdot (\vec{b} \times \vec{c})} {a b c + (\vec{a} \cdot \vec{b}) \, c + (\vec{a} \cdot \vec{c}) \, b + (\vec{b} \cdot \vec{c}) \, a}\]where \(\vec{a}\), \(\vec{b}\) and \(\vec{c}\) are the vertices of the triangle.
References