Dr.*_*ABT 5 algorithm charts datetime
我正在寻找一个好的算法来为自定义图表组件上的DateTime轴生成漂亮的主要/次要刻度间隔.我在这里已经阅读了上一个问题,它讨论了计算数字轴的主要/次要刻度和最小/最大值的好方法.但是,很难将其转换为日期轴计算.
原因是某些日期范围与其他日期范围不同,有些甚至不是一致的时间范围.考虑几分钟内的轴范围.这种计算相当简单,因为您可以使用与上述类似的算法将分钟数除以.但是,如果要求同一轴在年/月或月/周范围内显示数据,您会怎么做?
对此轴的要求是它可以计算主要/次要刻度标记,以便图表永远不会太混乱,输入数据范围以毫秒为单位,直到数月和数年.它旨在用于实时图表,因此静态表示不如快速更新的能力那么重要.我的简单算法做到了这一点:
等等...
正如你可以看到它的很多if语句,可能会遗漏一些东西.在这种方法中,我经常在某些日期出现故障,我想知道是否有一种简单或常见的方法来解决这个问题.
最好的问候,安德鲁
min_dist_major
确定主要 ( ) 和次要 ( )的最小距离是多少min_dist_minor
。这些是常量并且具有以像素为单位的值。 min_dist_major
找到比显示器上显示的min_dist_minor
监视器上显示的最小次刻度。如果找不到小勾号,则它不存在。您可以使用其他刻度来扩展数组,例如每种类型 2 和 5。