我有一个用于骑士在各种尺寸(大尺寸,如 100x100)的棋盘上旅行的算法,我想为结果制作动画。每次马移动到一个新的方格时,(方格)画布中的相应像素都会改变颜色,直到最终整个画布都被着色。生成的电影将可用于在有关算法的网页上查看。
如果我想要广泛的浏览器支持,动画 GIF 似乎是最好的方法(尽管欢迎其他建议)。最好的工具或库是什么?我很乐意使用 Linux 或 Mac 计算机上免费提供的任何东西。
实际的算法太长了,无法在这里做一个有用的例子(如果你真的很好奇,请参阅这篇论文)但这里是一个(无聊的)国王在 8x8 板上的旅行的伪代码:
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")
额外的问题:我们可以利用这部电影的特殊功能来减少文件大小吗?维基百科的文章表明,如果我们只改变一些像素,我们也许可以做到这一点——事实上,我们每帧只改变一个!