Карты, деньги, два ствола1 апреля 2007. Ворота

Карта. Масштабирование и районы

Осуществил следующий этап - масштабирование и выделение районов. Сделал систему масштабирования универсальной - можно будет добавить любое количество уровней, сейчас их четыре - 150, 100, 75 и 50%. Применяю послойное хранение картинок для масштабов, то есть, возможен случай одновременного показа двух масштабов (через прозрачность) - можно применять для эффектного переключения (сейчас простое).


01. Карта. Масштабирование и районы,18 Kb
Карта. Масштабирование и районы,18 Kb


Насчёт районов - применил canvas. Пока первая пробная версия, работает прилично. В будущем оптимизирую по скорости.

Также названия районов вывожу поверх них в случае режима мыши. Использую алгоритм для определения точки внутри многоугольника. Алгоритм пробивной, но чуть притормаживает.
В случае простого режима использую алгоритм попроще с усреднениями, границами, пересечением и количеством точек внутри видимой области, всё это перемешиваю и получается координата блока названия района.

В админке можно создать новый район путём ввода точек с помощью мыши, опять же всё рисуется с помощью canvas. Точки можно двигать, удалять, добавлять-вставлять новые. Здесь тоже можно в будущем оптимизировать по скорости за счёт рисовки точек с помощью обычных блоков (сейчас рисуется с помощью canvas). Область заполняется фоновым цветом по выбору с выбираемой прозрачностью.