Skip to content

Instantly share code, notes, and snippets.

@Mortimerp9
Created May 30, 2015 05:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mortimerp9/db39445468d639c640d8 to your computer and use it in GitHub Desktop.
Save Mortimerp9/db39445468d639c640d8 to your computer and use it in GitHub Desktop.
Scales in javascript - d3 inspired
'use strict';
module.exports = (function() {
var linear = function(domain, range) {
var d0 = domain[0], r0 = range[0], multipler = ( range[1] - r0 ) / ( domain[1] - d0 );
return function ( num ) {
return r0 + ( ( num - d0 ) * multipler );
};
}
var log = function(domain, range, base) {
var rBase = base || 10;
function logVal(v) {
if(v === 0) {
return 0;
} else {
return Math.log(v) / Math.log(rBase);
}
}
var linearScale = linear([logVal(domain[0]), logVal(domain[1])], range);
return function(num) {
return linearScale(logVal(num));
};
}
return {
linear: linear,
log: log
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment