Couverture de la Terre avec des carreaux de carte hexagonale
de nombreux jeux de stratégie utilisent des tuiles hexagonales. Un des principaux avantages est que la distance entre le centre de n'importe quelle tuile et tous ses tuiles voisines est la même.
je me demandais si quelqu'un avait une idée pour marier un système de tuiles hexagonales avec le système géographique traditionnel (longitude/latitude). Je pense qu'il serait intéressant de couvrir un globe avec des tuiles hexagonales et pouvoir cartographier une coordonnée géographique à une tuile.
Quelqu'un a-t-il déjà vu quelque chose de proche de ça?
mise à JOUR
je cherche un moyen de subdiviser la surface d'une sphère pour que chaque division ait la même surface. Idéalement, les centres des sous-divisions adjacentes seraient équidistants.
13 réponses
regardez vraid / earthgen ; il utilise des hexagones (plus quelques pentagones) et inclut le code source (voir planet/grid/create_grid.rpc ).
à partir de 2018 une nouvelle version est disponible basée sur le racket.
il est impossible de couvrir la sphère avec les carreaux réguliers (excepté pour les longues et minces"tranches d'orange". Ainsi, la façon optimale de pixéliser une carte, compte tenu de certaines contraintes ou exigences, est en fait un problème de recherche assez difficile.
une sorte de carrelage utilisé très souvent (en astrophysique) est la pixélisation HEALPIX: http://healpix.sourceforge.net /
cette pixélisation satisfait à l'exigence d'une zone d'égalité; impossible de rendre tout équidistant, cependant.
une autre pixélisation est "GLESP", qui a des propriétés différentes (et n'est pas aussi polie qu'un progiciel): http://www.glesp.nbi.dk /
Eh bien, beaucoup de gens ont fait le point que vous ne pouvez pas carreler la sphère avec des tuiles hexagonales - peut-être vous demandez-vous pourquoi.
Euler a déclaré (et il y a beaucoup de preuves intéressantes et différentes, et même un livre entier) que donné une tuile de la sphère en X polygones avec Y arêtes total et Z vertices total (par exemple, un cube a 6 polygones avec 12 arêtes et 8 vertices) la formule
x-y + z = 2
tient toujours (attention au signe moins).
(BTW: c'est une affirmation topologique donc un cube et une sphère - ou, pour être précis, seulement leur frontière - est vraiment la même ici)
si vous voulez utiliser seulement des hexagones pour carreler une sphère, vous finissez avec X hexagones, ayant 6*x bords. Cependant, un bord est partagé par chaque paire d'hexagones. Donc, nous ne voulons compter 3*x, et 6*x les sommets mais, encore une fois, chacun d'eux est partagé par les 3 hexagones donc tu finis avec 2 * x bords.
maintenant, en utilisant la formule:
x - 3*x + 2*x = 2
vous vous retrouvez avec la fausse déclaration 0 = 2
- donc vous ne pouvez vraiment pas utiliser que des hexagones.
C'est pourquoi le ballon de soccer classique ressemble à ce qu'il fait - bien sûr les plus modernes sont plus fantaisistes, mais le fait de base reste.
le premier site web qui vient à l'esprit est informations de programmation de jeu D'Amit et sa collection de liens sur les grilles hexagonales.
vous ne pouvez pas couvrir une sphère avec des hexagones égaux, mais vous pouvez la couvrir avec un géodésique, qui est principalement des hexagones, avec 12 pentagones aux sommets d'un icosohedron, et les hexagones légèrement déformé pour le faire gonfler dans une sphère.
carreaux hexagonaux sont trop compliquées pour la géométrie régulière comme appliquée à des utilisations géospatiales. Vérifiez HTM pour une chose similaire avec des triangles ou google pour "hierarchical Triangular Mesh" pour d'autres sources.
Le vieux Voyageur jeu de rôle utilisée pour cartographier la planète surfaces icosahedra (coupe ouverte pour l'impression dans un livre). Cela produit une grande distorsion dans le coin hexs (ils doivent devenir des pentagones). Vous pourriez trouver un tel matériel lors de la recherche de GURPS Traveller.
obtenir une sphère à diviser en parties égales fabriqués avec des surfaces plates est un écrou difficile. Pour cette raison , vous finissez avec formes géodésiques , qui sont pas composé de formes qui peuvent être à leur tour composé de triangles de taille égale. Briser tous les hexagones et des pentagones en triangles, vous vous retrouvez avec des triangles qui ont différents angles intérieurs, conduisant à une perte de symétrie.
la seule consolation que je peux vous donner est que toutes les formes auront un nombre limité de triangles qui peuvent être catagorisés, ce qui signifie pour un petit géodésique, que 5 ou 6 triangles peuvent être utilisés à plusieurs reprises pour décrire tous des hexagones et pentagones requis pour le géodésique. Alors que les distances ne seront pas égales du "centre" de chaque triangle/forme, vous pouvez au moins diviser la manipulation de chaque triangle dans un cas discret, prêtant à un possible work-around En code.
il n'y a que quelques Polyèdres platoniques qui utilisent un seul type de polygone pour se rapprocher d'une sphère. Célèbre le ICOSAHEDRON et le DODÉCAHEDRON . Si vous êtes prêt à avoir un peu de distorsion et quelques points de chevauchement, vous pouvez obtenir des résultats justes qui rendraient un jeu amusant. Essayez ce lien , qui réussit à avoir une surface presque égale pour toutes les tuiles et des distances de tuile assez consistantes pour les cercles autour Globe.
cependant, aucune de ces cartes ne se trouve très facilement sur le bon vieux système de projection géographique et cylindrique longitude/latitude.
une solution est de simplement super-imposer un motif en nid d'abeille sur la carte de projection EQUIRECTANGULAR et de permettre des tonnes de distorsion que vous approchez des pôles comme ce .
bonne chance pour vos recherches! :)
je viens de construire un paquet R appelé dgridr qui divise la surface de la Terre en hexagones de taille égale pour les besoins de l'analyse spatiale en Binn.
Carsten rend ce son impossible dans sa réponse, mais, en pratique, ce n'est pas le cas. En introduisant 12 pentagones, tous les autres hexagones s'assemblent sans problème. Puisque vous pouvez avoir des millions et des millions de cellules pour une grille à haute résolution, vous pouvez oublier ces pentagones la plupart du temps.
Les mathématiques de la transformation sont compliquées. Vous pouvez les trouver dans:
-
Crider, John E. "Exacte des Équations plus de la Projection de la Carte et l'Inverse."Cartographica: La Revue Internationale de l'Information Géographique et Géovisualisation 43.1 (2008): 67-72. Web.
-
Snyder, John P. "Un Pied D'Égalité-Carte De La Zone De Projection Pour Polyédriques Globes." Cartographica: La Revue Internationale de l'Information Géographique et Géovisualisation 29.1 (1992): 10-21. Web.
en arrière-plan, dggridR s'appuie sur le logiciel de Kevin Sahr.
vous pouvez également trouver les références suivantes à utiliser:
- Grégoire, Matthew J. et coll. "Une Comparaison des Intercell Métriques sur Discrètes Mondial des Systèmes de Grille." Ordinateur, Environnement et Systèmes Urbains de 32,3 (2008): 188-203. CrossRef. Web.
- Kimerling, Jon A. et al. "La comparaison des Propriétés Géométriques de l'Global des Grilles."La cartographie et de la Science de l'Information Géographique 26.4 (1999): 271-288. Imprimer.
- Sahr, K. "Hexagonal Discret Mondial des Systèmes de GRILLE pour Géospatiales de l'Informatique."Archiwum Fotogrametrii, Kartografii I Teledetekcji Vol. 22 (2011): 363-376. Imprimer.
- Sahr, Kevin. "Codage de localisation sur Ouverture Icosaédrique 3 Hexagones Grilles Globales Discrètes."Des ordinateurs, de l'Environnement et Systèmes Urbains de 32,3 (2008): 174-187. CrossRef. Web.
- Sahr, Kevin, Denis White, and A. Jon Kimerling. "Géodésique Discret Mondial Des Systèmes De Grille."La cartographie et de la Science de l'Information Géographique 30.2 (2003): 121-134. Imprimer.
vieille question, mais:
les autres réponses sont correctes en ce sens qu'il est impossible de carreler une sphère en n'utilisant que des hexagones.
Cependant, un simple(ish) hack est:
créer une "feuille" 2d d'hexagones:
et les décaler dans L'espace 3D de l'origine par 1. Puis, normalisez tous les sommets.
Cela vous donnera une version" bombée " de la feuille qui a une belle courbe sphérique à elle. Le problème est que cela ne fonctionne que si la feuille couvre partie de la sphère.
une solution est similaire à ce qui est utilisé pour créer un plancher de grille infinie. Comme la sphère tourne, quand vous avez déplacé la moitié d'une cellule, tourner la sphère en arrière une fois la cellule dans la direction pertinente. (Pour le cas des hexagones, les nombres ne sont pas vraiment la moitié d'une cellule, mais lié à la dimensions d'une tuile hexagonale. C'est un peu délicat en 3D, mais c'est faisable.
j'ai eu une question similaire en 2D il y a quelque temps qui pourrait être utile.
https://gamedev.stackexchange.com/questions/70092/infinite-treadmilling-hexagonal-grid/70341#70341
HEAlpix est le bon si votre contrainte est de garder une zone égale lors de la division de la sphère en morceaux (intéressant pour couvrir la zone projetée dans le ciel la même dans les pôles ainsi que dans la région de l'Équateur). Vous divisez fondamentalement votre sphère en 4 à chaque fois suivant soit un anneau ou un schéma imbriqué pour remplir la contrainte de zone hiérarchique égale. Il est également très pratique pour "déployer" des fonctions FT ((propriété ISO-latitude) sur le ciel par exemple étudier la température des modes CMB en mission Planck ou WMAP.
Il est également mis en œuvre dans de nombreux langages de programmation.
en outre, je devrais mentionner un autre (pas la même zone cependant), appelé Q3C pour "Quad Tree Cube", un autre système de partitionnement du ciel qui a d'autres avantages (recherche de cône et X-match)
article original:
http:// adsabs.harvard.edu/abs/2006ASPC..351..735K