The task is to draw a timeline with the ability to scale. The timeline is dynamic. It can contain both 4 minutes and 15. I need to understand how best to draw time stamps so that the user always understands what time point he sees in front of him. At the same time, you need to implement the ability to scale the graphics down to nanoseconds. After scaling, it should be possible to shift the graph left and right. On the Y axis is some other value, not important because of the fact that the scaling and shift on it is not carried out.
Since all values are discrete and there are about a billion, you need to make your decision, because this is the only way to make the program run quickly. Those. the use of any ready-made graph components is excluded. How to do this is a completely different story. Now I am interested in the implementation of the function of scaling and moving on the schedule.
I have thoughts on how to implement this, but in order not to go through a difficult path that has already been passed thousands of times before me, I would like to see how it is implemented in other components in the "right way" - the right way for the user to use UI quality source code.
Can anybody suggest any good articles, books, or a not very spreading ready-made component with the above possibilities?
The programming language is not important .