2014-11-24 25 views
0

我需要創建一個使用至多19種顏色的十六進制瓦片地圖,其中每種顏色必須保持至少3個瓦片的距離。但是,我不需要使用全部19種顏色。如果存在一種用少於19種顏色來解決這個距離約束的算法,這就完全好了。使用最小距離(3)爲重現顏色着色六邊形瓦片地圖的算法

Beckman-Quarles定理[1]看起來相關,並且有7色瓦片地圖顯示,其中相同的彩色瓦片彼此保持距離爲2。

但我有一個很難找到一個可以理解的描述,甚至實現構建一個六角磚地圖的距離3.

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

回答

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*]. 
+0

你是什麼意思與「你想要做的是瓦以下19個色彩佈局飛機」? – benjist 2014-11-24 17:34:31

+0

@benjist每個大寫字母代表一個彩色的十六進制。我想以一種常規的方式在飛機上覆制這種19-十六進制圖案。 – 2014-11-24 17:35:51

+0

我忘了提及:十六進制的所有邊都必須相等。十六進制代表了我的情況下的一個簡化的圓形區域(這在將瓷磚貼合在一起時會有所不同)。或者,也許我誤解了你的建議? – benjist 2014-11-24 17:52:09