mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-26 18:48:11 +08:00
* change pan speed to 1 per issue #722 * correct handle scaling of graph when aspect ratio less than one * add package lock * add invert to our scale functions * correctly transform to/from gl coordinates * remove unused import * fix naming of import * update smoke tests
23 lines
685 B
JavaScript
23 lines
685 B
JavaScript
// jshint esversion: 6
|
|
|
|
// Substitute for a d3 linear scale - less flexible, more performant.
|
|
// Returns a function which will scale a value.
|
|
//
|
|
// Example will scale [0,1] to [-1,1]
|
|
// var myScale = scaleLinear([0, 1], [-1, 1]);
|
|
// myScale(0) === -1
|
|
// this is is equivalent to d3.scaleLinear().domain([0,1]).range([-1,1])
|
|
|
|
export default (domain, range) => {
|
|
const domainStart = domain[0];
|
|
const scale = (range[1] - range[0]) / (domain[1] - domain[0]);
|
|
const invScale = 1 / scale;
|
|
const rangeStart = range[0];
|
|
const f = value => (value - domainStart) * scale + rangeStart;
|
|
|
|
// inverter
|
|
f.invert = value => (value - rangeStart) * invScale + domainStart;
|
|
|
|
return f;
|
|
};
|