Programing

육각형지도 타일로 지구 덮기

lottogame 2020. 12. 15. 08:10
반응형

육각형지도 타일로 지구 덮기


많은 전략 게임은 육각형 타일을 사용합니다. 주요 장점 중 하나는 타일의 중심과 인접한 모든 타일 사이의 거리가 동일하다는 것입니다.

육각형 타일 시스템과 전통적인 지리적 시스템 (경도 / 위도)을 결합하는 것에 대해 생각하는 사람이 있는지 궁금합니다. 지구본을 육각형 타일로 덮고 지리 좌표를 타일에 매핑 할 수 있으면 재미있을 것 같습니다.

이전에 이것과 가까운 것을 본 사람이 있습니까?

최신 정보

각 분할이 동일한 표면적을 갖도록 구의 표면을 세분화하는 방법을 찾고 있습니다. 이상적으로, 인접한 세분화의 중심은 등거리에 있습니다.


vraid / earthgen을 살펴보십시오 . 육각형 (및 몇 개의 오각형)을 사용하고 소스 코드를 포함합니다 ( planet / grid / create_grid.cpp 참조 ).

2018 년 부터 라켓을 기반으로 새 버전을 사용할 수 있습니다 .

vraid / earthgen 이미지


글쎄, 많은 사람들이 구를 육각형 타일로 타일링 할 수 없다는 점을 지적했습니다. 아마도 당신은 왜 그런지 궁금 할 것입니다.

Euler는 (그리고 흥미롭고 다른 많은 증명과 심지어 전체 책이 있습니다) y 개의 모서리가 합쳐져 ​​있고 z 개의 꼭지점이있는 x 개의 다각형에있는 구의 타일이 주어 졌다고 말했습니다 (예를 들어, 큐브에는 12 개의 모서리를 가진 6 개의 다각형이 있고 8 꼭지점) 공식

x-y + z = 2

항상 유지합니다 (마이너스 기호에 유의).

(BTW : 이것은 위상 적 진술이므로 입방체와 구 (정확히 말하면 테두리 만)는 여기서 실제로 동일합니다)

육각형 만 사용하여 구를 타일링하려면 6 * x 모서리가있는 x 육각형으로 끝납니다. 그러나 각 육각형 쌍은 하나의 모서리를 공유합니다. 그래서, 우리는 그들 중 3 * x와 6 * x 꼭짓점 만 세고 싶지만, 다시 말하지만, 각각은 3 개의 육각형에 의해 공유되므로 2 * x 가장자리로 끝납니다.

이제 공식을 사용합니다.

x-3 * x + 2 * x = 2

당신은 잘못된 진술로 끝납니다. 0 = 2그래서 당신은 정말로 육각형만을 사용할 수 없습니다.

그렇기 때문에 고전적인 축구 공이 그랬던 것처럼 보입니다. 물론 현대 축구 공은 더 화려하지만 기본적인 사실은 남아 있습니다.


일반 타일로 구형을 덮는 것은 불가능합니다 (길고 얇은 "주황색 조각"제외). 따라서 특정 제약 조건이나 요구 사항을 고려할 때지도를 픽셀 화하는 최적의 방법은 실제로 매우 어려운 연구 문제입니다.

(천체 물리학에서) 매우 자주 사용되는 타일링의 한 종류는 HEALPIX 픽셀 화입니다 : http://healpix.sourceforge.net/

이 픽셀 화는 동일 영역 요구 사항을 충족합니다. 그러나 모든 것을 등거리로 만드는 것은 불가능합니다.

또 다른 픽셀 화는 "GLESP"로, 몇 가지 다른 속성을 가지고 있습니다 (소프트웨어 패키지만큼 세련된 것은 아닙니다) : http://www.glesp.nbi.dk/


가장 먼저 떠오르는 웹 사이트는 Amit의 게임 프로그래밍 정보 와 육각 격자에 대한 링크 모음입니다.


동일한 육각형으로 구를 덮을 수는 없지만 대부분이 육각형 인 측지선으로 덮을 수 있습니다. 이십 면체의 꼭지점에 12 개의 오각형이 있고 육각형이 약간 왜곡되어 구로 부풀어 오릅니다.


Kevin Sahr, Denis White 및 A. Jon Kimerling의 "Geodesic Discrete Global Grid Systems"읽기

여기에서 찾을 수 있습니다 ...


육각형 타일은 지리 공간 용도에 적용되는 일반 지오메트리에 너무 복잡합니다. 삼각형과 유사한 것을 HTM 에서 확인 하거나 다른 소스에 대해서는 "Hierarchical Triangular Mesh"를 google에서 확인하십시오 .


행성 표면을 icosahedra로 매핑하는 데 사용 된 오래된 Traveler 롤 플레잉 게임 (책에서 인쇄하기 위해 열림). 이로 인해 모서리 헥스에서 큰 왜곡이 발생했습니다 (오각형이되어야 함). GURPS Traveller를 검색 할 때 이러한 자료를 찾을 수 있습니다.


구를 평평한 표면으로 만든 동일한 부분으로 나누는 것은 힘든 일입니다. 이 때문에 끝낼 측지 모양 되어 있지 동일한 크기의 삼각형으로 구성 차례에있을 수 있습니다 모양으로 구성. 모든 육각형과 오각형을 삼각형으로 분해하면 내부 각도가 다른 삼각형이되어 대칭을 잃게됩니다.

