Portada arrow Algoritmos arrow Area de un polígono irregular: producto en cruz
Area de un polígono irregular: producto en cruz
martes, 16 de enero de 2007
Índice del Artículo
Area de un polígono irregular: producto en cruz
Área de un triángulo
Área de un polígono
Optimización final
Ejemplo práctico

Bueno... con esta última fórmula, ya tenemos bien sencillo utilizarla en cualquier programa.

Por ejemplo, observa cómo la hemos utilizado en esta clase Poligono, programada en C#. Básicamente, ésta clase contiene una lista de puntos ordenada. Cada punto representa a un vértice del polígono. Por supuesto, este ejemplo no es funcional, sólo es una mini demostración de cómo implementar el algoritmo descrito en éste artículo.

 
class Punto
{
  public double x, y;
 
  public Punto(double x, double y)
    {
      this.x=x;
      this.y=y;
    }
 
} //Punto
 
//-------------
 
class Poligono
{
  //lista de vértices
  //Suponemos que siguen sentido horario o
  //antihorario y que ningún segmento cruza a
  //otro. Cada vértice aparece una sola vez
  //en la lista. El último se une al primero
  List<punto> vertices = new List<punto>();
 
  public void nuevoVertice(Punto p)
  {
    vertices.Add(p);
  }
 
  public double area()
  {
    double suma=0;
    int i;
    //Sólo calculamos si el polígono tiene
    //al menos tres vértices
    if (vertices.Count>=3) {
      //producto en cruz desde 1 hasta n-1
      for(i=0;i<vertices.Count-1;i++) {
        suma+=vertices[i].x*vertices[i+1].y-
              vertices[i].y*vertices[i+1].x;
        }//for
      //ahora el último con el primero
      i=vertices.Count-1;
      suma+=vertices[i].x*vertices[0].y-
            vertices[i].y*vertices[0].x;
    }//if
    return Math.Abs(suma) / 2;
  }//area
}//class
 

Para probar, basta crear un polígono, y añadir unos cuantos vértices.

 
//ejemplo utilización
Poligono p = new Poligono();
p.nuevoVertice(new Punto(2, 3));
p.nuevoVertice(new Punto(7, 1));
p.nuevoVertice(new Punto(5, 7));
Console.WriteLine(p.area());
 

 



 
←Artículo anterior   Artículo siguiente→

Categorías

Artículos relacionados

No se encontraron artículos relacionados

Suscríbete

RSS feed Sindicación RSS

(¿Qué es la sindicación RSS?)


Suscribir por e-mail

¿Dónde estoy?

Estás en La tecla de ESCAPE, un sitio web personal en el que nos gusta hablar de algoritmos, informática, tecnología, ciencia, ingeniería, internet... y cualquier tontería que se nos ocurra. El punto de vista de nuestros artículos técnicos suele ser muy básico, así que a menudo adoptamos grandes simplificaciones. (Más...-Términos de uso)