## How do you calculate the solid angle of a rectangular, axis aligned section of a surface defined by a two dimensional function?

### Remember to vote up questions/answers you find interesting or helpful (requires 15 reputation points)

I have $f(x,y) = \frac{1}{2} (1 - x^2 - y^2)$, which is a paraboloid centered around the origin (plot).

Now I want to calculate the solid angle (with the origin as the viewpoint) of the surface area defined by f(x,y) with a rectangular, axis aligned section of the xy plane as its input, e.g. $-1 \leq x \leq 1$ and $-1 \leq y \leq 1$. So each point of the surface area has the coordinates `$\vec f(x,y) = ( x, y, f(x, y)) = ( x, y, \frac{1 - x^2 - y^2}{2} )$`.

The problem is that I don't know how I convert the Integral over the Surface $\iint_S dS$ in `$\Omega = \iint_S \frac { \vec{r} \cdot \hat{n} \,dS }{r^3}$` into an Integral over $x$ and $y$: $\int_X \int_Y dx dy$.

### If I...

...simply replace it with $\int_{-1}^{1} \int_{-1}^{1} dx dy$, replacing the other values accordingly with

• each point on the surface: `$\vec r = \vec f(x, y) = (x, y, \frac{1 - x^2 - y^2}{2})$`,
• normal at each point on the surface: `$\hat{n} = \frac{\vec f_x \times \vec f_y} {|\vec f_x \times \vec f_y|} = (x, y, 1) $` with `$\vec f_x(x, y) = (1, 0, -x)$` and `$\vec f_y(x,y) = (0, 1, -y)$`,

I receive `$\Leftrightarrow \int_x \int_y \frac{ \vec f(x, y) \cdot (x,y,1) } { |\vec f(x, y)|^3 \cdot |(x, y, 1)|} $`

`$\Leftrightarrow \int_x \int_y \frac{ (x, y, \frac{1 - x^2 - y^2}{2}) \cdot (x, y 1)} {|(x, y, \frac{1 - x^2 - y^2}{2})|^3 \cdot |(x, y, 1)|}$`

`$\Leftrightarrow \int_x \int_y \frac{ x^2 + y^2 + \frac{1 - x^2 - y^2}{2} } { ( x^2 + y^2 + (\frac{1 - x^2 - y^2}{2})^2)^{\frac{3}{2}} \cdot (x^2 + y^2 + 1)^{\frac{1}{2}} }$`

If I let wolframalpha calculate[1] that, the result is $5.87$.

This is clearly wrong though, because the paraboloid covers more than the hemisphere, and thus needs to have a solid angle of more than $2\pi$. So what do I need to change?

### Background

I'm using this paraboloid as a mapping to project geometry into a texture, and for the next step I need to find out what portion of the hemisphere each pixel covers. So ideally I need a way to calculate this as fast as possible - I might need to search for a similar, faster function for actual usage.

[1] http://www.wolframalpha.com/input/?i=Integrate+(x%5e2+%2b+y%5e2+%2b+(1-x%5e2-y%5e2)%2f2)+%2f+((x%5e2+%2b+y%5e2+%2b+((1-x%5e2-y%5e2)%2f2)%5e2)%5e(3%2f2)+*+(x%5e2+%2b+y%5e2+%2b+1)%5e(1%2f2))+from+x%3d-1+to+1+y%3d-1+to+1&incParTime=true

-

I edited the tags - this doesn't fall under topology or math. phys. as far as I can see. – David Roberts Apr 27 2011 at 11:34

## 3 Answers

You need to include the differential surface area in your parametrized version of the integral. In effect, you replace the $\hat{n} dS$ term with $$\frac{\vec{f}_x\times\vec{f}_y}{\|\vec{f}_x\times\vec{f}_y\|} {\|\vec{f}_x\times\vec{f}_y\|} dxdy.$$

Although, really the two norms just cancel, so you needn't calculate them.

Your integral then becomes $$\int_x \int_y \frac{( x,y,\frac{1-x^2-y^2}{2})}{(x^2+y^2+(\frac{1-x^2-y^2}{2})^2)^{(3/2)}}\cdot( x,y,1) dx dy.$$

This simplifies to $$\int_x \int_y \frac{4}{(1+x^2+y^2)^2} dx dy.$$

WolframAlpha gives the value of this as about 6.96336.

-

### You can accept an answer to one of your own questions by clicking the check mark next to it. This awards 15 reputation points to the person who answered and 2 reputation points to you.

This is not an answer, just another way of viewing the calculation. You need only compute the area of the roughly one-eighth of the sphere that falls below the equator (green below) and beneath the line formed by the origin and the curve $(x,1,-x^2 /2)$ for $x\in[-1,1]$, tracing out one boundary curve. The portion outside your solid angle is composed of four of these regions.

-

I'm afraid I need to calculate the solid angle for arbitrary sections/intervals. – hrehf Apr 27 2011 at 16:39
The situation differs little with arbitrary intervals.  Still there are curves on the sphere bounding the area you want to measure.  If you need an exact answer, you will need to explicitly compute those curves.  If you are content with a numerical approximation, you could estimate that area in many ways. – Joseph O'Rourke Apr 27 2011 at 18:03

The normal to the paraboloid plays no role in this. A "surface element" ${\rm d}(x,y)$ at the point $(x,y)$ in the $(x,y)$-parameter plane produces via $\vec f$ (or rather $\vec f_*$) a surface element $dS$ at the point $\vec f(x,y)$ on your paraboloid $S$, and then this surface element $dS$ casts a shadow $d\omega$ on the unit sphere $S^2$ through central projection from $O$, i.e., via normalization of $\vec f$. Since $$|\vec f(x,y)|^2=x^2+y^2+{1\over4}(1-x^2-y^2)^2={1\over4}(1+x^2+y^2)^2$$ it follows that the shadow on $S^2$ is produced by the map $$\vec g: \quad (x,y) \mapsto {2\over 1+x^2+y^2} \bigl(x,y,{1\over2}(1-x^2-y^2)\bigr)\ .$$ This $\vec g$ is nothing else but an (unusual) parametric representation of $S^2$. In order to compute the area of the shadowed part of $S^2$ one has to compute $d\omega=|g_x\times g_y|{\rm d}(x,y)$ and to integrate this over the intended rectangle in the $(x,y)$-plane.

The computation gives, as already remarked by Ben, $$d\omega={4\over(1+x^2+y^2)^2}{\rm d}(x,y)\ .$$ Transforming to polar coordinates one finds for the $[-1,1]^2$-rectangle the exact value $8\sqrt 2\ \arctan(1/\sqrt 2)\doteq 6.96366$.

-

The shadowing makes sense to me and fits my view of the problem. I see that an alternate (?) view of the problem is that we need to integrate over the area of the projection of $S$ onto the unit sphere.   However this confuses me even more, because I'm not sure what we need to do in order to represent the projection/transformation/etc. in the first place.  Also, I do not see how you arrived at $\frac{2}{1 + x^2 + y^2} \cdot \vec f$, can you explain some more? Is this the complete integral that gives us the solid angle?   – hrehf Apr 27 2011 at 16:37
@href: You were lucky: x^2+y^2+{1/over4}(1-x^2-y^2)^2={1/over4}(1+x^2+y^2)^2\$. – Christian Blatter Apr 27 2011 at 22:33
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 37, "mathjax_display_tex": 6, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9129917025566101, "perplexity_flag": "head"}