I'm trying to calculate the surface area of a sphere that is bounded by the walls of a triangular pyramid. $o$ is the origin and centre of a sphere of radius $R$, $a$ is a point at the tip of the pyramid, and the edges are in the direction of 3 unit vectors, $v_1$, $v_2$, $v_3$.

Sphere intersects pyramid

My guess is to use a surface integral over the sphere, but I'm unsure of the bounds. Also $v_i$ and $a$ are in Cartesian coordinates, and I want to make the simplest calculation. Converting them to polar is fine, if it makes the integral simpler, but I'm using this as part of a program, so I'm trying to limit the precision loss.

  • $\begingroup$ The points in the triangle formed by the three points are given by convex combinations of $v_i$. Then you can normalize to get the point on the sphere on the same ray from $O$. However, I'm not sure if this will be easily integrable, and even less about the precision loss. $\endgroup$ – ronno Dec 16 '13 at 11:46

WOLOG, we will assume the three unit vectors $\hat{v}_1, \hat{v}_2, \hat{v}_3$ are labeled in such a way so that $\hat{v}_1 \cdot (\hat{v}_2 \times \hat{v}_3) > 0$.

If the tip of the pyramid $\vec{a}$ coincides with $\vec{0}$, the origin and center of the sphere. Oosterom and Strackee has a simple formula to compute the solid angle $\Omega$ "enclosed" by the 3 vectors $\hat{v}_1, \hat{v}_2, \hat{v}_3$: $$\tan\left(\frac{\Omega}{2}\right) = \frac{\hat{v}_1 \cdot (\hat{v}_2 \times \hat{v}_3)}{1 + \hat{v}_1 \cdot\hat{v}_2 + \hat{v}_2 \cdot\hat{v}_3 + \hat{v}_3 \cdot\hat{v}_1} $$ The area one want is simply $\Omega R^2$. Take a look at the wiki entry of Solid angle, in particular the section about Tetrahedron for more details.

If not, then one need a lot more works. If I didn't make any mistake, one can compute the area by following procedure.

  1. Pick $\lambda_1, \lambda_2, \lambda_3 > 0$ such that the three vectors $$\begin{cases} \vec{x}_1 =& \vec{a} + \lambda_1 \hat{v}_1\\ \vec{x}_2 =& \vec{a} + \lambda_2 \hat{v}_2\\ \vec{x}_3 =& \vec{a} + \lambda_3 \hat{v}_3 \end{cases} \quad\quad \text{lie on the sphere, i.e. } |\vec{x}_1| = |\vec{x}_2| = |\vec{x}_3| = R $$

  2. Define 3 unit vectors $\hat{n}_1, \hat{n}_2, \hat{n}_3$ by $$ \hat{n}_1 = \frac{\hat{v}_2 \times \hat{v}_3}{|\hat{v}_2 \times \hat{v}_3|}, \quad \hat{n}_2 = \frac{\hat{v}_3 \times \hat{v}_1}{|\hat{v}_3 \times \hat{v}_1|}, \quad\text{ and }\quad \hat{n}_3 = \frac{\hat{v}_1 \times \hat{v}_2}{|\hat{v}_1 \times \hat{v}_2|}, $$ These are the inward pointing normal vectors for the 3 faces span by $\big\{\;\vec{a}, \vec{x}_2, \vec{x}_3\;\big\}$, $\big\{\;\vec{a}, \vec{x}_3, \vec{x}_1\;\big\}$ and $\big\{\;\vec{a}, \vec{x}_1, \vec{x}_2\;\big\}$ respectively. The pyramid itself consists of those points satisfying $$\vec{n}_1\cdot (\vec{x}-\vec{a})\ge 0 \quad\land\quad \vec{n}_2\cdot (\vec{x}-\vec{a}) \ge 0 \quad\land\quad \vec{n}_3\cdot (\vec{x}-\vec{a}) \ge 0$$

  3. Define 6 more unit vectors $ \hat{t}_{12}, \hat{t}_{13}, \hat{t}_{23},\hat{t}_{21}, \hat{t}_{31}, \hat{t}_{32}$ by $$\hat{t}_{ij} = \frac{\hat{n}_i \times \vec{x}_j}{|\hat{n}_i \times \vec{x}_j|}$$ The intersection of the pyramid with the sphere is a spherical triangle. It has 3 edges which are planar circular arcs. $\hat{t}_{12}$ and $\hat{t}_{13}$ are the tangent vectors of the edge lying on the plane $\hat{n}_1 \cdot (\vec{x} - \vec{a}) = 0$ at positions $\vec{x}_2$ and $\vec{x}_3$ respectively. The other 4 vectors are defined in similar manner.

Recall the Gauss-Bonnet theorem for the sphere. One version of it says that if we have a smooth closed curve $\mathcal{C}$ on our sphere with radius $R$ bounding a region $\mathcal{D}$, then the area of $\mathcal{D}$ satisfies:

$$\frac{\text{Area}(\mathcal{D})}{R^2} + \int_{\mathcal{C}} k_g ds = 2\pi\tag{*1}$$

where $k_g$ and $ds$ are the geodesic curvature and line element along $\mathcal{C}$. If $\mathcal{C}$ is piecewise smooth instead of smooth, then one should interpret the integral $\int_{\mathcal{C}} k_g ds$ as as the sum of corresponding integrals along the smooth portions plus the sum of change of angles of the tangent vectors at the corners.

As I have mentioned before, the intersection of the pyramid and our sphere have 3 edges which are planar circular arcs. One can show that along any one of these edges, say the one on the plane $\hat{n}_1 \cdot (\vec{x}-\vec{a}) = 0$, its contribution to $\;\;\displaystyle \int k_g ds\;\;$ has the form $\;\;\displaystyle \frac{\hat{n}_1\cdot \vec{a}}{R} \cos^{-1}(\hat{t}_{12}\cdot\hat{t}_{13})$.

Collect all these terms and throw it to equation $(*1)$, we find the area of the intersection is given by following formula.

$$\begin{align} \text{Area} =& 2\pi R^2 - R^2\left[ \cos^{-1}(\hat{t}_{21}\cdot\hat{t}_{31}) + \cos^{-1}(\hat{t}_{12}\cdot\hat{t}_{32}) + \cos^{-1}(\hat{t}_{13}\cdot\hat{t}_{23}) \right]\\ &-R \left[ \hat{n}_1\cdot\vec{a} \cos^{-1}(\hat{t}_{12}\cdot\hat{t}_{13}) + \hat{n}_2\cdot\vec{a} \cos^{-1}(\hat{t}_{21}\cdot\hat{t}_{23}) + \hat{n}_3\cdot\vec{a} \cos^{-1}(\hat{t}_{31}\cdot\hat{t}_{32}) \right] \end{align}$$ The second term is the contribution from the change of angles at each vertices. The third term is the contribution form the 3 edges.

  • $\begingroup$ $o$ is the origin of the sphere, and so the distances to the sphere from $a$ along each of the 3 vectors is different. The area of intersection therefore can't be $\Omega R^2$ as $R$ changes? $\endgroup$ – Zeophlite Dec 20 '13 at 10:10
  • 1
    $\begingroup$ @Zeophlite, Oh I missed that, then this answer is incorrect. Please unaccept this answer. Instead of doing the integral, one should use Gauss Bonnet theorem to get the area. The formula will probably be pretty messy, let me think about it. $\endgroup$ – achille hui Dec 20 '13 at 12:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.