У меня есть алгоритм для конных туров на шахматных досках разных размеров (больших размеров, например, 100х100), и я хотел бы оживить результат. Каждый раз, когда конь перемещается в новый квадрат, соответствующий пиксель в (квадратном) холсте будет менять цвета, пока в конечном итоге не будет окрашен весь холст. Полученные фильмы будут доступны для просмотра на веб-странице об алгоритме.
Анимированные GIF-файлы кажутся лучшим способом, если мне нужна широкая поддержка браузера (хотя другие предложения приветствуются). Какой лучший инструмент или библиотека для этого? Я счастлив использовать все, что свободно доступно на компьютере Linux или Mac.
Фактический алгоритм слишком длинный, чтобы сделать полезный пример здесь (см. эту статью , если вам действительно интересно), но вот псевдокод для (скучного) короля тура в Доска 8х8:
movie = new Movie()
frame = new Frame()
frame.fillRectangle((1,1), 8, 8, BLUE)
for row in [1..8] {
if (row.isOdd()) { colrange = [1..8] } else { colrange = [8..1] }
for col in colrange {
frame.colourPixel(row, col, RED)
movie.addFrame(frame)
}
}
movie.saveAsGIF("tour.gif")
Вопрос о дополнительном кредите: Можем ли мы воспользоваться специальными функциями этого фильма, чтобы уменьшить размер файла? Статья Википедии предполагает, что мы могли бы сделать это, если мы меняем только некоторые пиксели - фактически мы меняем только один на кадр!