first commit
This commit is contained in:
63
node_modules/d3-scale/src/radial.js
generated
vendored
Normal file
63
node_modules/d3-scale/src/radial.js
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
import continuous from "./continuous.js";
|
||||
import {initRange} from "./init.js";
|
||||
import {linearish} from "./linear.js";
|
||||
import number from "./number.js";
|
||||
|
||||
function square(x) {
|
||||
return Math.sign(x) * x * x;
|
||||
}
|
||||
|
||||
function unsquare(x) {
|
||||
return Math.sign(x) * Math.sqrt(Math.abs(x));
|
||||
}
|
||||
|
||||
export default function radial() {
|
||||
var squared = continuous(),
|
||||
range = [0, 1],
|
||||
round = false,
|
||||
unknown;
|
||||
|
||||
function scale(x) {
|
||||
var y = unsquare(squared(x));
|
||||
return isNaN(y) ? unknown : round ? Math.round(y) : y;
|
||||
}
|
||||
|
||||
scale.invert = function(y) {
|
||||
return squared.invert(square(y));
|
||||
};
|
||||
|
||||
scale.domain = function(_) {
|
||||
return arguments.length ? (squared.domain(_), scale) : squared.domain();
|
||||
};
|
||||
|
||||
scale.range = function(_) {
|
||||
return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();
|
||||
};
|
||||
|
||||
scale.rangeRound = function(_) {
|
||||
return scale.range(_).round(true);
|
||||
};
|
||||
|
||||
scale.round = function(_) {
|
||||
return arguments.length ? (round = !!_, scale) : round;
|
||||
};
|
||||
|
||||
scale.clamp = function(_) {
|
||||
return arguments.length ? (squared.clamp(_), scale) : squared.clamp();
|
||||
};
|
||||
|
||||
scale.unknown = function(_) {
|
||||
return arguments.length ? (unknown = _, scale) : unknown;
|
||||
};
|
||||
|
||||
scale.copy = function() {
|
||||
return radial(squared.domain(), range)
|
||||
.round(round)
|
||||
.clamp(squared.clamp())
|
||||
.unknown(unknown);
|
||||
};
|
||||
|
||||
initRange.apply(scale, arguments);
|
||||
|
||||
return linearish(scale);
|
||||
}
|
||||
Reference in New Issue
Block a user