voronoi <- function(coords.x1,coords.x2,poligono){ xy <- xy.coords(coords.x1,coords.x2) xy <- data.frame(x = xy$x, y = xy$y) boundary <- as(poligono, "gpc.poly") dummies <- data.frame(x = c(-1, -1, 1, 1), y = c(-1, 1, -1,1)) * 10 * max(abs(xy)) xy <- rbind(xy, dummies) vpolys <- voronoi.polygons(voronoi.mosaic(xy)) vpolys <- lapply(vpolys, as, "gpc.poly") subpolys <- lapply(vpolys, intersect, boundary) mapa = append.poly(subpolys[[1]],subpolys[[2]]) for(i in 3:length(coords.x1)){ mapa = append.poly(mapa,subpolys[[i]])} return(subpolys)}