Finding out the area of a triangle if the coordinates of the three vertices are given

What is the simplest way to find out the area of a triangle if the coordinates of the three vertices are given in $x$-$y$ plane?

One approach is to find the length of each side from the coordinates given and then apply Heron’s formula. Is this the best way possible?

Is it possible to compare the area of triangles with their coordinates provided without actually calculating side lengths?

Solutions Collecting From Web of "Finding out the area of a triangle if the coordinates of the three vertices are given"

What you are looking for is the shoelace formula:

\begin{align*}
\text{Area}
&= \frac12 \big| (x_A – x_C) (y_B – y_A) – (x_A – x_B) (y_C – y_A) \big|\\
&= \frac12 \big| x_A y_B + x_B y_C + x_C y_A – x_A y_C – x_C y_B – x_B y_A \big|\\
&= \frac12 \big|\det \begin{bmatrix}
x_A & x_B & x_C \\
y_A & y_B & y_C \\
1 & 1 & 1
\end{bmatrix}\big|
\end{align*}

The last version tells you how to generalize the formula to higher dimensions.

Heron’s formula is inefficient; there is in fact a direct formula. If the triangle has one vertex at the origin, and the other two vertices are $(a,b)$ and $(c,d)$, the formula for its area is
$$
A = \frac{\left| ad – bc \right|}{2}
$$

To get a formula where the vertices can be anywhere, just subtract the coordinates of the third vertex from the coordinates of the other two (translating the triangle) and then use the above formula.

The simplest way to remember how to calculate is by taking $\frac{1}{2}$ the value of the determinant of the matrix
$$
\begin{bmatrix}
1 & 1 & 1 \\
x_1 & x_2 & x_3 \\
y_1 & y_2 & y_3
\end{bmatrix}
$$

You know that AB x AC is a vector perpendicular to the plan ABC such that |AB x AC|= Area of the parallelogram ABA’C. Thus this area is equal to ½ |AB x AC|.

enter image description here

From AB= $(x_2 -x_1, y_2-y_1)$; AC= $(x_3-x_1, y_3-y_1)$, we deduce then

Area of $\Delta ABC$ = $\frac12$$[(x_2-x_1)(y_3-y_1)- (x_3-x_1)(y_2-y_1)]$

if $(x_1,y_1),(x_2,y_2),(x_3,y_3)$ are the vertices of a triangle then its area is given by

$$|\frac12(x_1(y_2-y_3)+x_2(y_3-y_1)+x_3(y_1-y_2))|$$

The area of a triangle $P(x_1, y_1)$, $Q(x_2, y_2)$ and $R(x_3, y_3)$ is given by
$$\triangle= \left|\frac{1}{2}(x_{1} (y_{2} – y_{3}) + x_{2} (y_{3} – y_{1}) + x_{3} (y_{1} – y_{2}))\right| $$
If the area of triangle is zero, it means the points are collinear.

If we code this in Python3, it will look like:

def triangle_area(x1, y1, x2, y2, x3, y3):
    return abs(0.5*(x1*(y1-y2)+x2*(y3-y1)+x3*(y1-y2)))

The area $A$ of the triangle two of whose vertices lie on the axes, with coordinates $(a, 0)$, $(0, b)$, and a third vertex $(c, d)$ is obtained from previous formula by a mere horizontal axis shift of -a units as
$$A = \frac{|-ad + b(a – c)|}{2}$$

For fun, I’ll just throw out the really long way that I learned in 3rd grade, only because it hasn’t been submitted. I don’t endorse this, the Shoelace/Surveyor’s formula is way better.

  1. Determine the distance between two of the three points, say $ \big( x_{1}, y_{1} \big) $ and $ \big( x_{2}, y_{2} \big) $.
    $d = \sqrt{ \big(x_{2} – x_{1}\big) ^{2} + \big(y_{2} – y_{1}\big) ^{2} } $
  2. Determine the slope $m = \frac{y_{2} – y_{1}}{x_{2} – x_{1}} $ and y-intercept, $a = y_{1} – \big(m \times x_{1}\big)$, of the line between $ \big( x_{1}, y_{1} \big) $ and $ \big( x_{2}, y_{2} \big) $.
  3. Determine the slope of the a line perpendicular the line from $ \big( x_{1}, y_{1} \big) $ and $ \big( x_{2}, y_{2} \big) $, which is the negative reciprocal of the first slope. $n = \frac{-1}{m} $
  4. Determine the equation of the line parallel to this second line, that passes through the third point $ \big( x_{3}, y_{3} \big)$, by finding the y-intercept in $y = n*x+b$, since you already have the slope and a point on the line. $ y_{3} – \big(n \times x_{3}\big)=b$.
  5. Determine where this new line intersects the line between $ \big( x_{1}, y_{1} \big) $ and $ \big( x_{2}, y_{2} \big) $, by solving the system of equations of the new line and the original line: $y = m*x+b$ and $y = n*x+b$. Call this point $ \big( x_{4}, y_{4} \big) $. I won’t write this out, I’ll leave it as an “exercise for the reader”.
  6. Determine the distance between $ \big( x_{3}, y_{3} \big) $ and the new point$ \big( x_{4}, y_{4} \big) $.
    $c = \sqrt{ \big(x_{4} – x_{3}\big) ^{2} + \big(y_{4} – y_{3}\big) ^{2} } $
  7. If $d$ is the base of the triangle, and $c$ the height, the area is $A = \frac{1}{2} c*d$.
  8. Realize you’ve spent several minutes solving a trivial problem… cry silently.