0

我需要创建一个十六进制图,最多使用 19 种颜色,其中每种颜色必须保持至少 3 个图块的距离。但是,我不需要使用所有 19 种颜色。如果存在用少于 19 种颜色解决此距离约束的算法,那就完全没问题了。

Beckman-Quarles 定理 [1] 看起来相关,并且显示了一个 7 色瓷砖图,其中相同颜色的瓷砖彼此保持 2 的距离。

但是我很难找到一个可以理解的描述,甚至是构建距离为 3 的六角平铺地图的实现。

[1] http://de.wikipedia.org/wiki/Satz_von_Beckman_und_Quarles

4

1 回答 1

1

让我们建立一个坐标系,其中带坐标的十六进制与(i,j)相邻(i-1,j), (i-1,j+1), (i,j-1), (i,j+1), (i+1,j-1), (i+1,j)

(0,3)       (2,2)       (4,1)
      (1,2)       (3,1)
(0,2)       (2,1)       (4,0)
      (1,1)       (3,0)
(0,1)       (2,0)
      (1,0)
(0,0)

我将应用剪切变换,以便我可以使用 ASCII 艺术紧凑地绘制十六进制网格。转换后的 7-hex 区域如下所示。

**
***
 **

您要做的是使用以下 19 色布局平铺平面。

ABC
DEFG
HIJKL
 MNOP
  QRS

瓷砖可以像这样组合在一起。

   111
   1111
00011-11
00001111333
00-001113333
 000022233-33
  00022223333555
     22-223335555
      222244455-55
       22244445555
          44-44555
           4444
            444

我已经用 标记了瓷砖中心-。它们形成了一个由两个向量生成的格子:(5,-3)(3,2)。给定十六进制坐标(i,j),我们可以(可能不太优雅)求解矩阵方程

[5 -3] [u]   [i]
[3  2] [v] = [j]

然后,在有理变量u, v中,尝试所有四个整数舍入uv到附近的整数u*,并v*分别确定哪个瓷砖(i,j)位于并应用适当的颜色,瓷砖中心在哪里

[5 -3] [u*]
[3  2] [v*].
于 2014-11-24T16:59:55.357 回答