Reflection 如何在六角坐标系中围绕直线反射点

Reflection 如何在六角坐标系中围绕直线反射点,reflection,hexagonal-tiles,Reflection,Hexagonal Tiles,我有一个六边形坐标系,如下所示: (如果你想更好地理解坐标系,我是从 我想在给定的直线上反射点(六边形)。事实上,我需要反射的唯一线条是由(0,0)的边界和周围的其他六边形定义的线条 例如,(0,0)和(1,0)的边框创建一条线(0,1)和(1,-1)都是这条线上的点。有助于定义直线的六边形边界(0,0)(在本例中为(1,0)),我将其称为“边界六边形” 我的问题是:有没有比我下面描述的算法更简单的算法,它获取网格上边界六边形和另一个六边形(称为目标六边形)的坐标,并在通过(0,0)和边界六边

我有一个六边形坐标系,如下所示:

(如果你想更好地理解坐标系,我是从

我想在给定的直线上反射点(六边形)。事实上,我需要反射的唯一线条是由
(0,0)
的边界和周围的其他六边形定义的线条

例如,
(0,0)
(1,0)
的边框创建一条线<代码>(0,1)和
(1,-1)
都是这条线上的点。有助于定义直线的六边形边界
(0,0)
(在本例中为
(1,0)
),我将其称为“边界六边形”

我的问题是:有没有比我下面描述的算法更简单的算法,它获取网格上边界六边形和另一个六边形(称为目标六边形)的坐标,并在通过
(0,0)
和边界六边形定义的直线反射后返回目标六边形的坐标

我目前的方法是:

  • 使用边界六边形的坐标作为垂直向量 到反射线
  • 取原始边界六边形周围两个边界六边形的坐标,减去它们
    (x2-x1,y2-y1)
    ,得到一个平行于反射线的向量
  • 使用坐标变换矩阵将目标六边形的坐标转换为平行和垂直分量,以便
    (垂直分量)*(垂直向量)+(平行分量)*(平行向量)=(目标六边形坐标)
  • 反射的结果是
    (目标六边形坐标)+2*(垂直分量)*(垂直向量)
  • 有人知道更好的方法吗?对于这样一个看似简单的问题,这似乎相当复杂