Consider a convex $n-$gon in $\mathbb{R}^2$ with sides contained in the lines $y=k_ix+b_i, 1\leq i\leq n.$ Then its area equals to $$ S=\frac{1}{2}\sum_{i=1}^{n} \frac{(b_{i+1}-b_i)^2}{k_{i+1}-k_i}. $$ Of course, it is not hard to prove this formula, but it still looks a bit mysterious to me.

Question Has this expression appeared somewhere? It will be wonderful to see a pretty proof of it.

Remark Another expression for $S$ can be found here, formula (17). It is a toy analog of a MHV scattering amplitude in N=4 SYM.

  • $\begingroup$ I take it the lines are numbered consecutively as you go around the polygon? $\endgroup$ Nov 30, 2019 at 22:27
  • 1
    $\begingroup$ Right, and n+1=1. $\endgroup$ Nov 30, 2019 at 22:27

2 Answers 2


Denote $A_i=(0,b_i)$. It is a point on $\ell_i=\{(x,y):y=k_ix+b_i\}$, and let $$P_i=\ell_i\cap \ell_{i+1}=\left(\frac{b_{i+1}-b_i}{k_i-k_{i+1}},\frac{k_ib_{i+1}-k_{i+1}b_i}{k_i-k_{i+1}}\right)$$ be the vertex of the polygon. The (properly oriented) area of $\triangle A_iP_iA_{i+1}$ equals $\frac{(b_i-b_{i+1})^2}{2(k_{i+1}-k_{i})}$, and the sum of such oriented areas is the oriented area of the polygon.

  • $\begingroup$ Ahaha, I see, ok. But still the formula looks strange) $\endgroup$ Nov 30, 2019 at 21:04
  • $\begingroup$ Why strange? $b_{i+1}$ is the base, and the remaining factor is the altitude; the $y$-cooedinate of $P_i$ is irrelevant. $\endgroup$ Dec 2, 2019 at 20:06

Fedor's derivation is very slick and elegant - surely the best way to guess the formula if you didn't know it already.

It does however require additional justification to show that the oriented areas for all possible line positions will cancel appropriately to get the polygon area, especially if you are aiming to prove the formula for non-convex shapes as well (not asked by the OP but it does apply in this case as well.)

If you want to avoid this and derive it from a standard area formula for polygons you can use Fedor's points of intersection $P_i$ and $P_{i+1}$ and plug them in to obtain:

\begin{equation} \begin{aligned} &\frac{1}{2}\sum_{i=1}^n \det|P_iP_{i+1}|\\ &=\frac{1}{2}\sum_{i=1}^n\frac{(b_{i+1}-b_i)(k_{i+1}b_{i+2}-k_{i+2}b_{i+1})-(b_{i+2}-b_{i+1})(k_{i}b_{i+1}-k_{i+1}b_{i})} {(k_i-k_{i+1})(k_{i+1}-k_{i+2})}\\ &=\frac{1}{2}\sum_{i=1}^n\frac{b_{i+1}^2(k_i-k_{i+2})-b_{i}b_{i+1}(k_{i+1}-k_{i+2})-b_{i+1}b_{i+2}(k_i-k_{i+1})} {(k_i-k_{i+1})(k_{i+1}-k_{i+2})}\\ &=\frac{1}{2}\sum_{i=1}^n\frac{b_{i+1}^2(k_i-k_{i+1}+k_{i+1}-k_{i+2})} {(k_i-k_{i+1})(k_{i+1}-k_{i+2})}-\frac{1}{2}\sum_{i=1}^n\frac{b_{i}b_{i+1}}{(k_i-k_{i+1})}-\frac{1}{2}\sum_{i=1}^n\frac{b_{i+1}b_{i+2}}{(k_{i+1}-k_{i+2})}\\ &=\frac{1}{2}\sum_{i=1}^n\frac{b_{i+1}^2} {(k_i-k_{i+1})} +\frac{1}{2}\sum_{i=1}^n\frac{b_{i+1}^2} {(k_{i+1}-k_{i+2})} -\frac{1}{2}\sum_{i=1}^n\frac{b_{i}b_{i+1}}{(k_i-k_{i+1})} -\frac{1}{2}\sum_{i=1}^n\frac{b_{i+1}b_{i+2}}{(k_{i+1}-k_{i+2})}\\ &=\frac{1}{2}\sum_{i=1}^n\frac{b_{i+1}^2} {(k_i-k_{i+1})} +\frac{1}{2}\sum_{i=1}^n\frac{b_{i}^2} {(k_{i}-k_{i+1})} -\frac{1}{2}\sum_{i=1}^n\frac{b_{i}b_{i+1}}{(k_i-k_{i+1})} -\frac{1}{2}\sum_{i=1}^n\frac{b_{i}b_{i+1}}{(k_{i}-k_{i+1})}\\ &=\frac{1}{2}\sum_{i=1}^n\frac{b_{i+1}^2+b_{i}^2-2b_{i}b_{i+1}} {(k_i-k_{i+1})}\\ &=\frac{1}{2}\sum_{i=1}^n\frac{(b_{i+1}-b_{i})^2} {(k_i-k_{i+1})} \end{aligned} \end{equation}

Update: Actually I just realised that Fedor's method looks to be the exact dual of the method behind the formula I used:

"Sum the areas to a point between two points meeting at consecutive pairs of polygon sides" (The method I used)

$\Updownarrow$ "point-line duality"

"Sum the areas to a line between two lines joining consecutive pairs of polygon points" (Fedor's method)

So this might be a good way to justify it.

  • $\begingroup$ @FedorPetrov's derivation mentioned in the post. $\endgroup$
    – LSpice
    Sep 18, 2021 at 0:01

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.