Skip to content

Commit ebf9a94

Browse files
committed
Close, but not quite right.
1 parent 4f51b3f commit ebf9a94

3 files changed

Lines changed: 50 additions & 7 deletions

File tree

d3.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5158,7 +5158,20 @@ d3 = function() {
51585158
});
51595159
};
51605160
voronoi.triangles = function(data) {
5161-
throw new Error("not yet implemented");
5161+
var triangles = [];
5162+
d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {
5163+
var site = cell.site, edges = cell.edges, j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;
5164+
while (++j < m) {
5165+
e0 = e1;
5166+
s0 = s1;
5167+
e1 = edges[j].edge;
5168+
s1 = e1.l === site ? e1.r : e1.l;
5169+
if (d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {
5170+
triangles.push([ data[i], data[s0.i], data[s1.i] ]);
5171+
}
5172+
}
5173+
});
5174+
return triangles;
51625175
};
51635176
voronoi.x = function(_) {
51645177
return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;
@@ -5178,6 +5191,9 @@ d3 = function() {
51785191
return voronoi;
51795192
};
51805193
var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];
5194+
function d3_geom_voronoiTriangleArea(a, b, c) {
5195+
return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);
5196+
}
51815197
d3.geom.delaunay = function(vertices) {
51825198
throw new Error("not yet implemented");
51835199
};

0 commit comments

Comments
 (0)