pacman foo
parent
54feeea4cd
commit
6e3d4a9fca
|
@ -176,6 +176,12 @@ vis.append("g").attr("class", "links")
|
|||
|
||||
vis.append("g").attr("class", "nodes")
|
||||
|
||||
var pm = vis.append("path")
|
||||
.style("fill", "#ff0")
|
||||
.style("stroke", "#000")
|
||||
.style("stroke-width", 2.5)
|
||||
.style("stroke-linejoin", "round")
|
||||
|
||||
var linkedByIndex
|
||||
|
||||
var force = d3.layout.force()
|
||||
|
@ -199,6 +205,13 @@ var force = d3.layout.force()
|
|||
}
|
||||
})
|
||||
|
||||
var angle = d3.scale.linear()
|
||||
.domain([0, 1, 2, 3])
|
||||
.range([0.01, Math.PI/4, 0.01, Math.PI/4])
|
||||
var a = 0
|
||||
|
||||
var p = {x: 0, y: 0}
|
||||
|
||||
force.on("tick", function() {
|
||||
var size = force.size()
|
||||
var nodes = force.nodes()
|
||||
|
@ -226,6 +239,44 @@ force.on("tick", function() {
|
|||
vis.selectAll(".node").attr("transform", function(d) {
|
||||
return "translate(" + d.x + "," + d.y + ")";
|
||||
})
|
||||
|
||||
a = (a + 0.10)%2
|
||||
|
||||
pm.attr("d", d3.svg.arc().innerRadius(0)
|
||||
.outerRadius(24).endAngle(-angle(a) + Math.PI/2 + 2*Math.PI).startAngle(angle(a) + Math.PI/2))
|
||||
|
||||
var closest = null
|
||||
var dd = Infinity;
|
||||
for (i = 0; i < n; i++) {
|
||||
var o = nodes[i]
|
||||
if (o.dead)
|
||||
continue
|
||||
|
||||
var d = Math.pow((o.x - p.x),2) + Math.pow( o.y - p.y, 2)
|
||||
if (d < dd) {
|
||||
dd = d
|
||||
closest = o
|
||||
}
|
||||
}
|
||||
|
||||
var dx = closest.x - p.x
|
||||
var dy = closest.y - p.y
|
||||
|
||||
var d = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2))
|
||||
|
||||
dx = dx/d
|
||||
dy = dy/d
|
||||
|
||||
if (d>1) {
|
||||
|
||||
p.x += dx
|
||||
p.y += dy
|
||||
} else {
|
||||
closest.dead = true
|
||||
}
|
||||
|
||||
pm.attr("transform", "matrix(" + [dx, dy, -dy, dx, p.x, p.y].join(",") + ")")
|
||||
|
||||
})
|
||||
|
||||
var data
|
||||
|
|
Loading…
Reference in New Issue