Area of polygons

An example showing limits of this two methods, result is false for any fill-rule!

Two methods

1°) Using triangles from any point, and with points pair as vertices.
Area is calculated with vectorial product, result is positive or negative.

2°) Using trapeze, with base on x-axis and points pair as vertices.
Area is calculated by base*(y1+y2)/2, result is positive or negative

Final result is positive or negative, it depends of order for points.

On SVG picture, positive area is yellow and negative area is red.

Code

Get coordinates of points:
svgdoc=evt.getTarget().getOwnerDocument();obj=svgdoc.getElementById('pol1');
points=obj.getAttribute("points");coordo=points.split(" ");
In array coordo, you can have empty values ( CR, two or more spaces ), you must eliminate them.

p0=coordo[j].split(",");x1=p0;y1=p0; give coordinates xi and yi

Calculation
First method

area=area+(x1*y2-x2*y1)/2; if common vertice is ( 0 ; 0 )
Second method
area=area+(x2-x1)*(parseFloat(y2)+parseFloat(y1))/2;

Don't forget to take again first point to close