Я оч. извиняюсь, что запудрил вам мозги...
Упростил задачу и все проблемы решились сами собой:
- единственная задача это нарисовать правильный шестиугольник примерно такого размера, как он уже есть на динмапе: мне не нравится нынешний и, скорее всего, я просто ошибся с размерами сторон;
Bress Oster написал(а):Если форма и размер утвердились на первой уже созданной на карте то можно продолжить в том же духе
Как раз я не уверен, что он правильной формы - хочу красивую форму, как на скринах, но не знаю, что я сделал не так (размеры должны остаться примерно такими, как сейчас на карте):
Итак, определяемся с формой и как мы будем это всё высчитывать и масштабировать:
- вся фишка будет в названии сот, которое будет содержать всю необходимую инфу для внесения изменений в существующие соты и создания новых;
- все соты будут разделены на 4 группы, каждая из которых будет находиться в одном из четёрёх секторов "воображаемой координатной плоскости";
- названия сот будут начинаться с символов SW, SE, NE, NW (очевидно, что это обозначения сторон света соответствующие своим секторам на "воображаемой координатной плоскости");
- и называться соты будут соответственно своей области (цифрами кодируются координаты по осям "Х" и "Y" от начала координат до бесконечности): "00_0000-000" или "NW_0025-002" (это 25 по горизонтали от центра координат шестиугольник во втором ряду по вертикали, в области NW);
- таким образом, мы легко можем вычислить координат центров нужных нам шестиугольников, а уже от координат центра элементарно рассчитать координаты углов (этим буду заниматься я);
+ решается ещё одна важная проблема: добавление новых "сот" после расширения карты так, чтобы не сбивался порядок и нумерация;
И, кстати, вот как должна выглядеть сетка из сот, чтобы это было стильно!!
Вот, почему мне не нравилась предыдущая фигура - нужно было просто повернуть шестиугольник углами вверх и вниз
Осталось только прописать формулы расчёта координат центров шестиугольников и проблема решена!!
Всем спасибо
Формулы распишу в первом сообщеении и в теме с настройкой плагина, когда определимся с размерами (вероятно, это будет равнобедренный шестиугольник с "радиусом" = 50, для ровного счёта центров).
Вид формулы будет простым:
- допустим, вам надо поработать с 325-ой сотой по горизонтали в 5-ом ряду области NW (называться эта сота будет "NW_0325-0005");
- название соты будет соответствовать id-области в динмапе (соответственно, её будет легко изменить);
+ допустим, к ней пририсовать 326-ую соту в этом же ряду этой же области;
Для этого нам нужно найти координаты центра 325-го шестиугольника по следующей формуле:
"Коррдината центра Х" = (325 / 2) х (50 х 2) - 50;
"Координата центра Y" = (5 / 2) х (50 х 2) - 50;
"Координаты центра нужного шестиугольнкика X Y Z" = 16200 100 200
Далее легко вычислить координаты всех углов, если понадобится:\
- верхний угол: 16200 100 250;
- нижний: 16200 100 150;
- левый верхний: 16250 100 225;
- левый нижний: 16250 100 175;
- правый верхний: 16150 100 225;
- правый нижний: 16150 100 175
Типа, поработали...
- теперь пририсовываем 326-ую соту;
- берём координаты 325-ой и увеличиваем координату "Х" на 100 = 16300 100 200;
- высчитываем углы для нового шестиугольника;
- создаём новую область: /dmarker addarea id:NW_0326-0005 "NW_0326-005 (free)" set:Clans color:404040 fillcolor:8080808 fillopacity:0.1 weight:1
Та-да-ммммм....
Теперь поправьте мои ошибки и я всё сделаю )))))