제가 드릴 수있는 한 가지 위로는 모든 모양이 분류 할 수있는 제한된 수의 삼각형을 가질 수 있다는 것입니다. 즉, 작은 측지선의 경우 모든 육각형과 오각형 을 설명 하는 데 5 개 또는 6 개의 삼각형을 반복적으로 사용할 수 있습니다. 측지선에 필요합니다. 거리는 각 삼각형 / 모양의 "중심"과 같지 않지만, 최소한 각 삼각형의 처리를 개별 케이스로 나누어 코드에서 잠재적 인 해결 방법을 제공 할 수 있습니다.


단일 유형의 다각형을 사용하여 구를 근사하는 플라톤 다면체는 몇 개뿐입니다. 유명 면체면체 . 약간의 왜곡과 몇 개의 겹치는 점을 기꺼이 갖고 싶다면 게임을 재미있게 만드는 공정한 결과를 얻을 수 있습니다. 모든 타일에 대해 거의 동일한 면적을 관리하고 전 세계 서클에 대해 꽤 일관된 타일 거리를 관리하는 THIS LINK를 사용 해보세요 .

그러나 이러한지도 중 어느 것도 오래된 지리적 인 원통형 경도 / 위도 투영 시스템에 쉽게 적용되지 않습니다.

한 가지 해결책은 벌집 패턴을 EQUIRECTANGULAR 프로젝션 맵 에 중첩하고 이처럼 극점에 접근 할 때 많은 왜곡을 허용 하는 것 입니다.

연구에 행운을 빕니다! :)


구를 조각으로 분할 할 때 동일한 영역을 유지하는 것이 제약 조건 인 경우 HEAlpix 가 올바른 선택입니다 (적도 영역뿐만 아니라 극에서 동일하게 하늘의 투영 영역을 덮는 데 관심이 있음). 기본적으로 계층 적 동일 영역 제약 조건을 충족하기 위해 링 또는 중첩 방식을 따를 때마다 구를 4 개로 분할합니다. 또한 플랑크 또는 WMAP 임무에서 CMB 모드의 온도를 연구하기 위해 하늘에 FT 기능 ((등위도 속성)을 '배치'하는 데 매우 편리합니다.

또한 많은 프로그래밍 언어로 구현됩니다.

또한 다른 장점 (원뿔 검색 및 x- 매치)이있는 또 다른 하늘 분할 방식 인 '쿼드 트리 큐브'의 Q3C라는 또 다른 영역 (동일 영역이 아님)을 언급해야합니다.

original paper:

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


I've just built an R package called dggridR which divides the surface of the Earth into equally sized hexagons for the purposes of binned spatial analysis.

Carsten makes this sound impossible in his answer, but, practically speaking, it's not. By introducing 12 pentagons all the rest of the hexagons fit together without an issue. Since you may have millions upon millions of cells for a highly-resolved grid, you can forget about those pentagons most of the time.

The maths of the transformation are complicated. You can find them in:

  • Crider, John E. “Exact Equations for Fuller’s Map Projection and Inverse.” Cartographica: The International Journal for Geographic Information and Geovisualization 43.1 (2008): 67–72. Web.

  • Snyder, John P. “An Equal-Area Map Projection For Polyhedral Globes.” Cartographica: The International Journal for Geographic Information and Geovisualization 29.1 (1992): 10–21. Web.

In the background dggridR relies on Kevin Sahr's DGGRID software.

You may also find the following references to be of use:

  • Gregory, Matthew J. et al. “A Comparison of Intercell Metrics on Discrete Global Grid Systems.” Computers, Environment and Urban Systems 32.3 (2008): 188–203. CrossRef. Web.
  • Kimerling, Jon A. et al. “Comparing Geometrical Properties of Global Grids.” Cartography and Geographic Information Science 26.4 (1999): 271–288. Print.
  • Sahr, K. “Hexagonal Discrete Global GRID Systems for Geospatial Computing.” Archiwum Fotogrametrii, Kartografii i Teledetekcji Vol. 22 (2011): 363–376. Print.
  • Sahr, Kevin. “Location Coding on Icosahedral Aperture 3 Hexagon Discrete Global Grids.” Computers, Environment and Urban Systems 32.3 (2008): 174–187. CrossRef. Web.
  • Sahr, Kevin, Denis White, and A. Jon Kimerling. “Geodesic Discrete Global Grid Systems.” Cartography and Geographic Information Science 30.2 (2003): 121–134. Print.

Old question, but:

The other responses are correct in that it is impossible to tile a sphere using only hexagons.

However, a simple(ish) hack is:

Create a 2d "sheet" of hexagons:

여기에 이미지 설명 입력

and offset them in 3D space from the origin by 1. Then, normalize all of the vertices.

This will give you a "bulging" version of the sheet that has a nice spherical curve to it. The problem is that this will only work if the sheet covers part of the sphere.

한 가지 해결책은 무한 그리드 바닥을 만드는 데 사용되는 것과 유사합니다. 구가 회전 할 때 반 셀을 이동 한 경우 해당 방향으로 한 셀 뒤로 구를 회전합니다. (육각형의 경우 숫자는 실제로 반 셀이 아니라 16 진수 타일의 크기와 관련이 있습니다.) 이것은 3D에서는 약간 까다 롭지 만 가능합니다.

2D에서 도움이 될만한 비슷한 질문이있었습니다.

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

참조 URL : https://stackoverflow.com/questions/749264/covering-earth-with-hexagonal-map-tiles

반응형