(タッチデバイス対応)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/