Bueno, el codigo es muy facil de implementar, sin embargo por falta de tiempo solo te paso la formula
El proceso se basa en el calculo por Determinantes en Matrices, que si deseas para 2D seria una matriz de 2xN, y si es en 3D seia de 3xN.
Hagamoslo para 2D. Viendo un poco de teoria:
Sea A1 , A2 , A3 , ........, An un polígono de “n” lados cuyos vértices nombrados en sentido antihorario, tiene como coordenadas :
A1: x1,y1
A2: x2,y2
A3: x3,y3
A4: x4,y4
.......
An: xn,yn
Entonces el area S esta dada por:
Llamada también formula determinante de Gauss
Debes de tener en cuenta que la primera coordenada se repite al final de la matriz
Pero como calculas la determiante, pues facil, solo debes de multiplicar y sumar de manera intercalada, tanto para la izquierda como para la derecha, luego estos dos valores los restas, el resultado de esta operacion es la determiante.
veamos un ejemplo:
A: x=10, y=-10
B: x=5, y=9
C: x=8, y=5
D: x=10, y=0
E: x=12, y=-5
Entonces, creamos la matriz:
A: 10 10
B: 5 9
C: 8 5
D: 10 0
E: 12 -5
A: 10 10
Fijate que el vertice A se ha repetido al final de la lista.
Ahora multiplicamos de manera cruzada tanto por la izquierda como por la derecha
Izq=10*9+5*5+8*0+10*(-5)+10*10=165
Der=10*5+9*8+5*10+0*12+(-5)*10=122
Iisto!!, entonces la determiante sera:
Det=165-122=43
Por lo tanto el area es:
Area=S=43/2=21.5
Ojo!!!! si el area te sale negativo, no te asustes, el motivo es porque no pusiste la lista de coordenadas en sentido antihorario, para corregirlo simplemente no consideres el sigo, en todo caso dicho signo te servira para "detectar" en que sentido se han tomado los vertices, esto es util por ejemplo para determinar los angulos internos del poligono.
Espero te sirva.....
Si tengo tiempo te paso el codigo....