我看到了this post last night,想要复制它/让它变得更好--因为它让我感兴趣。但是,我坚持将选择内容显示为SVG矩形。我认为通过在调用套索的函数中添加文本会起作用,但它不起作用。我已经包含了有问题的代码,并想知道我在哪里出错了,以便改进。谢谢。
如果你需要更多的代码,哈啦。
var textBox = svg.append("g")
.attr("transform", "translate(5,385)");
textBox.append("rect")
.attr("height", 10)
.attr("width", 100)
.style("stroke", "black")
.style("fill", "none")
.style("stroke-width", 1);
var lasso_start = function() {
lasso.items()
.attr("r",7)
.classed("not_possible",true)
.classed("selected",false);
};
var lasso_draw = function() {
lasso.possibleItems()
.classed("not_possible",false)
.classed("possible",true);
lasso.notPossibleItems()
.classed("not_possible",true)
.classed("possible",false);
};
var lasso_end = function() {
lasso.items()
.classed("not_possible",false)
.classed("possible",false);
selected = lasso.selectedItems()
.classed("selected", true)
.attr("r", 13);
var selectedDots = selected.data().map(d=>d[0]);
};
var lasso = d3.lasso()
.closePathSelect(true)
.closePathDistance(100)
.items(circles)
.targetArea(area)
.on("start",lasso_start)
.on("draw",lasso_draw)
.on("end",function(d) {
textBox.append("text")
.attr("x", 10)
.attr("y", 20)
.text(lasso_end)
});
svg.call(lasso);
https://stackoverflow.com/questions/51863769
复制相似问题