Подтвердить что ты не робот

Покрытие Земли гексагональными картами

Многие стратегические игры используют шестиугольные плитки. Одно из главных преимуществ заключается в том, что расстояние между центром любой плитки и всеми ее соседними плитами одинаково.

Мне было интересно, есть ли у кого-нибудь мысли о женитьбе на шестиугольной плиточной системе с традиционной географической системой (долгота/широта). Я думаю, было бы интересно покрыть глобус гексагональными плитами и уметь отображать географическую координату на плитки.

Кто-нибудь видел что-то отдаленно близко к этому раньше?

UPDATE

Я ищу способ разделить поверхность сферы так, чтобы каждое деление имело одну и ту же площадь поверхности. В идеале центры смежных подразделений будут равноудаленными.

4b9b3361

Ответ 1

Взгляните на vraid/earthgen; он использует шестиугольники (плюс несколько пятиугольников) и включает исходный код (см. planet/grid/create_grid.cpp).

vraid/earthgen image

Ответ 2

Невозможно покрыть сферу правильными плитами (за исключением длинных и тонких "оранжевых срезов". Таким образом, оптимальный способ пикселизации карты, учитывая определенные ограничения или требования, на самом деле представляет собой довольно сложную исследовательскую проблему.

Один вид плитки, используемый очень часто (в астрофизике), представляет собой пикселизацию HEALPIX: http://healpix.sourceforge.net/

Эта пикселизация удовлетворяет требованию равной области; однако невозможно сделать все равноудаленным.

Другая пикселизация - это "GLESP", которая имеет несколько разных свойств (и не отполирована программным пакетом): http://www.glesp.nbi.dk/

Ответ 3

Первый веб-сайт, который приходит на ум, - это Amit Game Programming Information и его коллекция ссылок на гексагональные сетки.

Ответ 4

Ну, многие люди заявили, что вы не можете нарисовать сферу гексагональными плитами - возможно, вам интересно, почему.

Эйлер заявил (и есть много интересных и разных доказательств и даже целая книга), которые задают черепицу сферы в x многоугольниках с общей суммой y и вершинами ребер (например, куб имеет 6 многоугольников с 12 ребер и 8 вершин) формула

x - y + z = 2

всегда выполняется (помните знак минуса).

(BTW: это топологическое утверждение, так что куб и сфера - или, точнее, только их граница - действительно то же самое здесь)

Если вы хотите использовать только шестиугольники для чередования сферы, вы получите шестиугольники x, имеющие 6 * x ребер. Однако один край разделяется каждой парой шестиугольников. Итак, мы хотим только сосчитать 3 * x из них и 6 * x вершин, но, опять же, каждый из них разделяется тремя шестиугольниками, поэтому вы получаете 2 * x ребра.

Теперь, используя формулу:

x - 3 * x + 2 * x = 2

вы попадаете в ложное утверждение 0 = 2 - поэтому вы действительно не можете использовать только шестиугольники.

Вот почему классический футбольный мяч выглядит так, как будто он - конечно, современные - более причудливые, но основной факт остается.

Ответ 5

Вы не можете покрыть сферу равными шестиугольниками, но вы можете покрыть ее геодезической, которая в основном представляет собой шестиугольники, с 12 пятиугольниками в вершинах икосоэдра, а шестиугольники слегка искажены, чтобы заставить ее выпуклость в сферу.

Ответ 6

Прочтите "Геодезические дискретные глобальные грид-системы" Кевина Сара, Дениса Уайта и А. Джона Кимерлинга

Вы можете найти здесь...

Ответ 7

Шестиугольные плитки слишком сложны для правильной геометрии применительно к геопространственным применениям. Посмотрите HTM для аналогичной вещи с треугольниками или Google для "Иерархической треугольной сетки" для других источников.

Ответ 8

Получение сферы для разделения на равные части, выполненные с плоскими поверхностями, представляет собой жесткую гайку. Из-за этого вы получаете Геодезические фигуры, которые не состоят из фигур, которые в свою очередь могут состоять из треугольников одинакового размера. Разбивая все шестиугольники и пятиугольники на треугольники, вы получаете треугольники с разными внутренними углами, что приводит к потере симметрии.

Единственное утешение, которое я могу вам дать, состоит в том, что все фигуры будут иметь ограниченное количество треугольников, которые можно каталогизировать, что означает небольшую геодезическую, что 5 или 6 треугольников можно использовать повторно для описания всех шестиугольников и пятиугольников, необходимых для геодезической. В то время как расстояния не будут равны от "центра" каждого треугольника/формы, вы можете по крайней мере разделить обработку каждого треугольника на дискретный случай, предоставляя потенциальную рабочую среду в коде.

Ответ 9

Старая игра для ролевых игр, используемая для отображения поверхностей планеты как икосаэдра (разрезанная для печати в книге). Это вызвало большие искажения в угловых гексах (они должны стать пятиугольниками). Вы можете найти такой материал при поиске GURPS Traveler.

Ответ 10

Есть только несколько платонических многогранников, которые используют один тип многоугольника для приближения сферы. Известно ICOSAHEDRON и DODECAHEDRON. Если вы готовы иметь немного искажений и несколько совпадающих точек, вы можете получить справедливые результаты, которые сделают игру забавой. Попробуйте ЭТОТ ЛИНИЯ, которому удается иметь почти равную площадь для всех плиток и довольно устойчивые расстояния между плитами для кругов по всему миру.

Однако ни одна из них не очень легко относится к старой старой географической, цилиндрической долготной/широтной проекционной системе.

Одним из решений является просто суперпозиция сотового рисунка на карту проекции EQUIRECTANGULAR и разрешение TONS искажения при приближении к полюсам Нравится это.

Удачи вам в ваших исследованиях!:)

