initializing the graph in a DOM node
[tech-radar.git] / src / graphing / radar.js
index 0b3eb00..e588663 100644 (file)
@@ -1,11 +1,12 @@
 tr.graphing.Radar = function (size, radar) {
   var self, fib, svg;
 
-  svg = d3.select("body").append("svg");
   fib = new tr.util.Fib();
 
   self = {};
-  self.svg = svg;
+  self.svg = function () {
+    return svg;
+  }
 
   function center () {
     return Math.round(size/2);
@@ -94,9 +95,8 @@ tr.graphing.Radar = function (size, radar) {
   }
 
   function plotBlips(cycles, quadrant, adjustX, adjustY) {
-    var blips, number;
+    var blips;
     blips = quadrant.blips();
-    number = 0;
     cycles.forEach(function (cycle, i) {
       var maxRadius, minRadius, cycleBlips;
 
@@ -112,7 +112,7 @@ tr.graphing.Radar = function (size, radar) {
 
         var split = blip.name().split('');
         var sum = split.reduce(function (p, c) { return p + c.charCodeAt(0); }, 0);
-        chance = new Chance(sum * cycle.name().length * number);
+        chance = new Chance(sum * cycle.name().length * blip.number());
 
         angleInRad = Math.PI * chance.integer({ min: 13, max: 85 }) / 180;
         radius = chance.floating({ min: minRadius + 25, max: maxRadius - 10 });
@@ -131,7 +131,7 @@ tr.graphing.Radar = function (size, radar) {
           .attr('y', y + 4)
           .attr('class', 'blip-text')
           .attr('text-anchor', 'middle')
-          .text(++number)
+          .text(blip.number())
       });
     });
   };
@@ -156,6 +156,11 @@ tr.graphing.Radar = function (size, radar) {
     plotName(quadrants.IV.name(), 'end', size -10, size - 10)
   }
 
+  self.init = function (selector) {
+    svg = d3.select(selector || 'body').append("svg");
+    return self;
+  };
+
   self.plot = function () {
     var cycles, quadrants;