forcegraph: only draw clients when zoomed in

This commit is contained in:
PetaByteBoy // Milan Pässler 2017-02-08 09:35:26 +01:00 committed by GitHub
parent ccc5f0f526
commit 1a6a4329b5

View file

@ -380,31 +380,32 @@ define(["d3"], function (d3) {
// -- draw clients --
ctx.save()
ctx.beginPath()
nodes.filter(visibleNodes).forEach(function (d) {
var clients = d.o.node.statistics.clients
if (clients === 0)
return
if (scale > 0.9)
nodes.filter(visibleNodes).forEach(function (d) {
var clients = d.o.node.statistics.clients
if (clients === 0)
return
var startDistance = 16
var radius = 3
var a = 1.2
var startAngle = Math.PI
var startDistance = 16
var radius = 3
var a = 1.2
var startAngle = Math.PI
for (var orbit = 0, i = 0; i < clients; orbit++) {
var distance = startDistance + orbit * 2 * radius * a
var n = Math.floor((Math.PI * distance) / (a * radius))
var delta = clients - i
for (var orbit = 0, i = 0; i < clients; orbit++) {
var distance = startDistance + orbit * 2 * radius * a
var n = Math.floor((Math.PI * distance) / (a * radius))
var delta = clients - i
for (var j = 0; j < Math.min(delta, n); i++, j++) {
var angle = 2 * Math.PI / n * j
var x = d.x + distance * Math.cos(angle + startAngle)
var y = d.y + distance * Math.sin(angle + startAngle)
for (var j = 0; j < Math.min(delta, n); i++, j++) {
var angle = 2 * Math.PI / n * j
var x = d.x + distance * Math.cos(angle + startAngle)
var y = d.y + distance * Math.sin(angle + startAngle)
ctx.moveTo(x, y)
ctx.arc(x, y, radius, 0, 2 * Math.PI)
ctx.moveTo(x, y)
ctx.arc(x, y, radius, 0, 2 * Math.PI)
}
}
}
})
})
ctx.fillStyle = clientColor
ctx.fill()