Fix for re-entrant area calculation.

This commit is contained in:
Mike Bostock 2012-12-12 19:02:09 -08:00
Родитель 3b11c2ca5b
Коммит 4a9a9cad0b
4 изменённых файлов: 11 добавлений и 11 удалений

8
d3.js поставляемый
Просмотреть файл

@ -6301,9 +6301,9 @@
}
}
path.area = function(object) {
d3_geo_areaSum = 0;
d3_geo_pathAreaSum = 0;
d3.geo.stream(object, projection.stream(d3_geo_pathArea));
return d3_geo_areaSum;
return d3_geo_pathAreaSum;
};
path.centroid = function(object) {
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
@ -6401,7 +6401,7 @@
}
return stream;
}
var d3_geo_pathAreaPolygon, d3_geo_pathArea = {
var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
@ -6411,7 +6411,7 @@
},
polygonEnd: function() {
d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
d3_geo_areaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
}
};
function d3_geo_pathAreaRingStart() {

6
d3.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -1,6 +1,6 @@
// TODO Unify this code with d3.geom.polygon area?
var d3_geo_pathAreaPolygon, d3_geo_pathArea = {
var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
@ -12,7 +12,7 @@ var d3_geo_pathAreaPolygon, d3_geo_pathArea = {
},
polygonEnd: function() {
d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
d3_geo_areaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
}
};

Просмотреть файл

@ -21,9 +21,9 @@ d3.geo.path = function() {
}
path.area = function(object) {
d3_geo_areaSum = 0;
d3_geo_pathAreaSum = 0;
d3.geo.stream(object, projection.stream(d3_geo_pathArea));
return d3_geo_areaSum;
return d3_geo_pathAreaSum;
};
path.centroid = function(object) {