グラフィックス(1)

演習問題を行う前に 1-2. Mathematica を使うときの注意を良く読んでください.


内容

  1. 点を用いたグラフィックス
  2. 線を用いたグラフィックス
  3. 円を用いたグラフィックス
  4. ボールの軌跡を描く
  5. 演習問題

点を用いたグラフィックス

まず、点を使って絵を描いてみましょう.
Mathematica では (x,y)=(a, b) の点は で表されます. (x, y)=(a,b) に点を表示するには と入力します.点はリストでくくって複数指定できます.例えば、(x,y) = (a, b) と (x,y) = (c, d) に点を描きたいときには とすれば、(x,y) = (a,b) と (x,y) = (c,d) にそれぞれ、点が描かれます.

座標 (0,0),(0,1),(1,0),(1,1) に点を描きます.

入力
出力
入力
出力

ちょっとわかりにくいですが、4つのカドにそれぞれ1つずつ点が描かれていますね.Table[] を使って同じ事をしてみます.

入力
出力
入力
出力

よく見ると、Table を使った時と、使わなかったときの ten は { } の数が違いますが( Table を使ったときは { } が2重になっています)、これはグラフィックスを描くときには関係ありません.{ } は何重になっていても 1つの { } でくくられているのと同じとみなされます.

先ほどは点をたて横2つずつ描きましたが、今度は11個並べてみましょう.Table を使えば簡単です.

入力
出力
入力
出力

次に、 に点を打ってみましょう.次のようにすればよいですね.

入力
出力
入力
出力

線を用いたグラフィックス

次に線を用いたグラフィックスを描いてみましょう.

Mathematica では (x,y)=(a, b) から (x,y)=(c,d) への線は で表されます. (x, y)=(a,b) から (x,y) = (c,d) に線を描くには  と入力します.線はリストでくくって複数指定できます.例えば、(x,y) = (a1, b1) から (x,y) = (c1, d1) への線と (x,y) = (a2,b2) から (x,y) = (c2,d2) への線を同時に描くには と入力します.

(x,y) = (0,0) から (1,1) への線と (x,y) = (0,1) から (1,0) への線を描いてみましょう.

入力
出力
入力
出力

次に下のように網目模様を描いてみましょう.

まず、縦の線を作ります.

入力
出力
入力
出力

次に横の線を作ります.

入力
出力
入力
出力

縦と横を組み合わせれば、網目模様の完成です.

入力
出力

Table を使って、網目模様を作るには次のようにすればよいですね.

入力
出力
入力
出力
入力
出力

こうして、網目模様を Table を使って作ると、網目を増やすのも簡単です.

入力
出力
入力
出力
入力
出力

次に 3点 P1=(0,0), P2=(2,0), P3=(1,1) を頂点とする三角形を描いてみましょう.まず、P1, P2, P3 を定義します.

入力
出力
入力
出力
入力
出力

P1-P2, P2-P3, P3-P1 に直線を引けばよいのですから、次のようにします.

入力
出力
入力
出力

実は、Polygon を使っても同じようなことができます.

入力
出力
入力
出力

円を用いたグラフィックス

次は円を用いたグラフィックスです.

Mathematica では中心が (x,y)=(a, b) で半径 r の円は で表されます.中心が (x, y)=(a,b) で半径が r の円を描くには  と入力します.円もリストでくくって複数指定できます.例えば、中心 (x,y) = (a1, b1) で 半径 r1 の円と中心 (x,y) = (a2, b2) で 半径 r2 の円を同時に描くには と入力します.

中心 (x,y) = (0,0) で半径が 1 の円を描きましょう.

入力
出力
入力
出力

半径を 1, 2, 3 と変えて表示してみましょう.

入力
出力
入力
出力

Table を使って、半径 r が r = 1,2,3,....,10 の円を描きましょう.

入力
出力
入力
出力

次に半径が 0.5 で中心 (x, y) が の円を描いてみましょう.

入力
出力
入力
出力

ボールの軌跡を描く

ここでは、今まで学習したことを用いてボールの軌跡を描いてみます.今、時間 t = 0 でボールが下のような角度と速さで打ち上げられたとします.

このとき、ボールはどういう軌跡を描いていくでしょうか(ただし、空気抵抗は考慮に入れなくて良いとします)? これを Mathematica を用いて描いてみましょう.

まず、t 秒後のボールの位置 x(t), y(t) を定義します.x 方向には 3 m/s ですから t秒後の物体の x 座標はもちろん、x(t) = 3 t ですね.これを定義します.

入力
出力

次に、y(t) ですが y 方向には重力がかかるので加速度が -9.8 t です.よって t 秒後の y 方向の早さは v は ですね. ですから の両辺を t で積分すると、 を得ます.C は積分定数ですが、t = 0 のとき、y = 0 ですから C = 0 です.以上より がわかります.これを定義します.

入力
出力

それでは、ボールの軌跡を描いてみましょう.ボールの半径を 0.1 m とし、t = 0 から t = 2 まで 0.1 秒ごとのボールを描く事にします.t 秒後のボールの位置 x(t), y(t) は既に定義しましたから、中心が x(t), y(t) で 半径が 0.1 の円を t = 0, 0.1, 0.2, 0.3 , . . ., 1.9, 2.0 について描いていけばよいことになります.次のようにすればよいですね.

入力
出力
入力
出力

ボールの軌跡を見ると、もう少しで地面にぶつかりそうです.地面にぶつかる時間を計算してみましょう.y(t) = 0 となる時間を求めればよいのですから、次のようにします.

入力
出力

これより、t = 2.04082 秒で地面にぶつかることがわかりました.それでは、地面の反発係数が 0.9 であるとして、この後のボールの動きを追ってみましょう.地面にぶつかる直前のボールの y 方向の速さは 10 m/s のはずです(空気抵抗は考えませんから、エネルギー保存の法則より明らか).反発係数が 0.9 ですから、ぶつかった直後のボールの速さは、10 x 0.9 = 9 m/s となります.よって t > 2.04082 における y 方向のボールの位置 y(t) は ですね(なぜだかわかりますか?よく考えてください).
よって、y(t) は t<2.04082 の時と t>2.04082 で定義が違ってくるわけです.このような時は、次のように y(t) を定義すればよいですね.

入力
出力

それでは、y(t) が定義できましたから、早速、ボールの軌跡を描いてみましょう.今度は t = 0 から t = 3.5 まで描いてみます.

入力
出力
入力
出力

演習問題

(1)次のような斜めの網目模様を作れ.

(2) 「ボールの軌跡を描く」において、t = 0 から t = 5.5 までの軌跡を描け.次の図のようになるはずである.