Vaya, lleva tiempo inactivo este hilo al parecer todos nos echamos unas largas vacaciones xD, por mi parte ya devuelta con las actividades diarias, ahora veamos el ultimo ejercicio propuesto:
Cita:
Iniciado por Pantaláimon Area de un polígono.
Dado un array de puntos donde cada punto se une geométricamente por una línea recta al siguiente y el último se une al primero. Esto puede representar un polígono. Se debe crear una función que calcule el area de dicho polígono. Hay que considerar todos los tipos de polígonos que pueden ser descritos:
http://commons.wikimedia.org/wiki/Fi...n_types_es.svg Solución:
Código C++:
Ver original#include <stdio.h>
typedef struct
{
double x, y;
} Punto;
double AreaPoligono(Punto *puntos, int N, int i)
{
return (i < N) ? puntos[i].x * puntos[((i + 1) % N)].y +
AreaPoligono(puntos, N, i + 1) -
puntos[i].y * puntos[((i + 1) % N)].x : 0;
}
double areaPoligono(Punto *puntos, int N)
{
double area = AreaPoligono(puntos, N, 0) / 2;
return (area < 0) ? -area : area;
}
int main(void)
{
Punto puntos[] = { {-3,-2}, {3,-2}, {1,5} };
int n = sizeof(puntos) / sizeof(Punto);
printf("Area del poligono: %g\n", areaPoligono
(puntos
, n
)); return 0;
}
Espero que los demás compañeros se vayan reportando estos días, no
eferion ?