游戏六边形的设计与推理
上图中,每个立方体在屏幕上的投影是正六边形。所以逆向思维可以认为六边形地图中的每个六边形都是一个立方体。基于此,我们可以开始设计和推导六边形地图方案。设计和推导的目的是找到海量数据和抽象理论之间的关系,从而帮助我们以计算机的形式进行计算。
现在我们已经把每个六边形的地图巨像变成了一个立方体,让我们把这些立方体做成边长为1。基于此,我们可以为每个立方体定义坐标,建立坐标系。
如上图,建立一个三维坐标系,其中我们定义蓝色为X轴,绿色为Y轴,红色为Z轴。
基于三维坐标系,我们可以找到每个方块的坐标。比如上图中,左下方块可以定位为(5,0,0),右方块的坐标依次为(4,0,1),(3,0,2),(2,0,3),(1,0,4),(0,0,0)。
然后,我们来重点介绍一下六边形地图变换的基础三维地图。
如上图,我们可以理解为这是一个二维平面,每个六边形网格都可以用(x,y)的形式表示;同时也可以理解为是三维世界的二维投影,每个立方体都可以用(x,y,z)的形式表示。
然后,对于上图中选择的立方体,我们将其坐标设置为(0,0,0),它所代表的六角点阵的坐标设置为(0,0)。直观来看,点右侧六边形的二维坐标为(0,1),立方体右侧立方体的坐标为(1,0,-1)。
以此为基础,建立了应用于生产环境的坐标系,下一步就是推导这个坐标系下的数学规律。
设一个立方体的坐标为(0,0,0),那么根据图例,我们可以推导出它周围六个立方体的坐标。
当我们在三维坐标系中计算围绕原点的六个点的坐标时,我们可以将这六个点的坐标转换成六个向量,分别代表围绕一个指定方框的六个点的偏移向量。
基于我们已经从原点构建了坐标系并获得了六个方向的偏移向量,我们可以得出以下结论:
结论1:坐标系中所有点的坐标的三个值之和为0。
结论1推导:由于坐标系从(0,0,0)开始,每个偏移向量的x,y,z值之和为0,因此可以推导出坐标系中所有点的坐标的x,y,z值之和为0。
结论2:若坐标系中任意两点的坐标差为(x,y,z),则x+y+z=0成立。
结论2推导:两个坐标点的坐标差可以理解为A点到b点的变换,由于变换由六个方向的偏移向量组成,且六个偏移向量满足x+y+z=0,所以这个结论成立。
根据数学归纳法,我们可以根据所有点的二维和三维坐标,求出所有点(二维坐标中的六边形和三维坐标中的方框)之间的变换关系:
结论3:如果一个点的二维坐标为(a,b),三维坐标为(x,y,z),那么对于任意一点,
有一个三维到二维的运算:a = x+(y >;& gt1),b = y;
有一个二维到三维的运算:x = a-(b >;& gt1),y=b,z=-x-y .
地图的一个常见功能是找出每个点之间的距离。因为二维坐标不方便我们计算距离,所以我们优先计算三维坐标中各点的距离,然后利用二维坐标与三维坐标的转换关系,完成二维左坐标中两点间距离的计算过程。
先抛结论:
结论4:若A点与B点的三维坐标差为(x,y,z),坐标差的本质是6个偏移向量的1-2乘以不同的倍数后叠加。
结论5:设A点和B点的三维坐标差为(x,y,z),则A点和B点的距离为x,y,z的绝对值的最大值..
让我们选择一个点作为起点。
然后我们选择一个点作为目标点。
从起点到目标点,可以有两种路径方案,如下图所示:
虽然两个方案的行走路径不同,但是距离是一样的。其本质是n个偏移向量的叠加。但由于六边形地图本身的性质,构成两点间路径的偏移向量只能是单个1向量,也可以是两个相邻向量的组合。
回过头来看偏移向量,可以发现任意两个相邻向量都有一个坐标的值相同,那么结合两点间路径的偏移向量的本质,可以得出结论5。