1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GeoGebra】JavaScriptで実行する便利な関数

Last updated at Posted at 2021-02-07

はじめに

こちらのリファレンスの一部を訳したものです。これらの関数の使い道としては

  • ボタンが押された時に特別な処理を実行させるアプリ
  • こんな感じの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の関数です。
スクリーンショット 2021-02-07 19.12.50.jpg

###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()

ユーザーが最後に行った動作を繰り返し実行できます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?