gpt4 book ai didi

algorithm - 使用算法制作动画 GIF 的最佳方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:47:51 27 4
gpt4 key购买 nike

我有一个算法,用于骑士在各种尺寸(大尺寸,如 100x100)的棋盘上的巡回赛,我想为结果制作动画。每次骑士移动到一个新方 block 时,(方 block ) Canvas 中的相应像素都会改变颜色,直到最终整个 Canvas 都被着色。由此产生的电影将可以在有关该算法的网页上观看。

如果我想要广泛的浏览器支持,动画 GIF 似乎是最好的方法(尽管欢迎其他建议)。执行此操作的最佳工具或库是什么?我很乐意使用 Linux 或 Mac 计算机上免费提供的任何东西。

实际算法太长,无法在此处提供有用的示例(如果您真的很好奇,请参阅 this paper)但这是在 8x8 板上进行(无聊的)king's 之旅的伪代码:

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")

加分题:我们可以利用这部电影的特殊功能来减小文件大小吗? Wikipedia article这表明,如果我们只改变一些像素,我们也许能够做到这一点——事实上,我们每帧只改变一个像素!

最佳答案

您可以使用 giflib来完成这个。文档在下载中。

例如,this page包含使用 giflib 创建的动画 gif 和用于生成动画的程序的源代码。了解如何使用 giflib 制作动画可能会有所帮助。

编辑:如果您不介意进行一些后期处理,另一种选择是使用简单格式 (such as PPM) 输出您的帧,然后使用 make the animated gif using ImageMagick .

至于你的额外信用问题:ImageMagick 甚至可以做 frame comparisons为您减少输出的大小。

关于algorithm - 使用算法制作动画 GIF 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/947138/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com