読者です 読者をやめる 読者になる 読者になる

うしブログ

Geogebraの使い方、応用など

GeoGebra webappで「パスと領域パラメータ」を不使用にする方法

本記事の概要

この記事は、デスクトップ版GeoGebraにしかない機能である「パスと領域パラメータ」を不使用にする機能を、webapp版GeoGebraにおいて、GeoGebra スクリプトを用いる方法により、手動で実現する方法を紹介するものです。

 

「パスと領域パラメータ」とは

デスクトップ版GeoGebraでは、下記の画像のように、プリファレンス - 上級(Preferences - Advanced)オプションとして、「パスと領域パラメータを使用」(Use Path and Region Parameters)ラジオボタンが用意されています。

f:id:usiblog:20170308222430p:plain

「パスと領域パラメータを使用」ラジオボタンについては、公式Wikiのリリースノート(バージョン4.2)に解説があるので、下記に引用します*1

Use Path and Region Parameters: "On" makes Points on objects keep their Path Parameter when the parent object is moved (the behaviour in GeoGebra 4), "Off" makes them stay as close as possible to their old position.

つまり、「パスと領域パラメータを使用」ラジオボタンは、あるオブジェクトを動かした場合の、そのオブジェクト上の点の挙動を指定するオプションです。以下、ラジオボタンがOnの場合とOffの場合の挙動を、具体的に説明します。

Onの場合

「パスと領域パラメータを使用」ラジオボタンがOnの場合には、オブジェクト上の点は、オブジェクトとの位置関係を維持したまま、オブジェクトと完全に連動して動きます。

f:id:usiblog:20170308153820g:plain

poly1:Polygon[A,B,C]に対して、

D:PointIn[poly1]

を定義する。

「パスと領域パラメータを使用」ラジオボタンがOnの場合には、poly1を移動したとき、上図のように点Dがpoly1に連動して動く。 

Offの場合

「パスと領域パラメータを使用」ラジオボタンがOffの場合には、オブジェクト上の点は、「可能な限り」元の位置を維持するようになります

「可能な限り」というのは、いくら元の位置を維持するといっても、点が「オブジェクト上の点」として定義されている以上、この点は、オブジェクトの境界を超えることができないため、オブジェクトの境界にぶつかった場合には、定義を守るべく移動する、ということです。

f:id:usiblog:20170308154649g:plain

poly1:Polygon[A,B,C]に対して、

D:PointIn[poly1]

を定義する。

「パスと領域パラメータを使用」ラジオボタンがOffの場合には、poly1を移動したとき、上図のように点Dが元の位置を可能な限り維持するようになる。

 

webappでラジオボタンoffを実現する方法

「パスと領域パラメータを使用」ラジオボタンは、デスクトップ版GeoGebraのみに実装されている機能であり、webapp版には存在しません。常にラジオボタンOn(完全に連動)の挙動となります。

そこで、webapp版でも、ラジオボタンOff(可能な限り元の位置を維持)の挙動を実現する方法を紹介します。

手順

仮に、オブジェクトの名前をOとして、オブジェクトO上の点Point[O]またはPointIn[O]の名前をPとします。

①自由な点オブジェクトAを作成します。

②点OのOn Update ハンドラに、以下のGeoGebra スクリプトを記述します。

UpdateConstruction[ ]
SetValue[P, A]

③点PのOn Update ハンドラに、以下のGeoGebra スクリプトを記述します。

SetValue[A, P]

④点Aを非表示にします。

これで完了です。

f:id:usiblog:20170308154649g:plain

poly1:Polygon[A,B,C]に対して、

D:PointIn[poly1]

を定義する。

自由な点Eを作成する。

poly1のOn Update ハンドラに、以下のGeoGebra スクリプトを記述する。

UpdateConstruction[ ]
SetValue[D,E]

点DのOn Update ハンドラに、以下のGeoGebra スクリプトを記述する。

SetValue[E,D]

点Eを非表示にする。

以上の操作により、poly1を移動した場合に、点Dが可能な限り元の位置を維持するようになるため、「パスと領域パラメータを使用」ラジオボタンをOffにした場合と同じ挙動を実現することができた。

 

バージョン情報

この記事は、以下のバージョンのGeoGebraに依拠しています。

Version: 5.0.338.0-webapp (06 March 2017)