我希望用户能够在 SVG 画布上画一条线。首先,会显示一个由 1px x 1px 矩形组成的“粗略路径”,然后当用户释放鼠标时,他所描画的线条将转换为 SVG <path>
。这是创建矩形的代码:
var svg = d3.select('#svg-overlay'); //SVG Canvas
var roughPath = [];
( ... )
var tx = Math.round(e.pageX - offset.left);
var ty = Math.round(e.pageY - offset.top);
roughPath.push(svg.append('rect')
.attr('width', 1)
.attr('height', 1)
.attr('x', tx)
.attr('y', ty)
.attr('fill', 'white'));
绘制路径并转换为<path>
后,我希望能够删除存储在roughPath
. 但是,我不知道如何访问该数组中的元素。d3.select(roughPath)
没有工作,也没有d3.select(roughPath).selectAll('rect')
,也没有roughPath.forEach(...)
。有人可以建议我如何访问存储在数组中的 d3 元素,或者至少如何删除其中的所有元素roughPath
?