Анимированный GIF в R теряет 3 мс в каждом интервале - PullRequest
0 голосов
/ 05 апреля 2019

Я создаю анимированный GIF, используя библиотеку R animation. Следующий код дает пример.

library(animation)
saveGIF({
  par(bg=rgb(0,0,0),mar=c(0,0,0,0))
  for (i in 1:30) {
    plot(NULL,xlim=c(-1,1),ylim=c(-1,1))
    ang <- pi*i*12/180
    symbols(cos(ang),sin(ang),circles=1,inches=.2,bg='white',fg=NA,add=T)
  }
},interval=1/30,movie.name='clock.gif',ani.width=500,ani.height=500)

Приведенный выше код дает изображение ниже.

White ball making circles around a black space

Поскольку interval установлен на 1/30 (секунды) и имеется 30 кадров (i in 1:30), я ожидаю, что период анимации будет ближе к 1 секунде (т.е. каждый кадр должен длиться 33 мс или 33,333 мс, если это возможно). Однако, когда я открываю изображение в GIMP, я вижу, что каждый кадр имеет только 30 мс, вместо 33 или 33,3 мс. Что я делаю неправильно? Можно ли как-нибудь улучшить это с точностью до 1 секунды в каждом цикле или хотя бы как можно ближе?

1 Ответ

2 голосов
/ 05 апреля 2019

Формат файла GIF определяет задержку в виде целого числа без знака, указывающего задержку в «сотых долях секунды».У него нет разрешения в миллисекундах.

Если вы хотите приблизиться к 1 секунде на цикл, выберите количество кадров, которое легко входит в 100.

...