time.js 1.1 KB

1234567891011121314151617181920212223242526272829
  1. import { getTickInterval } from '../util/time';
  2. export default function calculateTimeTicks(cfg) {
  3. var min = cfg.min, max = cfg.max, minTickInterval = cfg.minTickInterval;
  4. var tickInterval = cfg.tickInterval;
  5. var tickCount = cfg.tickCount;
  6. // 指定 tickInterval 后 tickCount 不生效,需要重新计算
  7. if (tickInterval) {
  8. tickCount = Math.ceil((max - min) / tickInterval);
  9. }
  10. else {
  11. tickInterval = getTickInterval(min, max, tickCount)[1];
  12. var count = (max - min) / tickInterval;
  13. var ratio = count / tickCount;
  14. if (ratio > 1) {
  15. tickInterval = tickInterval * Math.ceil(ratio);
  16. }
  17. // 如果设置了最小间距,则使用最小间距
  18. if (minTickInterval && tickInterval < minTickInterval) {
  19. tickInterval = minTickInterval;
  20. }
  21. }
  22. tickInterval = Math.max(Math.floor((max - min) / (Math.pow(2, 12) - 1)), tickInterval);
  23. var ticks = [];
  24. for (var i = min; i < max + tickInterval; i += tickInterval) {
  25. ticks.push(i);
  26. }
  27. return ticks;
  28. }
  29. //# sourceMappingURL=time.js.map