我有一个六边形坐标系,如下所示:
(如果你想更好地理解坐标系,我是从here中学到的)
我想反映给定行的点(六边形)。事实上,我需要反映的唯一线是由(0, 0)
的边界和其周围的其他六边形定义的线。
例如,(0, 0)
和(1, 0)
的边框会创建一条线。 (0, 1)
和(1, -1)
都是这一行的要点。与(0, 0)
接壤的六边形有助于定义直线(在本例中为(1, 0)
),我称之为“边界六边形”。
我的问题是:是否有比我下面描述的更简单的算法,它采用边界六边形的坐标和网格上的另一个六边形(称为目标六边形),并返回目标六边形的坐标。由(0, 0)
和边界六边形定义的线上的反射?
我目前的方法是:
(x2-x1, y2-y1)
以得到一个平行于反射线的矢量(perpendicular component)*(perpendicular vector)+(parallel component)*(parallel vector) = (objective hexagon coordinates)
(objective hexagon coordinates)+2*(perpendicular component)*(perpendicular vector)
有谁知道更好的方法?对于这样一个看似简单的问题,这似乎相当复杂。