Покрытие Земли плитками шестиугольной карты - PullRequest
55 голосов
/ 15 апреля 2009

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

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

Кто-нибудь видел что-нибудь отдаленно похожее на это раньше?

UPDATE

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

Ответы [ 13 ]

1 голос
/ 13 июля 2016

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

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

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

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

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

В фоновом режиме dggridR использует программное обеспечение Кевина Сара DGGRID .

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

  • Грегори, Мэтью Дж. И соавт. «Сравнение межклеточных метрик на дискретных глобальных грид-системах». Компьютеры, среда и городские системы 32.3 (2008): 188–203. CrossRef. Web.
  • Kimerling, Jon A. et al. «Сравнение геометрических свойств глобальных сетей». Картография и географическая информатика 26.4 (1999): 271–288. Печать.
  • Сахр, К. «Шестиугольные дискретные глобальные системы GRID для геопространственных вычислений». Archiwum Fotogrametrii, Kartografii i Teledetekcji Vol. 22 (2011): 363–376. Печать.
  • Сахр, Кевин. «Кодирование местоположения в шестиугольных дискретных глобальных сетях Icosahedral Aperture 3». Компьютеры, окружающая среда и городские системы 32.3 (2008): 174–187. CrossRef. Web.
  • Сахр, Кевин, Денис Уайт и А. Джон Кимерлинг. «Геодезические дискретные глобальные грид-системы». Картография и географическая информатика 30.2 (2003): 121–134. Печать.
1 голос
/ 10 мая 2016

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

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

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

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

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

0 голосов
/ 16 октября 2015

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

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

Тем не менее, простой (ish) хак:

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

enter image description here

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...