我希望用戶能夠在SVG畫布上繪製一條線。首先,顯示由1px×1px矩形組成的「粗糙路徑」,然後當用戶釋放鼠標時,他追蹤的線被轉換爲SVG <path>
。這是創建矩形代碼:訪問d3.js中的數組元素
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
內的所有元素?
謝謝Scott!我原本也想這樣做,但是,習慣於C++和指針,我認爲「正確」的方式是將這些數組當作指針數組,並從那裏完成我所有的工作。很高興聽到這是不錯的風格與class/id :) –