うしブログ

うしブログ

趣味で運営する、GeoGebraの専門ブログ。

(作業メモ)StartPoint要検証(2行の場合;テキスト変更時未定義問題)

GeoGebra-応用的な使い方

点がパス上にあるか否かを表す真偽値オブジェクト

点が領域内にあるか否かを表す真偽値オブジェクトは、 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」

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にインポートする必要があります。これらのツール…

Webサイトに埋め込んだGeoGebraアプレットの画面上に、ダウンロードアイコンを設置する方法

ダウンロードアイコンを設置したアプレット(見本) インラインフレームによって、アプレットをブログ等のサイトに埋め込む方法で、GeoGebra アプレットをユーザーに見せている場合には、アプレット画面から直接、ggbファイルをダウンロードするオプションは…

字幕をつける

※前提として、InternalCorner ツールが必要です。 ①テキスト、基準点、基準位置を作成 CapA = (0,0)capText = Text["<字幕にしたい文字列>", CapA] ②点capPを作成 点capPは、字幕を置きたい場所に応じて、以下のように定義する*1。 中段中央に作成したい場合…

テキストの描画開始点を中心としたズーム実行による、Cornerコマンドの描画のずれについて

前提となるアプレットの構成 上記アプレットのように、「画面上の固定された位置」に設定(pin to screen)されていないテキストオブジェクトを用意した。名前をtext1とした。 自由な点オブジェクトEを作成し、「プリファレンス」画面の「位置」タブから、te…

pin to screen されたテキストに枠線を施す小技

通常の場合、テキスト(名前をtext1とする)の枠線を描くオブジェクト PolyLine[Corner[text1, 1], Corner[text1, 2], Corner[text1, 3], Corner[text1, 4], Corner[text1, 1]] は、text1を、「画面上の固定された位置に設定」(pin to screen)すると、表示…

アプレットの最終変更日時を監視する

機能 アプレットの最終変更日時を監視して、アプレット下段に表示します。 現在のアプレットが、いつ時点のものかを管理する際に便利だと思われます。 必要に応じて表示/非表示を切り替えることもできます。 導入方法 以下のスクリプトを、アプレットの「プ…

インラインフレーム用URLにおける各値の意味について

はじめに GeoGebraでは、上図のような「共有」オプションから、アプレットをインラインフレームで埋め込むためのURL(以下単に「URL」と言う場合がある)を取得できる(ブラウザーのデベロッパーツールから取得することも可能である)。下記URLはその一例で…

(On Update スクリプトではなく)JavaScriptのrequestAnimationFrameでオブジェクトを動かす実験

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疑似プ…

pageX / Yの値とマウス位置

はじめに GeoGebraアプレットの描画を行っているcanvas要素 document.getElementsByTagName('canvas')[0] にイベントリスナーを追加した場合における、mouseevent.pageXおよびmouseevent.pageYの値は、当該イベント発生時のマウスの、グラフィックスビューの…

アプレットにパスワードをかける方法

はじめに 本記事は、過去記事「webページに埋め込んだGeoGebraアプレットにおける内部構造の閲覧制限について」で得られた知見を利用して、アプレットにパスワードをかける方法、および、その応用として、「生徒向けワークシート」で表示した場合に限り、パ…

GeoGebraと測定系プロパティ

はじめに 本記事では、GeoGebraの「グローバルJavaスクリプト」において、マウス/タッチイベント発生位置を取得する各種プロパティを参照した場合に、得られる値についてまとめる。あわせて、要素のサイズを取得するブロパティについても確認する。 (前提…

グラフィックスビュー1におけるCornerコマンドについて

キーワード GeoGebra, Corner, ピクセル数 目次 はじめに Corner[5]と「高度な設定」におけるピクセル数との関係 モデルアプレットの作成 アップロード画面におけるピクセル数 検証 「位置」オプションによる設定 手動による設定 検証結果 Corner[<1,2,3,4>]…

webページに埋め込んだGeoGebraアプレットにおける内部構造の閲覧制限について

1 はじめに アプレットの埋め込みとダウンロード アプレットの内部構造の閲覧 本記事の目的 バージョン情報 2 モデルの紹介 3 基本的発想 ユーザーにパスワードを入力させる方法 パスワードが正しくない場合の処理 パスワードの照合 埋め込まれている場合…

リストの全要素を単一のオブジェクトとして生成する方法

モデル課題 (1)4点A(1,1),B(8,1),C(8,8),D(1,8)に対して、四角形ABCDの内部および周に含まれるすべての格子点を、リストオブジェクトとして作成しなさい。 (2)(1)で作成したリストオブジェクトの1番目の要素である点を、単一の点オブジェクトとして…

すべてのオブジェクトにOn Click スクリプトを一括適用する方法

例1 On Click スクリプトの一括設定 - GeoGebra 左上の赤い長方形をクリックしてから、点や三角形をクリックすると、クリックしたオブジェクトが赤くなります。 左上の青い長方形をクリックしてから、点や三角形をクリックすると、クリックしたオブジェクト…

RGB値を1つのパラメータで表し、オブジェクトの色をカラフルに変化させる方法

ここでは、1つのパラメータを使って、オブジェクトの色をカラフルに変化させるための、「動的な色」オプションの設定方法を紹介します。

「直線によって分割された領域のうち、点Pを含む方」の記述法

上記アプレットの赤い領域は、直線fによって平面を2つに分割することによって作られた領域(半平面)のうち、点Pを含む方を表しています。 この領域は、GeoGebraでは、 If[IsInRegion[P, LeftSide[f] < RightSide[f]] ≟ true, LeftSide[f] < RightSide[f], L…

クリック・タップ位置を取得するために、グローバルJavaスクリプトに記述するスクリプト

数値オブジェクトr_x, r_yをあらかじめ作成しておき、以下のスクリプトを「グローバルJavaスクリプト」に記述すると、アプレットをクリック・タップした位置を表す座標を、r_x, r_yに代入します。 function MouseClick(event) { event = event || window.eve…

操作位置取得_完全版

GeoGebraで、PCでのクリック、ドラッグ操作;タッチデバイスでのタップ、スワイプ操作が行われた位置を取得します。 ダウンロードは下記URLから 操作位置取得_完全版 - GeoGebra 作り方 ・数値オブジェクトr_x, r_yを作成する。さしあたり、値は何でも良い…

クリック・ドラッグ・タップ・スワイプの全動作の位置を取得する

勉強が進み、徐々に機能が統合できてきました。 以下のアプレットは、PCでクリックしてもドラッグしても、またタッチデバイスでタップしてもスワイプしても、その動作が起こっている位置に点Bが移動します。

(タッチデバイス対応)GeoGebraで、タップ位置/クリック位置の座標を取得する

タッチデバイスに対応しました。 端末の画面サイズの関係で、アプレットが縮小表示された場合にも、タップ位置がズレないようにしました。 設定方法 ①数値オブジェクトr_x, r_yを作成する。値はあとから変えるので、今は何でもよい。両方とも、「スライダー…