Увеличить размер gif-файла caTools - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь создать анимированный GIF из «Игры жизни» Конвея. Я нашел способ использовать write.gif из пакета caTools. Проблема в том, что выходной gif очень маленький. Есть ли способ его увеличить?

if (!require("caTools")) install.packages("caTools")
library("caTools")

generate_life <- function(N = 40, prob = 0.4, frames = 100, filename = "GoL.gif"){
  grid <- matrix(rbinom(N^2,1,prob), nrow=N, ncol=N)
  output <- array(0, c(N, N, frames))

  for (i in 1:frames)
  {
    shift2E = cbind(rep(0, N) , grid[, -N] )
    shift2SE = rbind(rep(0, N), cbind(rep(0, N-1), grid[-N, -N]))
    shift2S = rbind(rep(0, N), grid[-N,])
    shift2SW = rbind(rep(0, N), cbind(grid[-N, -1], rep(0, N-1)))
    shift2W = cbind(grid[, -1],rep(0, N))
    shift2NW = rbind(cbind(grid[-1, -1], rep(0, N-1)), rep(0, N))
    shift2N = rbind(grid[-1,], rep(0, N))
    shift2NE = rbind(cbind(rep(0, N-1), grid[-1, -N]), rep(0, N))

    nbhds <- shift2E + shift2SE + shift2S + 
      shift2SW + shift2W + shift2NW + shift2N + shift2NE

    tmp <- grid
    tmp[grid==0 & nbhds==3] <- 1 # Birth rule
    tmp[grid==1 & nbhds < 2] <- 0 # Death rule
    tmp[grid==1 & nbhds > 3] <- 0 # Death rule
    grid <- tmp

    output[,,i] <- nbhds
  }

  output <- output/max(output)
  write.gif(output, filename, col="gray", delay=5, scale = "always")
}

generate_life(N = 100,prob = 0.4,frames = 200)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...