我有一个项目使用这个Voronoi Tessellation插件,其中一系列坐标代表温度传感器的位置 - 我正在考虑使用JSON来表示他们的位置和检测到的温度值。
当鼠标悬停在某个区域时,我需要显示我正在参考的传感器(点)的温度值(我鼠标悬停的区域)。
https://github.com/mbostock/d3/wiki/Voronoi-Geom
我一直在反复阅读本文档,但仍无法弄清楚是否可以检测鼠标悬停区域所属的特定点。
以前有人试过这个吗?有关它的好例子吗?
答案 0 :(得分:1)
如果我理解你的问题,你想在用户鼠标进入voronoi分区时在顶点处显示文字吗?
您可以通过处理每条路径的mouseenter / leave事件来完成此操作:
path.enter().append("path")
.attr("class", function(d, i) {
return "q" + (i % 9) + "-9";
})
.attr("d", polygon)
.on("mouseenter", function(d,i){
if (!someTexts[i]) { // get some fake value
someTexts[i] = (Math.random()*100).toFixed(1);
}
// append text
currentText = svg.append("text")
.text(someTexts[i])
.attr("transform","translate(" + vertices[i] + ")")
.attr("text-anchor","middle")
.attr("alignment-baseline", "middle");
})
.on("mouseleave", function(d,i){
// remove text
currentText.remove();
});
示例here。