うしブログ

Geogebraの使い方、応用など

アニメーション再生状態で起動する際の挙動について

実験内容

①数値オブジェクトtを用意する。

②tの値の範囲は0〜100とし、増分0.1、速度0.1、アニメーションは「増加(1回)」とする(下図参照)。

f:id:usiblog:20160628201951p:plain

③t=0の状態でアニメーションを開始し、そのままコンピュータに保存する。このときのtの値を記録する。

④-1 保存したggbファイルをgeogebra.orgにアップロードする。アップロードの過程では、下図のように「要素を追加」か「保存して閉じる」かを選ぶ段階がある。

f:id:usiblog:20160628202520p:plain

保存して閉じるを選択すると、下図の画面が現れるので、ここでは「結構です」を選択し、このときのtの値を記録する。

f:id:usiblog:20160628203205p:plain

④-2 ④-1のアップロード画面で、アプレットの編集ボタン(下図のペンのボタン)を押して、編集画面に入ったのち、「完了」ボタンを押す。このときのtの値を記録する。さらに、保存して閉じるを選択し、「結構です」を選択する。このときのtの値を記録する。

⑤ アップロードしたアプレットをうしブログに埋め込み、tがいくつから動き始めるかを確認する。

 

 

結果

tの値の記録

 

④-1を採用した場合

ローカル保存時:t=6.4

結構ですボタン時:t=33.0

埋め込み

t=6.4から動き始めている。

 

④-2を採用した場合

ローカル保存時:t=6.4

完了ボタン時:t=23.0

結構ですボタン時:t=33.0

埋め込み

t=23.0から動き始めている。

 

※どちらのアプレットも、名前を変更しても開始値に影響はなかった。

 

検討

・アップロード画面でアプレットの編集を行わない場合は、埋め込みアプレットのtの開始値は、ローカル保存時のtの値である。

・アップロード画面でアプレットの編集を行った場合は、埋め込みアプレットのtの開始値は、「完了」ボタンを押した時のtの値である。

・アップロード後、アプレットの編集ボタン(上記のペンのボタン)を押した場合は、その後完了ボタンを押した時のtの値に開始値が更新される。

 

始値をなるべくt=0に近づけたいときは、編集ボタンを押してスライダーを操作して、ただちに完了ボタンを押せば良い。

厳密にt=0から開始することはできないだろうか。以下でその方法を考える。

 

アニメーションを開始するための時限装置をつける

以下のように数値オブジェクトtriggerをつくる。

f:id:usiblog:20160628211321p:plain

triggerのOn Update スクリプト

If[trigger==5,StartAnimation[t,true]]

button1をつくり、On Clickスクリプトを以下のように記述する。

StartAnimation[t,false]
SetValue[t,0]
SetValue[trigger,0]
StartAnimation[trigger,true]

※ここではあえて、button1のクリック後にもbutton1は消えない設定にした。

 

 以上のようにすれば、button1を押すとt=0、停止状態になり、triggerが0〜10のカウントアップを始める。そしてtrigger=5、すなわちボタンを押してから5秒経過したら、tのアニメーションが開始する。

trigger=0, t=0, 停止状態でアップロードし、オンラインの編集画面でbutton1を押し、5秒以内に完了ボタンを押せば、埋め込みアプレットは読み込み後数秒のインターバルを経て、t=0からアニメーションが開始するはずである。

結果

アプレット読み込み時にスクリプトを実行する方法はないのか

 埋め込みアプレットをユーザーが読み込んだときにStartAnimation[t, true]を実行する方法はないのだろうか。

tのOn Updateスクリプトに、

If[t==0,StartAnimation[t,true]]

 を記述して、t=0の状態でアップロードしても、読み込み時にアニメーションは開始しなかった。

 今後の課題としたい。