等速円運動

円周上を一定の速さで動く物体の位置を時間tを媒介変数として表しましょう。円周上を動く速さが一定のとき、OPと(Oは原点)x軸の正の部分とのなす角が増えていく速さも一定です。これを「角速度」といい、ωで表すと点Pの座標は

x=rcosωt , y=rsinωt

と表されます。これが、円の媒介変数表示です。 したがって、

r=4; 

ω=1;

plot([r*cos(ω*t),r*sin(ω*t)]);

とスクリプトを書けば簡単に円が描けます。

上図のように角速度ωを変えることができ、アニメーションで点Pが動くインタラクティブな図があります。

以下では、上のスライダ付の図をつくる手順を示します。「作る手順はどうでもいい」という人は、「index」に戻りましょう。

図の作成手順

まず、部品を作ります。Cinderellaの作図機能を用います。

(1) 下のツールバーの磁石ツール「グリッドにスナップする」を押しておきます。

(2) 直線ツールでx軸,y軸、線分ツールでスライダ・・などを描いていきます。

いくつか注意をしましょう。

・作図の順序は問いませんので、上の図と記号は異なるかもしれません。

・点Kは線分EF上に乗せます。点Gは、逆に直線AB上に来ないようにします。

部品が置けたら、インスペクタを開いて体裁を整えていきます。

・背景を明るくします。

・図の点以外のラベルは非表示にします。x軸、y軸を描いた点A,B,C,Dは非表示にします。

・表示されている点のサイズは適当に。

・点Kは明るい緑にしましょう。

・線分PHは矢印にします。

・「速度表示」という文字はサイズを大きくし、「要素の情報」で「ボタンとして使う」にチェックを入れます。

・点Gは点Pに名前を変えます。「要素の情報」で「識別名」をPにします。

次に、スクリプトメニューからCindyScriptを選び、次のスクリプトを書いていきます。

まず、Drawスロット

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ω=K.x;

P.x=fx(t);

P.y=fy(t);

H.x=P.x-r*ω*sin(ω*t);

H.y=P.y+r*ω*cos(ω*t);

drawtext([K.x-0.2,K.y-1],ω,size->16);

if(Text1.pressed,

  H.visible=true;

  d.visible=true,

  H.visible=false;

  d.visible=false

);

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ここで、1行目のK.xは、スライダ上の緑の点の名前です。もしも、作成手順が違って、Gとでもなっていたら

ω=G.x 

とします。

4,5行目は速度ベクトルの終点の名前です。

6行目の [K.x-0.2,K.y-1] もスライダ上の緑点の名前です。

7行目の Text1 は「速度表示」という文字列の名前です。

8,10行目は速度ベクトルの終点の名前

9,11行目は線分PHの名前です。

もし、名前がわからないようでしたら、「表示」メニューから「式による表示」を選んで、幾何要素の一覧を出します。

次は Initialization スロット

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

r=4;  // 半径

ω=1;

t=0;

fx(t):=r*cos(ω*t);

fy(t):=r*sin(ω*t);

P.xy=[r,0];

H.xy=P.xy+[0,r*ω];

drawtext([5,4],"x=rcosωt",size->16);

drawtext([5,3],"y=rsinωt",size->16);

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ここでも、点の名前 H は速度ベクトルの終点の点の名前にします。

次は Timer Tick スロットです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

t=seconds();

plot([fx(#),fy(#)],start->0,stop->t,color->[1,0,0]);

drawtext([5,5],"ωt="+ω*t,size->16);

drawtext([5,4],"x=rcosωt="+fx(t),size->16);

drawtext([5,3],"y=rsinωt="+fy(t),size->16);

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

次は Simulation Start スロット

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

resetclock();

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

最後に、Simulation Stop スロットです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

drawtext([5,4],"x=rcosωt",size->16);

drawtext([5,3],"y=rsinωt",size->16);

t=0;

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

歯車アイコン(または Shift+Enter)で実行して、「速度表示」ボタンを押し、プレイボタンを押してみましょう。次のようになれば成功です。