2014-11-06 134 views
0

是否有繪製n邊多邊形網格的算法。下面是六邊形的例子:繪製多邊形網格的算法

enter image description here

+3

大多數普通的N面多邊形不能很好地配合在一起。只有六角形,長方形和三角形經常鑲嵌。所有其他形狀留下空隙。 – Kevin 2014-11-06 21:05:13

+0

感謝您的洞察。我應該想到這個... – mzdravkov 2014-11-06 21:32:13

回答

0

它使用格包我的解決方案。

library(grid) 
hexagon_layer <- function(x, y, r) { 
    axis.x <- c(x, x + 3 * r, x + 6 * r, x + 9 * r, x + 12 * r, x + 15 * 
     r, x + 18 * r, x + 1.5 * r, x + 4.5 * r, x + 7.5 * r, x + 10.5 * 
     r, x + 13.5 * r, x + 16.5 * r, x + 1.5 * r, x + 4.5 * r, x + 7.5 * 
     r, x + 10.5 * r, x + 13.5 * r, x + 16.5 * r) 
    axis.y <- c(rep(y, 7), rep(y + r * sqrt(3)/2, 6), rep(y - r * sqrt(3)/2, 
     6)) 
    hexagon <- function(x, y, r) { 
     grid.path(x = c(x + 0.5 * r, x + r, x + 0.5 * r, x - 0.5 * r, x - 
      r, x - 0.5 * r), y = c(y + r * sqrt(3)/2, y, y - r * sqrt(3)/2, 
      y - r * sqrt(3)/2, y, y + r * sqrt(3)/2)) 
    } 
    for (i in 1:length(axis.x)) { 
     hexagon(axis.x[i], axis.y[i], r = 0.05) 
     next 
    } 
} 
for (i in seq(1, 21, by = 2)) { 
    hexagon_layer(x = 0.05, y = i * 0.05 * sqrt(3)/2, r = 0.05) 
    next 
}