lunes, 19 de febrero de 2007

Calculo de área mediante productos cruzados

En algunas ocasiones es necesario calcular el área de un poligono. Esto resulta bastante sencillo si sabemos de que polígono se trata. En cambio si no se tiene el poligono predefinido, es decir, puede ser un triangulo, pentagono, etc; entonces utilizamo el metodo de productos cruzados. A continuación os expongo el código de dicho método:
p --> Es una lista de puntos que defnen el poligono


public float calculoAreaProductosCruzados(List p)
{
float area = 0;
Point p1, p2;
for (int i = 0; i < p.Count; i++)
{
if ((i + 1) == p.Count)
{
p1 = p[i];
p2 = p[0];
}
else
{
p1 = p[i];
p2 = p[i + 1];
}
area = area + ((p2.X * p1.Y) - (p1.X * p2.Y));
}
return Math.Abs(area / 2);
}

El metodo es bastante sencillo y da muy buen resultado.

No hay comentarios: