toolkit/javascript/d3/src/scale/polylinear.js
changeset 47 c0b4a8b5a012
equal deleted inserted replaced
46:efd9c589177a 47:c0b4a8b5a012
       
     1 function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
       
     2   var u = [],
       
     3       i = [],
       
     4       j = 0,
       
     5       n = domain.length;
       
     6 
       
     7   while (++j < n) {
       
     8     u.push(uninterpolate(domain[j - 1], domain[j]));
       
     9     i.push(interpolate(range[j - 1], range[j]));
       
    10   }
       
    11 
       
    12   return function(x) {
       
    13     var j = d3.bisect(domain, x, 1, domain.length - 1) - 1;
       
    14     return i[j](u[j](x));
       
    15   };
       
    16 }