有点的网格线。如何更好地组织网格线?
是否有另一种更好的性能解决方案,因为如果我添加了许多svg元素(例如矩形,圆形,路径)并增加了网格的维度,我将在使用缩放,移动元素时看到冻结效果。 。
网格的大小发生了变化。
另外,如何创建无限的网格线,而不是有限的(gridCountX,gridCountY)?
感谢
var svg = d3.select("body").append("svg");
var svgG = svg.append("g");
var gridLines = svgG.append("g").classed("grid-lines-container", true).data(["gridLines"]);
var gridCountX = _.range(100);
var gridCountY = _.range(100);
var size = 10;
gridLines.selectAll("g").data(gridCountY)
.enter()
.append("g")
.each(function(d) {
d3.select(this).selectAll("circle").data(gridCountX).enter()
.append("circle")
.attr("cx", function(_d) {return _d*size;})
.attr("cy", function(_d) {return d*size;})
.attr("r", 0.5)
.attr("style", function() {
return "stroke: black;";
});
});
var zoomSvg = d3.zoom()
.scaleExtent([1, 10])
.on("zoom", function(){
svgG.attr("transform", d3.event.transform);
});
svg.call(zoomSvg);
svg {
width: 100%;
height: 100%;
border: 1px solid #a1a1a1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://d3js.org/d3.v4.min.js"></script>
您的问题询问网格线,但您的示例代码是点的集合? – ColinE
这是网格线(例如,可能是线而不是点)。其中存在问题的症结所在:找到一个不会影响性能的解决方案 –