2月号の補足

 今回は,スクリプトについて,いくつかの例を紹介します。
 なお,今回紹介したGRAPESのファイルおよび,「数学教育」2月号で紹介したGRAPESのファイルは,下記「データファイルのDownload」からDwonloadすることができます。

1 円周上の2点を結んで,外サイクロイドを描く
2 放物線でゆーらゆら
3 進行波と反射波の合成
4 スクリプトについて
5 データファイルのDownload


1.円周上の2点を結んで,外サイクロイドを描く

 右図のように,円周上を回転する2点P,Qがあり,QはPの3倍の速さで動いています。このとき,線分PQはどのような直線群を描くでしょうか。
 単位円の円周上を動く点は,中心角をθとすれば, roll(θ) で表されました。ですから,
 P = roll(2πt)
としておけば,t=0 から t=1 の間に,点Pは円を1周します。ちなみに,
 P = (cos t, sin t)
としても結果は同じです。さらに,
 Q = roll(2kπt)
とすれば,QはPのk倍の速さで動きます。
この2点を結んで,tを0から1まで動かします。
 以下では,kの値を変えるごとに,t = 0 から 1 まで,自動で描いてくれるスクリプトを紹介します。
 
スクリプト スクリプトの説明
//Draw
on k change
t :=0
Calc
ClrAImg
SetColor(L1,hsl(rnd(1),1,0.5)
for t :=0 to 1 step 1/200
Draw
next t
「Draw」というスクリプトを作成
パラメータkの変化でスクリプトを実行
パラメータt の初期化
計算を実行
残像の消去
きれいな色をランダムに付ける
バラメータt を 0から 1まで、1/200刻みで変化させて図形を描く
 実行してみましょう。
 メモエリアに[Draw]というボタンができますから,それをクリックします。
 あるいは,パラメータkを変化させます。
きれにな模様が描かれていきますよ。

2.放物線でゆーらゆら

 放物線 y = ax2 では,aの値を変化させると曲線の開き具合が変化します。
 そこで,放物線の開き具合を連続的に変化させて,放物線が羽ばたかせてみましょう。
 
スクリプト スクリプトの説明
//ゆーらゆら
t := 0
a := cos t
Draw
wait(1000)
for t := 0 to 4Pi step 1/20
a := cos t
draw
wait(20)
next
「ゆーらゆら」というスクリプトを作成
パラメータt の初期化
パラメータa の初期化
計算を実行
1秒待つ
バラメータt を 0から 4πまで、
1/20刻みで変化させて
図形を描く
鳥のように優雅に,とはいきませんが・・・

3.進行波と反射波の合成

横波が硬い壁に当たって反射するとき,元の波と反射波の合成波ができます。
右図,青い波と赤い波が,元の波とその反射波,黒い波が合成波です。
これらの波を動かしたり,あるいは,合成波を表示したり消したりするスクリプトを紹介します。
 なお,関数は次のようになっています。
y1 = sin a(vt-x) (x<0)
y2 = sin a(vt+x) (x<0)
y3 = y1 + y2



スクリプト スクリプトの説明
// 波を発生させる
for t :=1 to 1+6*Pi/v step 0.005
draw
next t

//合成波の表示スイッチ
InvShowObj(y3)
「波を発生させる」スクリプトを作成
t = 1 から 1+6π/v まで
0.005の刻みで,
描画する。

「合成波の表示スイッチ」スクリプトを作成
y3 の表示切替

4.スクリプトについて

 スクリプトについての説明はGRAPESのhtmlマニュアルをご覧下さい。これはGRAPESの中から,[ヘルプ]→[HTMLマニュアル]とすることで見ることができます。なお,マニュアルの中のスクリプトの部分を抜き出したものをPDFファイルにしました。ご利用下さい。


データファイルのDownload