Здесь больше нет рекламы. Но могла бы быть, могла.

Автор Тема: Задача: Двухмерная карта Земли.  (Прочитано 4001 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Мёнин

  • кристофер-толкинист
  • Мафия
  • **********
  • Пол: Мужской
  • посмотри в глаза чудовищ
    • Просмотр профиля
Проще всего, конечно, моделировать сеткой, не важно, квадратной или шестиугольной, кусок планеты, на котором скругление к полюсам ещё не заметно.
Но модель самой планеты уже не оказывается точной.

В играх класса Civilization используется в той или иной форме модель цилиндрической планеты. "Для игры сойдёт", но несоответствие её реальной карте ужасно.

Интересной моделью является меркаторская карта, она правильно определяет направление пути. Но, к сожалению, не расстояние.

Как можно сделать наиболее реалистичную и наименее сложную модель?

Предполагается, что карта остаётся набором клеток, соединённых между собой переходами (иными словами - в высокой степени упорядоченный граф), соответствующими равным расстояниям.
« Последнее редактирование: 10/12/2007, 22:53:43 от Мёнин »

Оффлайн Mrrl

  • Волшебник-Прогрессор
  • Модератор
  • *****
  • Пол: Мужской
  • Древние тайны всех мирозданий мне под силу...
    • Просмотр профиля
Начнем с того, что меркаторская карта не определяет направления пути - она сохраняет только углы (а значит, и форму малых объектов). Это весьма удобно, что известно всякому пользователю Google Earth, но при реализации проблем не оберешься. Хотя... формула для расстояния может оказаться не слишком ужасной. Но экспоненты, косинусы и квадратные корни в ней точно будут.
  Что до направления - прямые на ней выглядят дугами (не знаю, дугами чего, но это не окружности. Синусоиды?), которые отклоняются от отрезка к полюсу (кратчайший путь из Сиэтла в Москву пересекает Полярный круг).
  Модель хочется дискретной? Самое круглое, что можно собрать из шестиугольников - нечто вроде футбольного мяча, с 12 пятиугольными "дырками" (недоступными клетками?). Из квадратов ничего круглее куба (с 8 недоступными вершинами, где сходятся 3 квадрата вместо четырех), скорее всего, не получится. Можно покрыть куб косыми квадратами, тогда недоступны будут 8 треугольных клеток.
When I see a troll up in the mountains with a necklace of human skulls, I say good luck to him. (c)

Насколько я помню, я был всегда!

Оффлайн Ночной Сторож

  • Старожил
  • ****
  • Пол: Мужской
  • Мыльницам не позирую!
    • Просмотр профиля
Предполагается, что карта остаётся набором клеток, соединённых между собой переходами (иными словами - в высокой степени упорядоченный граф), соответствующими равным расстояниям.

1. "Естественный" с точки зрения и летающих, и ездящих ход - Я бы сделал набор "псевдошестиугольных" клеток, число которых меняется в зависимости от модуля широты по почти линейному закону.

2. Земля имеет форму чемодана - то есть прямоугольного параллелепипеда. Граней - шесть. Каждая из граней - проекция из центра соответствующего куска планеты. Вершины следует расположить в океанских глубинах. :)

3. Любой правильный многогранник. :)
уведена аська. 55319926 - невалиден.
новый номер - 383091334

Оффлайн Мёнин

  • кристофер-толкинист
  • Мафия
  • **********
  • Пол: Мужской
  • посмотри в глаза чудовищ
    • Просмотр профиля
Цитировать
Я бы сделал набор "псевдошестиугольных" клеток, число которых меняется в зависимости от модуля широты по почти линейному закону.
Я собирался пойти по этому пути, правда, начинал с квадратов, а потом представил скорее безразмерные клетки, фактически просто как бы точки на земной поверхности.
Надо будет подумать.

Цитировать
правильный многогранник.
Необязательно совсем правильный многогранник, можно просто равногранный.

« Последнее редактирование: 10/12/2007, 23:25:32 от Мёнин »

Оффлайн Mrrl

  • Волшебник-Прогрессор
  • Модератор
  • *****
  • Пол: Мужской
  • Древние тайны всех мирозданий мне под силу...
    • Просмотр профиля
Правильных многогранников слишком мало. Равногранных тоже: максимум - 120 треугольников. Так что если хочется больше, то однородным он уже не окажется. Я бы мучал футбольный мячик (нулевой уровень - усеченный икосаэдр, дальше надо дробить и поворачивать шестиугольники). А если подойдут треугольные ячейки, то взять икосаэдр и разрезать каждую грань на n^2 треугольников. Но для игры эта структура не очень годится.
When I see a troll up in the mountains with a necklace of human skulls, I say good luck to him. (c)

Насколько я помню, я был всегда!

Оффлайн Mrrl

  • Волшебник-Прогрессор
  • Модератор
  • *****
  • Пол: Мужской
  • Древние тайны всех мирозданий мне под силу...
    • Просмотр профиля
Кстати, да - гибрид всего перечисленного:

Берем икосаэдр. Ориентируем вершиной к полюсу. Поверхность заполняем шариками (кружочками) одинакового размера: по шарику в вершине, по n-1 шарику на каждом ребре, еще по (n-1)*(n-2)/2 на каждой грани. После проектирования на сферу получаем, что между широтами -30 и +30 у нас сетка из шестиугольников (по 5*n на каждой полосе, всего n-1 полоса), по широтам -30 и +30 проходит полоса из 5*n-5 шестиугольников и 5 пятиугольников, в каждой из следующих полос ближе к полюсам - на 5 клеток меньше, чем на предыдущей (все 6-угольные). На полюсах - 5-угольники. Итого примерно 10*n^2 клеток.

  Следить за такой картой не слишком сложно.
When I see a troll up in the mountains with a necklace of human skulls, I say good luck to him. (c)

Насколько я помню, я был всегда!

Оффлайн Мумр

  • Фонарщик
  • Ветеран
  • *****
  • Пол: Мужской
    • Просмотр профиля
Злостный оффтопик
Не совсем оффтоп: Кто здесь читал "Missle Gap" Чарльза Стросса? Там инопланетяне сделали из Земли двухмерную карту...
Дождь, дождь, а сказка простая:
Мир наш растаял, как леденец,
И только мы все книгу листаем,
Будто не знаем, что сказке конец...