ТЕХНОЛОГИЯ ОТОБРАЖЕНИЯ СХЕМ 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. Отображение декораций схемы.