1 | import { fixedBase } from '@antv/util';
|
2 | function snapMultiple(v, base, snapType) {
|
3 | var div;
|
4 | if (snapType === 'ceil') {
|
5 | div = Math.ceil(v / base);
|
6 | }
|
7 | else if (snapType === 'floor') {
|
8 | div = Math.floor(v / base);
|
9 | }
|
10 | else {
|
11 | div = Math.round(v / base);
|
12 | }
|
13 | return div * base;
|
14 | }
|
15 | export default function intervalTicks(min, max, interval) {
|
16 |
|
17 | var minTick = snapMultiple(min, interval, 'floor');
|
18 | var maxTick = snapMultiple(max, interval, 'ceil');
|
19 |
|
20 | minTick = fixedBase(minTick, interval);
|
21 | maxTick = fixedBase(maxTick, interval);
|
22 | var ticks = [];
|
23 | for (var i = minTick; i <= maxTick; i = i + interval) {
|
24 | var tickValue = fixedBase(i, interval);
|
25 | ticks.push(tickValue);
|
26 | }
|
27 | return {
|
28 | min: minTick,
|
29 | max: maxTick,
|
30 | ticks: ticks
|
31 | };
|
32 | }
|
33 |
|
\ | No newline at end of file |