(function() { var RADIUS, arc, height, partition, svg, vis, width, zoom, zoomable_layer; RADIUS = 250; partition = d3.layout.partition().sort(null).size([2 * Math.PI, RADIUS * RADIUS]).value(function(node) { return node.size; }); arc = d3.svg.arc().startAngle(function(d) { return d.x; }).endAngle(function(d) { return d.x + d.dx; }).innerRadius(function(d) { return Math.sqrt(d.y); }).outerRadius(function(d) { return Math.sqrt(d.y + d.dy); }); svg = d3.select('svg'); width = svg.node().getBoundingClientRect().width; height = svg.node().getBoundingClientRect().height; svg.attr({ viewBox: "" + (-width / 2) + " " + (-height / 2) + " " + width + " " + height }); zoomable_layer = svg.append('g'); zoom = d3.behavior.zoom().scaleExtent([1, 10]).on('zoom', function() { return zoomable_layer.attr({ transform: "translate(" + (zoom.translate()) + ")scale(" + (zoom.scale()) + ")" }); }); svg.call(zoom); vis = zoomable_layer.append('g'); d3.json('http://wafi.iit.cnr.it/webvis/tmp/flare.json', function(tree) { var enter_nodes, nodes; vis.datum(tree); nodes = vis.selectAll('.node').data(function(t) { return partition.nodes(t); }); enter_nodes = nodes.enter().insert('path', 'path').attr({ "class": 'node', d: arc }); enter_nodes.append('title').text(function(node) { return node.name; }); return vis.append('text').text(function(tree) { return tree.name; }).attr({ "class": 'label', dy: '0.35em' }); }); }).call(this);