Área de Polígonos Irregulares

Introducción

Pensé en compartir contigo una técnica ingeniosa que una vez usé para encontrar el área general de cualquier polígono.

El polígono puede ser regular (todos los ángulos son iguales y todos los lados son iguales) o irregular.

polígono regular polígono irregular
Regular Irregular

El polígono de ejemplo

Usemos este polígono como ejemplo:

polígono irregular

Coordenadas

El primer paso es convertir cada vértice (esquina) en una coordenada, como en una gráfica:

coordenadas en un polígono irregular

Área bajo un segmento de línea

Ahora, para cada segmento de línea, calcula el área hasta el eje x.

Coordenadas de un polígono irregular y área de un trapezoide en la gráfica

Entonces, ¿cómo calculamos cada área?

el área del trapezoide en la gráfica es ancho por la altura promedio

Promedia las dos alturas, luego multiplica por el ancho

Ejemplo: Para la forma del trapecio de arriba, tomamos las dos alturas (las coordenadas "y" 2.28 y 4.71) y calculamos la altura promedio:

(2.28+4.71)/2 = 3.495

Calcula el ancho (la diferencia entre las coordenadas "x" 2.66 y 0.72)

2.66-0.72 = 1.94

El área es ancho×altura:

1.94 × 3.495 = 6.7803

 

Suma todos

¡Ahora súmalos todos!

Pero el truco consiste en sumar cuando van hacia adelante (ancho positivo) y restar cuando van hacia atrás (ancho negativo).

Si siempre vas en el sentido de las agujas del reloj alrededor del polígono y siempre restas la primera coordenada "x" de la segunda, el resultado funciona naturalmente, así:

De A      
x y x y Altura
Promedio
Ancho (+/-) Área (+/-)
0.72 2.28 2.66 4.71 3.495 1.94 6.7803
2.66 4.71 5 3.5 4.105 2.34 9.6057
5 3.5 3.63 2.52 3.01 -1.37 -4.1237
3.63 2.52 4 1.6 2.06 0.37 0.7622
4 1.6 1.9 1 1.3 -2.1 -2.7300
1.9 1 0.72 2.28 1.64 -1.18 -1.9352
          Total: 8.3593

También puedes ir en la otra dirección. Si obtienes un área negativa, hazla positiva.

Y se ve así:

Área poligonal irregular. Todos los trapezoides

¡Eso es todo! El área es 8.3593

Herramienta para el área de un polígono

¡Me alegra que hayas leído hasta aquí! Se te recompensa con un enlace a la Herramienta para Dibujar el Área de un Polígono que puede hacer todo esto por ti. También acepta la entrada manual de coordenadas.


Fórmulas

¡Juguemos con algunas fórmulas!

triángulo irregular

Comencemos con un triángulo simple, con coordenadas (x1, y1), (x2, y2), (x3, y3)

Multiplicando los anchos por las alturas promedio obtenemos:

Área = (x2−x1)(y1+y2)/2 + (x3−x2)(y2+y3)/2 + (x1−x3)(y3+y1)/2

¡Pero podemos reescribirla! Expandamos todo para poder hacer algunos ajustes:

2×Área = x2y1 + x2y2 − x1y1 − x1y2 + x3y2 + x3y3 − x2y2 − x2y3 + x1y3 + x1y1 − x3y3 − x3y1

Agrupemos términos similares:

2×Área = x2y1 + x2y2−x2y2 + x1y1−x1y1 − x1y2 + x3y2 + x3y3−x3y3 − x2y3 + x1y3  − x3y1

Ahora simplificamos:

2×Área = x2y1 − x1y2 + x3y2 − x2y3 + x1y3 − x3y1

Reorganizando los términos (y cambiando signos), obtenemos la siguiente fórmula:

−2×Área = x1y2 + x2y3 + x3y1 − x2y1 − x3y2 − x1y3

En General

triángulo irregular

En general (para un polígono simple de n lados), usando valores absolutos || tenemos:

Área = ½| (x2−x1)(y1+y2) + (x3−x2)(y2+y3) + ... + (x1−xn)(yn+y1) |

o en su versión de la fórmula anterior:

Área = ½| x1y2 + x2y3 + ... + xny1 − x2y1 − x3y2 − ... − x1yn |

Usando JavaScript, la línea esencial (que se suma en todos los puntos) es:

let a1 = (pt1.x - pt0.x) * (pt0.y + pt1.y);  // para trapecio
let a1 = (pt0.x * pt1.y - pt0.y * pt1.x);  // para fórmula del cordón

Calculé el área de un pentágono regular 1,000,000 de veces y ambos métodos tardaron aproximadamente 43ms. ¡Imagino que el navegador generó el mismo código subyacente en ambos casos!



¡Refuerza tu aprendizaje resolviendo los siguientes retos sobre este tema! (Nota: están en inglés).

5288,5289,5290,5291,5292,5293,5294,5295,1762,1763