如果我有一套积分:
var sites = d3.range(30)
.map(function(d) { return [Math.random() * width, Math.random() * height]; });
和单点
var this_site = site[0]
如何找到与this_site
“相邻”的所有点的集合?
答案 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