0
我對D3非常新,只是掌握了它。我有讓用戶在mousedown上畫圈的代碼。下面是搗鼓它:http://jsfiddle.net/amwill/HhLVt/使用戶繪製後可以拖動形狀
function getRadius(x1, y1, x2, y2) {
return Math.sqrt((Math.pow(x2 - x1, 2) + (Math.pow(y2 - y1, 2))));
}
var circle, isDown = false, m1, m2;
var vis = d3.select("body").append("svg")
.on("mousedown", mousedown);
function mousedown() {
if (!isDown) {
m1 = d3.mouse(this);
circle = vis.append("circle")
.attr("cx", m1[0])
.attr("cy", m1[1])
.attr("r", 0);
}
isDown = !isDown;
vis.on("mousemove", mousemove);
}
function mousemove() {
m2 = d3.mouse(this);
if (isDown) {
m2 = d3.mouse(this);
circle.attr("r", getRadius(m1[0], m1[1], m2[0],m2[1]));
}
}
但我想用戶繪製後,它有一個形狀拖動。我知道D3有拖動功能,但我不太清楚如何實現它。誰能幫我?
我認爲[這](http://jsfiddle.net/iweczek/KDnVR/1/)正是你要尋找的。 –
這對於這個特殊的問題有點複雜,但我認爲這對未來會有幫助。謝謝! – cocoa
下面是一個可拖動的圈子http://jsfiddle.net/uAwkA/的簡單示例,以引用 – jarbaugh