пятница, 4 июля 2008 г.

ТЗ на JS


Цель:
создание программы на JavaScript, включаемой в статическую online-страницу, для динамической навигации по ресурсам Internet.
Прототип
Данные:
xml-файл с описанием узлов/рёбер графа. Для узлов - название, ссылка, подсказка.
Внешний вид:
на странице отображается центральный узел и ближайшие связанные с ним узлы - уровень рекурсии указывается пользователем. Каждый узел - это элемент "ссылка". Если у узла (внешнего) существуют связи с узлами за пределами текущего отображения - рядом с таким узлом появляется элемент +. При нажатии на сам узел происходит переход на его URL. ПРи нажатии на + - узел оказывается в центре нового графа - со всеми вытекающими.
Размещение элементов - по алгоритму DirectGraph, но может быть изменено пользователем.
Поведение
Смена одного графа на другой - с анимацией, алгоритм которой можно будет изменять:

  • Удаляемые узлы - остаются на месте и постепенно исчезают;
  • Новые узлы - постепенно проявляются на своих местах;
  • Остающиеся узлы - двигаются от старых координат к новым

Рёбра двигаются за узлами. Перемещение от начального состояния к конечному - за конечное же время. Физика перемещения может быть в дальнейшем заменена.


Т.о. выделяются модули, которые можно будет в дальнейшем заменять:

  • data (источник данных - файл, внешний ресурс)
  • layout (алгоритм размещения узлов)
  • animation (алгоритм анимации)
  • view (метод отображения - html/svg/canvas)