2-12 アニメーションを作成する

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


内容

  1. アニメーションの基本。
  2. 球を使ったアニメーション
  3. 球と関数のグラフィックスの合成
  4. 演習問題

アニメーションの基本

前回やったように、Mathematica では作成したグラフィックスを用いて、アニメーションを作成することが可能です。前回は SpinShow という命令を使いましたが、アニメーションの元絵(切り替える絵)さえ作れば、どんなグラフィックスもでもアニメーションにすることが可能です。今回は様々なアニメーションを作ってみましょう。

まず、少しずつ違った絵を連続的に描くための命令 Animate命令を説明します。この Animate 命令は変数の値を変えながら図を描き、それをアニメーションにする命令です。具体的には

Animate[
図を描く命令
{i, 1, n} ]

で i の値を 1 から n まで1つずつ増やしながら図を描き、 それをつなげてアニメーションを作ります。

それでは今度はこの Animate 命令を使ってアニメーションの元絵を作ってみましょう。次の関数を考えます。

この関数を i を 1 から 10 まで変えながら、アニメーションとして表示してみましょう。先ほどの Animate 命令を使って次のようにします。

入力
出力

アニメーションが表示されたはずです (アニメーションを止めるには、ポーズボタンを押します)。

上の例では2次元のグラフィックスをアニメーションで表示させましたが、3次元のグラフィックスでアニメーションを作ることも出来ます。次の関数を考えます。

この関数で先ほどと同様にアニメーションを作ってみましょう。

入力
出力

球を使ったアニメーション

前回、球や円錐を使った3Dグラフィックスの作り方を学びました。今回はそれを使ったアニメーションを作ってみましょう。

球の3Dグラフィックスを生成し、それを変数 k1 に代入します。

入力
出力
球を表示してみましょう。
入力
出力

先ほど生成した球のグラフィックスを z 軸方向に 1/2 倍してみます。x,y,z 軸方向への拡大、縮小には AffineShape を使うのでしたね。

入力
出力

それでは今度は球の z軸に伸ばしていくアニメーションを作りましょう。球を z 軸方向に i/2倍するグラフィックスを i の値を 1 から 10 まで順番に変えながら作っていきます。

入力
出力

次に球が動いていくアニメーションを作りましょう。まず、一辺の長さが 6 で原点を中心とする立方体の枠を作り、変数 c1 に代入しておきます。

入力
出力

きちんと立方体になっているか確かめてみましょう。

入力
出力

この枠の中で球を動かします( Mathematica はグラフィックスの座標を適当にずらして表示するため、枠がなければ球が動いているように見えません)。

球の中心の座標を

としてアニメーションで表示してみましょう(先ほど作った枠も一緒に表示します)。球の位置を変えるには Translate を使うのでしたね。

出力

次に球を球の周りで回転させてみましょう。まず、少し小さめ(半径が 1/3) の球を作り、変数 k2 に代入します。

入力
出力

それでは、k1 の球と k2 の球を同時に表示してみましょう。 そのまま表示すると、k2 が k1 の中に入って見えなくなってしまうので、 k2 の球の位置を x軸方向に 4/3 ほどずらして表示します。

入力
出力

それでは k1 の球の周りを k2 の球が回るアニメーションを作ってみましょう。g3 の中心を

として、グラフィックスを作ればよいですね。

入力
出力

ちょっと、球が小さく見えてしまうので、枠をもう少し小さくしましょう。一辺の長さを 4 にした立方体(中心は原点)を作り、変数 c2 に代入します。

入力
出力

c2 を枠にして、先ほどと同じグラフィックスを作ってみます。

入力
出力

今度は球が少し大きく見えるようになりました。


球と関数のグラフィックスの合成

Plot3D などで作った関数のグラフィックスと球のグラフィックスを合成することも可能です。

まず

の3次元グラフィックスを生成し、変数 g に代入します。

入力
出力

球 k2(半径1/3 で中心が原点の球) と上で作った g を同時に表示します(球が g のグラフの上に載るように z 軸方向に 1/3にずらしました)。

入力
出力

これから球 k2 が g のグラフの上を動いていくアニメーションを作りますが、まずそのための枠を作り、変数 c3 に代入します(今度は立方体ではなく、長方体です)。

入力
出力

それでは、球の x,y 座標を

として、g4 のグラフの上を動いていくようにアニメーションを作りましょう。g4 のグラフの定義より z 座標を

とすればよいですね(最後の +1/3 は、球がグラフの表面に浮かんでいるようにするためです。∵球の半径は 1/3)。

入力
出力

アニメーションで動かすと球がグラフの表面を動いていくのがわかります。


演習問題

(1)つぎの関数のアニメーションを作れ。

(1-a)

(1-b)

(2)つぎの関数の表面を球が動いていくアニメーションを作れ。

(3)つぎのアニメーションを作れ

(3-a) 地球と月

(3-b) 太陽と地球と月

(4)学んだことを活用して3Dのアニメーションを何か作れ。