Any polygon can be looked at as a collection of triangles with common top opposite of base, and with one side of polygon as base. Area of polygon equals to sum of areas of those triangles. Area of triangle equals to (1/2)*LengthOfBase*HeightOfTriangle. So generally your task will be to determine where is the common top for all triangles, and how to calculate the height of every triangle. The calculation of height depends on:
1. the number of sides/corners;
2. length(s) of sides;
3. symmetry of polygon.
3a) When polygon is fully symmetric (it is symmetric for every diagonal, i.e. axis drawn through certain central point  e.g. a square), 2 first conditions are enough;
3b) When polygon is symmetric for 2 different diagonals intersecting at 90º, and all sides are equal (e.g. romb), you need additional parameter (how many degrees is at one corner, how many sides are there, and what is the length of side;
3c) The number of needed parameters will grow with number of different diagonals and number of different side lengths growing;
3d) The most complex will be case when you have no symmetry at all. I'm not sure about this, but probably you need the number of sides, lengths of all sides, and degrees for (NumberOfSides  1) corners.
