うしブログ

うしブログ

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

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

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

 

タッチデバイスに対応しました。

端末の画面サイズの関係で、アプレットが縮小表示された場合にも、タップ位置がズレないようにしました。

 

設定方法

①数値オブジェクトr_x, r_yを作成する。値はあとから変えるので、今は何でもよい。両方とも、「スライダー」タブの「最小」「最大」は空白にしておく。

 

②以下の数式を入力バーにコピペすることにより、点Pを作成する。

P = Corner[4] + (r_x Distance[Corner[1], Corner[2]], -r_y Distance[Corner[1], Corner[2]])

 

③グローバルJavaスクリプトに、下記スクリプトをコピペする。

function MouseClick(event){ event = event || window.event; ggbApplet.setValue("r_x",event.pageX/window.innerWidth); ggbApplet.setValue("r_y",event.pageY/window.innerWidth);}
function ggbOnInit() { var tcl = window.ontouchstart===null?"touchstart":"click"; document.getElementsByClassName("GeoGebraFrame")[0].addEventListener(tcl,MouseClick);}

 以上です。

 

動作条件

動作するのは、作成したアプレットをGeoGebraのストレージに保存して、かつ、そのアプレットをブラウザ上で表示した場合のみです。なお、ブラウザ上であっても、編集画面では動作しません。

また、「https://www.geogebra.org/m/***」(***はアプレットのID)のページでは、クリック位置と点Pの位置がずれます。はてなブログに埋め込むと、正常に動作します。

→ https://www.geogebra.org/m/s8uFW4g7

https://www.geogebra.org/material/iframe/id/***」で表示しても、正常に動作します。ただし、ウインドウの縦横比によっては、クリック位置と点Pの位置がずれることがあります。

→ https://www.geogebra.org/material/iframe/id/ARBqTTKY/

 

参考にしたアプレット

www.geogebra.org