11/7 放物運動のシミュレーション


前回の補足


前回の感想,質問より

Q.
第1-5章まとめ課題をやるために,線分を引く関数を作りたいのですが,どうしたら良いでしょうか?
A.
matplotlibの機能の中に線を引く機能はありますが,課題で想定しているのは draw_circleのように,配列imageにcolorを置いていくものですね.以下のような雛形になると思います.
def draw_line(y1, x1, y2, x2, color, image):
  # ここで配列imageのうち,線分上にある点はcolor で置き換える.
  return image
「線分上の点」の描画はP1 = (x1, y1), P2 = (x2, y2) として (1 - t) * P1 + t * P2 に近い点を tを0から1まで少しずつ変化させるという方法があります.
def draw_line(y1, x1, y2, x2, color, image):
  n = max(abs(x1 - x2), abs(y1 - y2))
  for i in range(0, n + 1):
    t = i / n
    ix3 = int((1 - t) * x1 + t * x2 + 0.5)
    iy3 = int((1 - t) * y1 + t * y2 + 0.5)
    image[iy3][ix3] = color
  return image
というのが例になりますね.

第1-5章まとめ課題について


授業の登録方法


講義資料


講義フォルダの作成


投票システム

vote.pyをダウンロードして(「リンク先のファイルを別名で保存」で,ホームフォルダの下のalgo18を選択(なければ作る).".txt"を「追加しない」を選ぶ)保存します.ドックからターミナルを起動して,
cd ~/algo18
を済ませてから,
python vote.py 選択肢番号
のように使います.

Jupyter Notebookを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.


テキストの補足


Notebook教材

以下のNotebook教材は,~/algo18 以下に ダウンロードして,Jupyter Notebookからopenして使ったり, Google Colaboratoryを使って,クラウド実行環境でPythonプログラムを実行できます.ダウンロードする場合もGoogle Colaboratoryの使い方を参照してください.Googleアカウントへのログインを求められたときは,通常のGoogleアカウント「XXX@gmail.com」ではなく,ECCSクラウドメールのアカウント「XXX@g.ecc.u-tokyo.ac.jp」を使ってログインしてください.

今日の課題