第1-6章まとめ課題



アニメーションのファイルへの保存

教育用計算機システムの Jupyter Notebook 環境では,
data = [[[0, 1], [0, 0]],
        [[0, 1], [0, 1]],
        [[0, 1], [1, 1]]]
ita.plot.animation_show(data)
のようにして,アニメーションを表示できますが,
data = [[[0, 1], [0, 0]],
        [[0, 1], [0, 1]],
        [[0, 1], [1, 1]]]
im = ita.plot.animation_show(data)
im.save('im.gif', writer='imagemagick')
のようにするとアニメーションの結果を im.gif というファイルに保存することができます(ターミナルでJupyter Notebookを起動したフォルダ内に作られます).

作成したファイルを「画像」としてITC-LMSの掲示板に提出することができます.

なお,ITC-LMSの掲示板で表示するときは,アニメーションgif形式のファイルでもアニメーションでは表示されないようですが,投票用に作成するページではアニメーションで表示可能にする予定です.

なお,動画ファイルの生成をGoogle Colab 環境でおこなう場合は,

im.save('im.gif', writer='imagemagick')
の行でエラーが出ますが,
!apt install imagemagick
を実行した後で,ランタイムを再起動してやり直すと,
im.save('im.gif', writer='imagemagick')
は実行できるようになります.im.gif というファイルができていることは,Google Colabの中(コードセルの中)で
!ls -l
を実行すれば確認できます.このファイルをダウンロードするには,Google Colabの中(コードセルの中)で
from google.colab import files
files.download('im.gif')
を実行してください. 他の環境でおこなうにはとエラーが出ることがありますが,サポートはできません.

動画ファイルの作成方法が分からない人は提出されたプログラムを元に,こちらで動画ファイルを作成しますが,必ずしも意図した動画ファイルが作成されないことがあるので,心配な人は自分で動画ファイルを作成することを試みてください.

昨年度の作品

昨年度の作品が第1-5章まとめ課題にあります.

ヒント

一から作るのが面倒な人は,以下のプログラムの(1)の部分の穴を埋めて a[y][x]に点(x,y)でのR,G,B値からなる大きさ3の配列を入れるコードを書く ので良い.
def show_color_picture():
  a=ita.array.make3d(50, 50, 3)
  for y in range(0, 50):
    for x in range(0, 50):
      #a[y][x]にRGB値からなる大きさ3の配列(要素は0から1までの実数)を入れる
       (1)
  return a
ita.plot.image_show(show_color_picture())
たとえば,(1)のところに
      a[y][x] = [x / 49, 1 - y / 49, 1]
と入れると, になり,その間を補間した

のような図が得られる.

ヒント

乱数を使いたい人は
import random
をした上で,random.randrange(0, n)で0以上n-1以下の整数が返る.
IN [1]: random.randrange(3)
OUT[1]: 1
IN [2]: random.randrange(3)
OUT[2]: 0
実数の乱数は random.random() で0.0以上1.0以下の一様乱数が返る.
IN [1]: random.random()
OUT[1]: 0.3163153252111951
IN [2]: random.random()
OUT[2]: 0.9910121225838986

実数値を整数値に変換するには,「int(式)」とする.
IN [1]: int(2.9)
OUT[1]: 2
IN [2]: int(2)
OUT[2]: 2
IN [3]: int(-2.9)
OUT[3]: -2
四捨五入ではないので,注意が必要.

ヒント

画像ファイルをPythonの配列にするには,一旦 convertコマンド を使って,テキストエディタで見える形式にするのが楽だろう. というPNG形式の画像ファイルがある時,
convert globe.png -compress none globe.ppm
を実行すると,以下のようなテキスト形式のファイル globe.ppm が作られる.
P3
34 42
255
246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 
....
246 246 246 246 246 246 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 
このファイル形式はPNM(Wikipedia) のように扱いやすいので,これをテキストエディタで編集して,Pythonの配列の初期化の形に修正すると楽と思われる.