X-Git-Url: https://pwan.org/git/?p=tech-radar.git;a=blobdiff_plain;f=src%2Fgraphing%2Fradar.js;h=704c57236c0f9409c11c8ddb7ebf8d2707be91b7;hp=b6386c6c2af92bdc5969c2afec6aa8170c39b600;hb=bde8916e61332e70ad85dd5f65829d37b6df1245;hpb=98727f4b22defac583218fbbde96b914638482e8 diff --git a/src/graphing/radar.js b/src/graphing/radar.js index b6386c6..704c572 100644 --- a/src/graphing/radar.js +++ b/src/graphing/radar.js @@ -1,5 +1,7 @@ tr.graphing.Radar = function (svg, size, radar) { - var self = {}; + var self, fib; + self = {}; + fib = new tr.util.Fib(); svg.attr('width', size).attr('height', size); @@ -23,16 +25,22 @@ tr.graphing.Radar = function (svg, size, radar) { .attr('stroke-width', 14); }; + function getRadius(cycles, i) { + var sequence = fib.sequence(cycles.length); + var total = fib.sum(cycles.length); + var sum = fib.sum(i); + + return center() - (center() * sum / total); + } + function plotCircles(cycles) { var increment; - increment = Math.round(center() / cycles.length); - cycles.forEach(function (cycle, i) { svg.append('circle') .attr('cx', center()) .attr('cy', center()) - .attr('r', center() - increment * i); + .attr('r', getRadius(cycles, i)); }); } @@ -44,12 +52,12 @@ tr.graphing.Radar = function (svg, size, radar) { cycles.forEach(function (cycle, i) { svg.append('text') .attr('y', center() + 4) - .attr('x', (i * increment) + 10) + .attr('x', center() - getRadius(cycles, i) + 10) .text(cycle.name()); svg.append('text') .attr('y', center() + 4) - .attr('x', size - (i * increment) - 10) + .attr('x', center() + getRadius(cycles, i) - 10) .attr('text-anchor', 'end') .text(cycle.name()); });