Написать JS контрол на Canvas
Мне необходим TimeLine контрол написанный на Javascript, используя Canvas.
Предназначение: визуализации последовательности событий на шкале времени с возможностью зума и скроллинга.
Каждый интервал отображает событие. Оно имеет время начала и время конца. Если интервал пересекается с уже нарисованным интервалом, то его нужно отобразить в свободном месте на следующей строке.
Входные данные: список интервалов типа Date c именами. Данные в процессе выполнения меняться не будут.
Набросок того, каким я хотел бы видеть результат прикреплен к этому заданию.
Основная проблема - производительность. Размер коллекции до 30 000 интервалов, но на экране одновременно будет отображаться около 1000 интервалов. Думаю, тут может помочь отсечение невидимых, а так же снижение детализации для мелких объектов.
Интересные проекты и ссылки, которые могут быть полезны:
http://sigmajs.org
http://jsfiddle.net/jensk/88Hue/
Требования к исполнителю:
- знание программы курса "Алгоритмы и структуры данных"
- опыт работы с 2d графикой, либо желание его получить
- очень приветствуется интерес к изучению нового
Что хотелось бы услышать от исполнителя:
- Подход к решению. Предполагаемые сложные места.
- Примерные сроки
dan.pristupov@gmail.com