transitive-js
Version:
A tool for generating dynamic stylized transit maps that are easy to understand.
17 lines (14 loc) • 375 B
JavaScript
export default class LinearScale {
constructor(domain, range) {
this.domain = domain
this.range = range
}
compute(val) {
const { domain: d, range: r } = this
return ((val - d[0]) / (d[1] - d[0])) * (r[1] - r[0]) + r[0]
}
invert(val) {
const { domain: d, range: r } = this
return ((val - r[0]) / (r[1] - r[0])) * (d[1] - d[0]) + d[0]
}
}