Skip to content

Commit f6a6354

Browse files
committed
Shorter implementation of polygon.area.
1 parent 2236488 commit f6a6354

3 files changed

Lines changed: 13 additions & 7 deletions

File tree

d3.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4285,9 +4285,11 @@ d3 = function() {
42854285
}
42864286
d3.geom.polygon = function(coordinates) {
42874287
coordinates.area = function() {
4288-
var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1];
4288+
var i = -1, n = coordinates.length, a, b = coordinates[n - 1], area = 0;
42894289
while (++i < n) {
4290-
area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1];
4290+
a = b;
4291+
b = coordinates[i];
4292+
area += a[1] * b[0] - a[0] * b[1];
42914293
}
42924294
return area * .5;
42934295
};

0 commit comments

Comments
 (0)