TODO list
Как я уже говорил, генератор будет функционально разделен на две части: это статическая (пассивная) часть (дороги, знаки) и динамическая (активная: машины, велосипедисты пешеходы)
В данный момент прорабатывается пассивная часть и, соответственно все усилия направлены на неё.
Весь интерфейс генерится динамически из базы.
Сейчас мы имеем возможность добавлять / рисовать кривые / прямые, которые будут в дальнейшем позвоночником дороги.
Итак, при переходе в режим редактирования дороги у нас доступны соответствующие инструменты и шаблоны сегментов дорог.
Рассмотрим доступные инструменты (слева направо): рисование по точкам, название участка дороги, тип участка дороги.
1) рисование по точкам.
По дефолту с первого клика по рабочей области (Холст) добавляет последовательно точки кривой. Доступно три типа: прямая, безье и эрмит.
2)3) не работают.
А вот и лист:
1) сделать селектбокс с именами дорог (инструмент 2). По дефолту будут генерироваться шаблонные имена, к рипмеру Road 1, Road 2 и т.д. Селектбокс соответственно редактируемый, т.е. мы можем менять имя созданной нами дороги. При выборе в селектбоксе нужной дороги она соответственно подсвечивается на холсте.
2) сделать селектбокс с типом дороги (1 из 3х, см.выше). сейчас только эрмит. организовать переключение.
3) при активном инструменте 1 (точка) и зажатой клавише Shift + клик по холсту = начинать рисование новой дороги, т.е. новая точка уже не связана с предыдущей кривой (если мы ее нарисовали), а рисуется новая кривая. Получается чтобы начать новый участок дороги нужно поставить новую точку через Shift и продолжить рисование уже без него.
4) при активном инструменте 1 (точка) и зажатой клавише Ctrl + клик по существующей точке = убрать точку. Соответственно кривая перерисовывается после этого.
5) Проработать холст (поворот, масштабирование, сворачивание)
6) Продумать механизм переключение между режимами (от дороги к автомобиоям, к знакам и т.д.)
7) Продумать событийную модель, особенно это касается событий клавы, горячие клавиши в дальнейшем будут очень кстати.
Реализация первых 4 пунктов даст уже некоторое представление о том, куда дальше двигаться, а двигаться можно вот куда (последовательно):
- на основе скелета дороги рисовать полосы (вдоль кривой-позвоночника), соответственно для каждой кривой будет доступен набор свойств, таких как количество полос, ширина полосы (это уже скорее всего относится к глобальным свойствам проекта, лучше туда его и отправить), покрытие.
- объединение и расчленение дорог (перекрестки). это пожалуй самое сложное. существуют множество различных пересечений дорог, всё это придётся учитывать. Но всего конечно не учтешь, поэтому будут ограничения.
Заглядывать дальше пока опасаюсь. Время покажет
Примеры дорожных ситуаций
Начну с самого интересного.
Нашел ситуации, которые показаны в динамике, а не на скучных картинках.
Не смотря на то, что все они собраны руками в небольшом количестве, впечатление остается положительное.
Кликаем картинку и переходим на флешку, слева будет навигация по другим ситуациям.

Процесс
Как ни странно взаимодействие человека с приложением начинается с интерфейса.
Именно поэтому после того, как был выбран фреймворк и приняты сопутствующие решения, я решил продумать реализацию интерфейса на сколько это возможно и, самое главное, на сколько нужно сейчас.
Пример ниже показывает нам панельку с тремя кнопками (шаблоны кусков дорог), которая может перемещаться и свёртываться (двойной клик по заголовку).
Состояние панельки запоминается локально и восстанавливается после перезагрузки страницы.
Соответственно когда мы будем иметь регистрацию пользователей на сайте сервиса, у них будет возможность без лишних телодвижений закреплять настройки (интерфейса в том числе) за своим аккаунтом и менять эти настройки почти также легко и быстро, как если бы это происходило локально без использования браузера.
Наличие последнего плеера не помешает.
ГДТП – Генератор Дорожно-Транспортных Происшествий
Итак, хочу в общем изложить суть идеи, над которой я сейчас работаю.
ВВЕДЕНИЕ
Не так давно мне посчастливилось стать автовладельцем. Конечно сразу пришлось пережить некоторый шок. Кто водил, тот знает! Точнее даже этот шок удалось пережить не сразу, а спустя только несколько недель. Связано это скорее всего с тем, что те правила, которым учат в автошколах сильно разнятся с тем, что происходит на самом деле. Взять даже отсутствие разметки на большей части дорог города, на прямой ещё ладно, а вот в повороте (многополосном) уже возникают некоторые проблемы даже у опытных водителей. Можно видеть много мелких аварий, которые произошли из-за того что кто-то кого-то подрезал в повороте, хоть здесь и влияет сильно человеческий фактор (невнимательность), но наличие правильной разметки как ни крути сильно бы помогло в таких ситуациях...