Ответ 11

Я только что построил пакет R под названием dggridR, который делит поверхность Земли на шестиугольники одинакового размера для целей биндинга пространственный анализ.

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

Математика преобразования сложна. Вы можете найти их в:

  • Кридер, Джон Е. "Точные уравнения для проекции карты Фуллеров и обратного". Cartographica: Международный журнал по географической информации и геовизуализации 43.1 (2008): 67-72. Web.

  • Снайдер, Джон П. "Проекция карты с равными зонами для многогранных глобусов". Cartographica: Международный журнал по географической информации и геовизуализации 29.1 (1992): 10-21. Web.

В фоновом режиме dggridR полагается на программное обеспечение Kevin Sahr DGGRID.

Вы также можете использовать следующие ссылки:

  • Gregory, Matthew J. et al. "Сравнение межсетевых показателей на дискретных глобальных сетчатых системах". Компьютеры, окружающая среда и городские системы 32.3 (2008): 188-203. CrossRef. Web.
  • Кимерлинг, Джон А. и др. "Сравнение геометрических свойств глобальных гридов". Картография и географическая информатика 26.4 (1999): 271-288. Печать.
  • Sahr, K. "Шестиугольные дискретные глобальные GRID-системы для геопространственных вычислений". Archiwum Fotogrametrii, Kartografii я Teledetekcji Vol. 22 (2011): 363-376. Печать.
  • Сахр, Кевин. "Кодирование местоположения на Icosahedral Aperture 3 Hexagon Discrete Global Grids". Компьютеры, окружающая среда и городские системы 32.3 (2008): 174-187. CrossRef. Web.
  • Сахр, Кевин, Денис Уайт и А. Джон Кимерлинг. "Геодезические дискретные глобальные грид-системы". Картография и географическая информатика 30.2 (2003): 121-134. Печать.

Ответ 12

Старый вопрос, но:

Другие ответы верны в том, что невозможно сферировать сферу, используя только шестиangularьники.

Тем не менее, простой (ish) взлом:

Создайте 2d "лист" шестиangularьников:

enter image description here

и сместить их в трехмерном пространстве от начала координат на 1. Затем нормализовать все вершины.

Это даст вам "выпуклую" версию листа, которая имеет приятную сферическую кривую. Проблема в том, что это будет работать только в том случае, если лист покрывает часть сферы.

Одно решение похоже на то, что используется для создания бесконечной сетки. Когда сфера вращается, когда вы переместили половину ячейки, поверните сферу назад на одну ячейку в соответствующем направлении. (В случае шестиangularьников числа на самом деле не являются половиной ячейки, а привязаны к размерам шестигранной плитки.) Это немного сложно в 3D, но выполнимо.

У меня был похожий вопрос в 2D некоторое время назад, который может быть полезным.

https://gamedev.stackexchange.com/questions/70092/infinite-treadmilling-hexagonal-grid/70341#70341

Ответ 13

HEAlpix является правильным, если ваше ограничение состоит в том, чтобы поддерживать равную площадь при разделении сферы на части (интересной для покрытия проекции области в небе то же самое в полюсах, а также в экваториальной области). Вы в основном разделяете свою сферу в 4 каждый раз, следуя за кольцом или вложенной схемой, чтобы выполнить ограничение иерархической равных областей. Также очень удобно "развертывать" функции FT ((свойство изотопии) на небе, например, для изучения температуры режимов CMB в миссии Planck или WMAP.

Он также реализован на многих языках программирования.

Кроме того, я должен был упомянуть еще одну (хотя и не равную область), называемую Q3C для "Quad Tree Cube", другую схему разбиения на небо, которая имеет другие преимущества (поиск конуса и x-совпадение)

оригинальная бумага:

http://adsabs.harvard.edu/abs/2006ASPC..351..735K