GeoGebra-応用的な使い方
webappのアプレット作成画面では、グラフィックスビューだけでなく、数式ビューやプロパティ画面などを同時に開いていることが多いです。 そのまま保存すると、「生徒向けワークシート」ページやアプレット埋め込みページでも、数式ビューやプロパティ画面が…
設例 数値オブジェクトnを作成する。最小値1、最大値10、増分1に設定して、スライダーを作成する。 ブランクのテキストオブジェクトtext1 = ""を作成する。 いま、nのスライダーを動かす直前のnの値が、n_{previous}であったとする。そして、nのスライダーを…
作成 //str command〔例:'POINTα=(α,0)'〕, str index〔例:'α'〕, int 実行回数function evalSequenceCommand(command,index,time){ index = RegExp(index,'g'); for(var k = 1; k<=time; k++){ ggbApplet.evalCommand(command.replace(index,k)); }} 現在…
点Pと線分fとの位置関係を特定するために有用な測定値と、それをGeoGebraで表現する際の数式の書き方を紹介します。 なお、関連記事として、下記記事もご参照下さい。 AffineRatioとDilateを拡張する - うしブログ 水平方向の位置関係 点Pと線分fとの、水平…
自由な点オブジェクトPを作成する。多角形オブジェクトpoly1を作成する。 点Pの可動領域を、poly1の内部(および辺上)に限定するには、点PのOn Update ハンドラに、以下のスクリプトを記述すれば良い。 If[P!=ClosestPointRegion[poly1,P],SetValue[P,Close…
このアプレットは、点A(0,0)をドラッグして動かした後、ドラッグを解除する(点Aを離す)と、Aが(0,0)に戻るように作られています。 このように、グラフィックスビュー上のオブジェクトのドラッグ解除を監視するには、タッチデバイスならtouchend イベント, …
//図オブジェクトobjNameの隅1,2,4を、式expC1,2,4で表される点に設定する function setImgCorner(objName, expC1,expC2,expC4){ //オブジェクト存在確認 var isexist = ggbApplet.exists(objName); if(isexist){ var xmlText = '<element type=\"image\" label=\"'+objName+'\"><startPoint number=\"0\" exp=\"'+expC1+'\"/></startpoint></element>
スクリプトをクリアしたいときは、引数scriptを、' '(半角スペース1文字)としてください。 ※このスクリプトはβ版です。引数の内容によっては、正常に動作しない可能性があります。 変数scriptにおける各種記号の書き方は、下記記事を参照してください。 「…
パン・ズームをしても消えない残像 – GeoGebra 解説 オブジェクトの設計 自由な点A そのOn Update スクリプトは、下記のとおり。 If[trace==true,SetValue[tracelist,Append[tracelist,CopyFreeObject[A]]]]If[trace==true,SetValue[tracelist,Unique[tracel…
問題 図のように、任意の場所にテキストオブジェクト(名前は「text1」)を作成する。text1は、画面上に固定しないものとする。 いま、text1の左下隅の座標を、正確に、( sqrt(2), sqrt(3) )に揃えたい。 text1をドラッグすれば、見かけ上、おおまかに揃える…
はじめに 過去記事「テキストの高さ、および描画開始点の位置」*1(以下、単に「過去記事」という)では、テキストの高さ(単位はピクセル。heightとおく)が、テキストのxmlデータにおける「sizeM」という数値、および、フォントサイズ(pt)の2変数関数で…
点が領域内にあるか否かを表す真偽値オブジェクトは、 IsInRegion[ <点>, <領域> ] で作成できる。 これに対して、点がパス内にあるか否かを表す真偽値オブジェクトは、どうすれば作成できるだろうか。これを作成するためのコマンドは用意されていないので、…
多角形の名前を poly1 とする。 poly1の頂点のリストは、 {Vertex[poly1]} と表せる。 また、poly1の辺のリストは、 Sequence[Segment[Element[{Vertex[poly1]}, t], Element[{Vertex[poly1]}, If[t ≠ Length[{Vertex[poly1]}], t + 1, 1]]], t, 1, Length[{…
GeoGebraでは、任意の多角形オブジェクト(名前をpoly1とする)における全頂点の集合 {Vertex[poly1]} の凸包は、 ConvexHull[{Vertex[poly1]}] で得ることができる。 しかし、この方法で得られる凸包は、軌跡オブジェクトであり、多角形オブジェクトではな…
現在、GeoGebraには、テキストサイズを取得するメソッドが存在しないので、自作しました。 引数:サイズを取得したいテキストオブジェクトの名前(string) 戻り値:テキストサイズを表す文字列(string) function getTextSize(objName){ // この関数は、Ge…
PerpendicularFoot Tool - GeoGebra 点と直線を選択すると、その点から、その直線に下ろした垂線の足を作成します。
ベクトルtargetが、一次独立なvector1とvector2との一次結合 target = a * vector1 + b * vector2 で表せるとする。 このとき、GeoGebraで、係数a、bの値を、点オブジェクト(a, b)の形で求めるために、入力バーに入力すべき数式を、2つ紹介する。 幾何学的に…
テキストのピクセル数 テキストオブジェクトは、スタイルバーまたはプリファレンスで、サイズを指定できる。選べるサイズは、微小(Extra Small)、特小(Very Small)、小(Small)、中(Medium)、大(Large)、特大(Very Large)、巨大(Extra Large)で…
はじめに アプレット画面をパン・ズームしても、画面上の定位置を保持するような点の作成方法をまとめます。 なお、この方法は、前提として、オリジナルツール「PixelCoords」および「PixelPoint」をGeoGebraにインポートする必要があります。これらのツール…
ダウンロードアイコンを設置したアプレット(見本) インラインフレームによって、アプレットをブログ等のサイトに埋め込む方法で、GeoGebra アプレットをユーザーに見せている場合には、アプレット画面から直接、ggbファイルをダウンロードするオプションは…
※前提として、InternalCorner ツールが必要です。 ①テキスト、基準点、基準位置を作成 CapA = (0,0)capText = Text["<字幕にしたい文字列>", CapA] ②点capPを作成 点capPは、字幕を置きたい場所に応じて、以下のように定義する*1。 中段中央に作成したい場合…
前提となるアプレットの構成 上記アプレットのように、「画面上の固定された位置」に設定(pin to screen)されていないテキストオブジェクトを用意した。名前をtext1とした。 自由な点オブジェクトEを作成し、「プリファレンス」画面の「位置」タブから、te…
通常の場合、テキスト(名前をtext1とする)の枠線を描くオブジェクト PolyLine[Corner[text1, 1], Corner[text1, 2], Corner[text1, 3], Corner[text1, 4], Corner[text1, 1]] は、text1を、「画面上の固定された位置に設定」(pin to screen)すると、表示…
機能 アプレットの最終変更日時を監視して、アプレット下段に表示します。 現在のアプレットが、いつ時点のものかを管理する際に便利だと思われます。 必要に応じて表示/非表示を切り替えることもできます。 導入方法 以下のスクリプトを、アプレットの「プ…
はじめに GeoGebraでは、上図のような「共有」オプションから、アプレットをインラインフレームで埋め込むためのURL(以下単に「URL」と言う場合がある)を取得できる(ブラウザーのデベロッパーツールから取得することも可能である)。下記URLはその一例で…
requestAnimationFrameで時計を動かす実験 ぬるぬる動いた。 グローバルJavaスクリプトの内容 var frame = 0; function ggbOnInit() { updateFunc(); } function updateFunc(){ requestAnimationFrame(updateFunc); // フレーム数をインクリメント frame++; …
アプレット内に作成すべきオブジェクト 数値オブジェクト pageX, pageY, ratioX, ratioY, rectX, rectY ※いずれも値は任意;最大値、最小値は限定しないでおく。 点オブジェクト A A = PixelPoint[(pageX - rectX) / ratioX, (pageY - rectY) / ratioY] オリ…
ブックマークレットによってJavaScriptを実行する方法(下記リンク先参照)により、「生徒向けワークシート」のアプレットに使われているオブジェクトの概要を取得する方法。 ブラウザのアドレスバーからJavaScriptのコードを実行する方法 (JavaScript疑似プ…
はじめに GeoGebraアプレットの描画を行っているcanvas要素 document.getElementsByTagName('canvas')[0] にイベントリスナーを追加した場合における、mouseevent.pageXおよびmouseevent.pageYの値は、当該イベント発生時のマウスの、グラフィックスビューの…
はじめに 本記事は、過去記事「webページに埋め込んだGeoGebraアプレットにおける内部構造の閲覧制限について」で得られた知見を利用して、アプレットにパスワードをかける方法、および、その応用として、「生徒向けワークシート」で表示した場合に限り、パ…