ユーザーが SVG キャンバスに線を引けるようにしたい。最初に 1px × 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 要素に到達する方法、または少なくとも .d3 内のすべての要素を削除する方法を誰かが提案できますroughPath
か?