Если вы многоугольник простой (у него нет общей точки, за исключением пар последовательных сегментов), тогда вам поможет Википедия:
Формула для области:
(предполагается, что последняя точка совпадает с первой)
Вы можете легко реализовать это как
float area = 0.0f;
for (int i = 0; i < numVertices - 1; ++i)
area += point[i].x * point[i+1].y - point[i+1].x * point[i].y;
area += point[numVertices-1].x * point[0].y - point[0].x * point[numVertices-1].y;
area = abs(area) / 2.0f;
Конечно, вершины должны быть упорядочены в соответствии с их естественным следованием в многоугольнике.