さまざまなサイズ (100x100 などの大きなサイズ) のチェス盤でのナイト ツアーのアルゴリズムがあり、結果をアニメーション化したいと考えています。騎士が新しい正方形に移動するたびに、(正方形の) キャンバス内の対応するピクセルの色が変化し、最終的にキャンバス全体が色付けされます。結果の動画は、アルゴリズムに関する Web ページで表示できます。
幅広いブラウザー サポートが必要な場合は、アニメーション 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")
追加の質問:この映画の特別な機能を利用して、ファイル サイズを小さくすることはできますか? ウィキペディアの記事では、一部のピクセルのみを変更するだけで、これを実行できる可能性があることが示唆されています。実際、変更しているのはフレームごとに 1 つだけです。