Consider the following diagram
[url removed, login to view]
It contains timeline information with points of interest illustrated on the timeline with lines and text labels. We would like an algorithm to create a more complex timeline image (png format) from an arbitrary xml specification.
The specification to contain
1. intervals (start and stop dates) with ability to specify the interval label, interval colour and interval pattern (eg a pattern based on an image such as cross hatch) -> these intervals are to be displayed as rectangles on the timeline
2. points (time of occurance) with point style (dot, arrow, line) as well as a point label
Please write a concise summary of this project when bidding to indicate understanding of the specifications.
We have done over 50 international projects and we are coders (c++) ourself. We are fair and reasonable!!
The algorithm is to
1. optimise the placement of the labels to eliminate label overlap and maximise the use of space in the diagram and to minimise the visual complexity of the diagram -> this may require some tricky heuristic algorithm work
2. display very complex timelines with multiple overlapping intervals.
3. be written strictly in C++ compilable under g++ (linux) - any third party libraries used should be pre-approved
4. be offered for testing in a web page so we can paste the XML specification of the timeline and see the picture after the image is rendered
5. have the ability to collapse large amounts of blank space on the timeline so as to magnify the items of interest and to represent this collapsed time with squiggly segment in the time of collapsed space on the timeline.
6. position the intervals so that intervals of the same colour have the same vertical position on the timeline, for example if there are 4 green intervals, 5 red intervals and 2 yellow they should be arranged so the green intervals line up with each other, the red intervals line up with each other and the yellow intervals also line up with each.
7. put the scale on the interval; the scale will be year (labelled) with tick marks for every 3 months
8. we will take delivery of the c++ code and incorporate it into our own app after delivery
Allow considerable iteration in this project. We will be firing some complex timelines at the algorithm and it should be able to display quite complex timelines.