等速円運動
円周上を一定の速さで動く物体の位置を時間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)で実行して、「速度表示」ボタンを押し、プレイボタンを押してみましょう。次のようになれば成功です。