ТЕХНОЛОГИЯ ОТОБРАЖЕНИЯ СХЕМ MCHAIN
Технология отображения MChain (Monotone Chain) является собственной разработкой BIL24 и решает проблему отображения больших схем с размещением (содержащих более 5000 мест). Технология получила свое название от
Andrew's monotone chain convex hull algorithm. В контексте визуализации схем больших стадионов, дворцов спорта, концертных залов, данный алгоритм решает задачу их быстрого отображения
и плавной навигации (смещение, масштабирования) на мобильных устройствах и компьютерах. При определенном масштабе нет смысла отображать места, тогда как при увеличении масштаба места обязательно должны быть показаны,
а пользователю предоставлена возможность их выбора. В отличие от визуализации схемы по принципу «отдельно сектора, отдельно места» при использовании MChain пользователь не теряет ориентации в пространстве и работает
со схемой как с картой, которая показывает ему больше деталей по мере увеличения масштаба.
Технология MChain реализована во фреймворке Flutter на языке Dart.
Для рендеринга схем используется Skia c трансляцией в JS и отображением в Canvas. В перспективе предполагается использование
wasm. При разработке и тестировании MChain упор делается на мобильные устройства, так как большинство покупок
билетов осуществляется с их использованием, а также потому, что графические возможности мобильных устройств серьезно ограничены. Flutter позволяет использовать и втстраивать Mchain в мобильные приложения на
Android и IOS. Технология основана на параллельной, многопоточной обработке схем, с использованием асинхронной модели.
На текущем этапе реализации MChain созданы и протестированы основные возможности технологии. На мелком масштабе прорисовываются сектора, на крупном масштабе – места, не по всей схеме, а только в видимой области.
Технология обеспечивает большую скорость и плавность работы.
Тестовая страница - https://bil1.pro/demo_schemes/web/#/
На следующем этапе планируется реализовать:
1. Увеличенную область рендеринга мест (virtual viewport), чтобы места прорисовывались даже в случаях, когда некоторые границы сектора далеко выходят за границу видимой области (viewport).
2. Кликабельность мест.
3. Навигация в границах схемы.
4. Выделение цветом секторов, где есть свободные места.
5. Названия на секторах.
6. Эффект перехода от секторов к местам.
7. Улучшенный дизайн секторов.
8. Адаптация видимой области под размер страницы браузера.
9. Отображение декораций схемы.