MCPcopy Create free account
hub / github.com/idank/explainshell / d3_scale_polylinear

Function d3_scale_polylinear

explainshell/web/static/js/d3.v3.js:6382–6396  ·  view source on GitHub ↗
(domain, range, uninterpolate, interpolate)

Source from the content-addressed store, hash-verified

6380 return domain;
6381 }
6382 function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
6383 var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
6384 if (domain[k] < domain[0]) {
6385 domain = domain.slice().reverse();
6386 range = range.slice().reverse();
6387 }
6388 while (++j <= k) {
6389 u.push(uninterpolate(domain[j - 1], domain[j]));
6390 i.push(interpolate(range[j - 1], range[j]));
6391 }
6392 return function(x) {
6393 var j = d3.bisect(domain, x, 1, k) - 1;
6394 return i[j](u[j](x));
6395 };
6396 }
6397 d3.scale.linear = function() {
6398 return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
6399 };

Callers

nothing calls this directly

Calls 1

interpolateFunction · 0.85

Tested by

no test coverage detected