For simple polygons, you can use Green-Riemann formula, as explained there: http://www.math.unl.edu/~mbrittenham2/classwk/208s04/inclass/areas_of_polygons.pdf
This amounts to summing the (algebraic) areas of triangles M_iOM_j, with O the origin (or any point), and where the algebraic area of the triangle BOA is positive iff the angle BOA is positive.
For polyedras, you can use Ostrogradski's formula to generalize the above. See eg. there: http://en.wikipedia.org/wiki/Polyhedron#Volume
You can find a review of the above method for computing volumes there: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.3873&rep=rep1&type=pdf