A08 [授業内]

A08_1 (スクリプト)

ねらい: タートルグラフィックの使い方を理解する.タートルグラフィックを用いて関数のグラフを描く.

以下の動作をするタートルグラフィックをスクリプトで作成しなさい.A08_1.pyとタートルグラフィックの画面を提出しなさい.

  1. タートルオブジェクトを作成して形を’turtle’に変更し,スクリーンの座標系でy座標が0でスクリーンの左端に移動する.このときペンは上げておき,軌跡を描画しない.

  2. 亀のx座標は1ずつ進め,y座標はsin関数を用いて決定し,適当な振幅のサインカーブを描く.

    復習: 数学関数を使用する場合は,math モジュールを import する.

  3. 亀がスクリーンの右辺に達したらならば停止する.

※スクリプトの場合,turtle.done()を最後に実行しないと,描画終了と共にグラフィックのスクリーンが閉じてしまうので注意すること! kame.done() ではないことにも注意.

正弦


A08_2 (スクリプト)

ねらい: タートルグラフィックの使い方を理解する.タートルの方向と移動距離を指定して図形を描く方法に慣れる.

以下の動作をするタートルグラフィックをスクリプトで作成しなさい.A08_2.pyとタートルグラフィックの画面を提出しなさい.

  1. タートルオブジェクトを作成し,スクリーンの座標で(-100, 200), (100,200), (100, 210), (-100, 210)を頂点とする長方形を描く.ただし,長方形以外の軌跡は描かないようにする.

  2. タートルの形を’turtle’に変更し,(-100,-100)の位置に移動する.また,ペンを下ろして軌跡を描くようにする.

  3. 作成した長方形に向かって亀が前進すると衝突するように亀の角度を指定して方向を変える.

  4. 亀が長方形に衝突すると入射角と反射角が等しくなるように反射して下方へ方向を変えて前進させる.このとき,亀の方向(回転角度)と移動距離を指定することで亀の動作を制御し,亀の頭の向きが進行方向と一致するようにしなさい.

※亀が長方形に衝突したかどうかは,亀のy座標に基づいて判断する.

  1. 亀が画面の下端に達したならば亀が停止する.

反射

(必要でしたら) 亀の位置や向きを知るメソッドまとめ:


A08_3 (スクリプト)

ねらい: タートルグラフィックの使い方を理解する.タートルの座標を指定して移動し,図形を描く方法に慣れる.

以下の動作をするタートルグラフィックをスクリプトで作成しなさい.A08_3.pyとタートルグラフィックの画面を提出しなさい.

  1. タートルオブジェクトを作成し,スクリーンの座標で(-100, 200), (100,200), (100, 210), (-100, 210)を頂点とする長方形を描く.ただし,長方形以外の軌跡を描かないようにする.

  2. タートルの形を’turtle’に変更し,(-100,-100)の位置に移動する.また,ペンを下ろして軌跡を描くようにする.

  3. 作成した長方形に向かって亀を前進させ,衝突するようにする.

  4. 亀が長方形に衝突すると入射角と反射角が等しくなるように反射して下方へ方向を変えて前進させる.このとき,亀の座標を指定することで亀の動作を制御しなさい.whileループを用いて亀の座標を少しずつ更新することで,亀が移動するようにしなさい.亀の頭の向きが進行方向と一致しなくてもかまわない.

  5. 亀が画面の下端に達したならば亀が停止する.


A08_4 (スクリプト)

ねらい: タートルグラフィックの使い方を理解する.タートルの状態を取得して,その値をもとにタートルの動作を変更することに慣れる.

以下の動作をするタートルグラフィックをスクリプトで作成しなさい.A08_4.pyとタートルグラフィックの画面を提出しなさい.

  1. タートルオブジェクトを作成して形を’turtle’に変更する.

  2. 亀の方向をランダムに変更し,軌跡を描きながら移動を開始する.

ヒント: randomモジュールをインポートして,random.randintを使うとよい.

  1. 亀がスクリーンの上下左右の端に達したらならば,入射角と反射角が等しくなるように反射して方向を変えて前進を続けさせる(無限ループ).