擅长:python、mysql、java
<p>我也做了一些研究,找到了一个更简单的方法。你不必这么复杂!表可以是一个简单的数组,没有任何特殊规则。</p>
<p>你想用六角形的根坐标系。请看这里的理论:<a href="https://en.wikipedia.org/wiki/Root_system" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Root_system</a>。还有<a href="https://www.redblobgames.com/grids/hexagons/" rel="nofollow noreferrer">https://www.redblobgames.com/grids/hexagons/</a></p>
<p>单元(0,0)位于结构的中心,然后它有六个邻域:如众所周知的正交表(1,0),(0,1),(-1,0),(0,-1),但也有(1,1),(-1-1)。其他小区同样有六个邻居,不需要模块!</p>
<p>这里有一些Ascii艺术以便更好地理解:</p>
<pre><code> _____ _____ ____ __
/ -2,2\_____/ 0,1 \____/2,0 \____/ \__
\_____/-1,1 \_____/ 1,0\____/3,-1\__/
/-2,1 \_____/0,0 \____/2,-1\____/ \__
\_____/-1,0 \_____/1,-1\____/3,-2\__/
/-2,0 \_____/ 0,-1\____/2,-2\____/ \__
\_____/ \_____/ \____/ \__/
</code></pre>
<p>可以计算平面中每个单元的中心位置(在屏幕中也是如此),因为它遵循矢量几何的规则。向量的坐标是60°而不是90°:a=(0,1)但b=(0,87,0.5),只需乘以并加上这些坐标!</p>
<p>你可能想使用pyhton librairy Hexy:<a href="https://github.com/RedFT/Hexy" rel="nofollow noreferrer">https://github.com/RedFT/Hexy</a></p>