[TASK] Add zoom limit for drawing clients in forcegraph
This commit is contained in:
parent
cd0e59ffa9
commit
d2090225c5
@ -395,33 +395,34 @@ define(['d3', 'helper'], function (d3, helper) {
|
|||||||
// -- draw clients --
|
// -- draw clients --
|
||||||
ctx.save();
|
ctx.save();
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
nodes.filter(visibleNodes).forEach(function (d) {
|
if (scale > 0.9) {
|
||||||
var clients = d.o.node.statistics.clients;
|
nodes.filter(visibleNodes).forEach(function (d) {
|
||||||
if (clients === 0) {
|
var clients = d.o.node.statistics.clients;
|
||||||
return;
|
if (clients === 0) {
|
||||||
}
|
return;
|
||||||
|
|
||||||
var startDistance = 16;
|
|
||||||
var radius = 3;
|
|
||||||
var a = 1.2;
|
|
||||||
var startAngle = Math.PI;
|
|
||||||
|
|
||||||
for (var orbit = 0, i = 0; i < clients; orbit++) {
|
|
||||||
var di = startDistance + orbit * 2 * radius * a;
|
|
||||||
var n = Math.floor((Math.PI * di) / (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 + di * Math.cos(angle + startAngle);
|
|
||||||
var y = d.y + di * Math.sin(angle + startAngle);
|
|
||||||
|
|
||||||
ctx.moveTo(x, y);
|
|
||||||
ctx.arc(x, y, radius, 0, 2 * 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 di = startDistance + orbit * 2 * radius * a;
|
||||||
|
var n = Math.floor((Math.PI * di) / (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 + di * Math.cos(angle + startAngle);
|
||||||
|
var y = d.y + di * Math.sin(angle + startAngle);
|
||||||
|
|
||||||
|
ctx.moveTo(x, y);
|
||||||
|
ctx.arc(x, y, radius, 0, 2 * Math.PI);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
ctx.fillStyle = clientColor;
|
ctx.fillStyle = clientColor;
|
||||||
ctx.fill();
|
ctx.fill();
|
||||||
ctx.restore();
|
ctx.restore();
|
||||||
|
Loading…
Reference in New Issue
Block a user