给定一组随机点中的单个点,使用d3 voronoi

时间:2016-12-11 09:58:58

标签: javascript d3.js

如果我有一套积分:

var sites = d3.range(30)
.map(function(d) { return [Math.random() * width, Math.random() * height]; });

和单点

var this_site = site[0]

如何找到与this_site“相邻”的所有点的集合?

1 个答案:

答案 0 :(得分:0)

可以使用d3.voronoi来实现此目的。

var diagram = voronoi(sites);
var links = diagram.links()
var polygons = diagram.polygons()
polygons.forEach(function(p) {
  p.adjacent = false
})

var this_site = sites[0] 
var this_polygon = polygons[0] 
var counter = 1
links.forEach(function(l) {
  if (l.source == this_site || l.target == this_site) {

    //get corresponding polygons
    polygons.forEach(function(p) {
      if (p.data == l.target || p.data == l.source) {
        p["adjacent"] = true
      } 

    })
  }

})

这是一个有效的例子: http://blockbuilder.org/RobinL/76580040f9795503ae9586a9b367aa51