はじめに
こちらのリファレンスの一部を訳したものです。これらの関数の使い道としては
- ボタンが押された時に特別な処理を実行させるアプリ
- こんな感じのGeoGebraが埋め込まれたwebページを作成する
だと思います。教材アプリを作る分にはよっぽど使わない機能ですが、少し高度(特別な)処理を使いたい時に活躍するイメージです。つまり何が言いたいかというと「GeoGebraを始めたいけど何から始めれば...」という人向けではないです。
コマンド
evalCommand(String cmdString)
与えられた文字列を、GeoGebra の入力バーに入力されたときに評価されるのと同じように評価します。コマンドの評価が成功したかどうかを返します。
GeoGebra 3.2 からは、複数のコマンドを \n で区切ることで、一度に複数のコマンドを渡すことができるようになりました。
ggbApplet.evalCommand('(0,0)')
ボタンを押した際に動くようにするためにはggbApplet
を冒頭につける必要があります。
上のコードをボタンが押されたときの設定欄に書き込むと、(0,0)の点が追加されます。詳しくはそれ単体の記事を参考にしてください。
evalCommandGetLabels(String cmdString)
evalCommand() と似ていますが、戻り値は、作成されたオブジェクトのラベルをカンマで区切ったリストを含む文字列となります。
var label = ggbApplet.evalCommandGetLabels('(0,0)');
alert(label);
evalCommandCAS(String string)
CASとはComputer algebra system: 数式処理システムの略称です。詳しくはこちら
この関数では文字列を GeoGebra の CAS に渡し、結果を String として返します。
var CAS = ggbApplet.evalCommandCAS('Circle(A,B)');
alert(CAS);
ボタンのスクリプト記述内に上のコードを書き込み、実行すると画像のようにCASによって導かれた方程式がアラート表示されます。
表示させる役割を果たしているのはalert()
というJavaScriptの関数です。
###setUndoPoint()
取り消しポイントを設定します。evalCommandのアクションを元に戻すことができるようにしたい場合に便利です。
GeoGebraソフト単体で動くサンプルが作れませんでした。
「一つ前に戻る」みたいな挙動ができそうです。
オブジェクトの状態を設定する
オブジェクトの状態とは
- ユーザーから操作できないように固定されている
- 見えない
といったことを指しています。
deleteObject(String objName)
ggbApplet.deleteObject('A');
Aというオブジェクトが既に存在している時に消去することができます。
setVisible(String ObjName, boolean)
引数に用いたオブジェクトの見える/見えないを設定できます。
ggbApplet. setVisible('A', false);
setLabelVisible(String ObjName, boolean)
引数のオブジェクトのラベルの見える/見えないを設定できます。
ggbApplet. setLabelVisible('A', false);
setFilling(String objName, double filling)
面積の透明度を設定します。線は設定できませんでした。
ggbApplet. setFilling('t1', 0.7);
オブジェクトの情報を取得する
オブジェクトの座標や透明度といった情報を取得します。
getXcoord(String objName)
指定した名前のオブジェクトの直交座標を返します。オブジェクトが点やベクトルでない場合は 0 を返します。
Y座標、Z座標についても同様なので、割愛します。
var x = ggbApplet.getXcoord('E');
alert(x);
getObjectType(String objName)
与えられたオブジェクトの型を文字列で返します。
var t = ggbApplet.getObjectType('E');
alert(t);//point
pointやcircleなどの種類を返してくれます。これ結構使えそう。
アプリそのものの構成
リセットやユーザの操作を制限するための処理を加えることができます。
reset()
全てのオブジェクトを消去し、はじめの状態にします。
ggbApplet.reset()
undo()
ユーザーが最後に行った動作を取り消しできます。
redo()
ユーザーが最後に行った動作を繰り返し実行できます。