うしブログ

うしブログ

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

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

(要修復)ToggleButton・RollPolygonWithoutSlipping・貯金時計・直感力トレーニング

Geogebraスキルアップ問題集(013解答)

問題

3点(0,0)、(3,0)、(2,2)を頂点にもつ三角形を作成して、どの頂点をドラッグしても、三角形がその重心を中心に回転移動するようにする。

f:id:usiblog:20161129210731g:plain

 

見本

GeoGebraファイル

 

解説

・点A':(0,0)、点B':(3,0)、点C':(2,2)を作成する。

・三角形poly1':Polygon[A', B', C']を作成する。

・重心G:Centroid[poly1']を作成する。

・点A'、点B'、点C'、三角形poly1'を非表示にする。これらのオブジェクトは、回転移動前の三角形の位置情報として利用するため、以降はグラフィックスビューに表示せず、位置を動かさないようにする。

・数値オブジェクトa:Distance[A', G]、数値オブジェクトb:Distance[B', G]、数値オブジェクトc:Distance[C', G]を作成する。

・円Ca:Circle[G, a]、円Cb:Circle[G, b]、円Cc:Circle[G, c]を作成する。

・点A:Point[Ca]、点B:Point[Cb]、点C:Point[Cc]を作成する。これらが、回転移動させる三角形の頂点になる。この時点で各頂点は、どのようにドラッグしても、点Gとの距離が一定に保たれる。

・三角形poly1:Polygon[A, B, C]を作成する。これが、回転移動させる三角形になる。

・以下のコマンドを、それぞれ入力バーに入れて実行する。

SetValue[A,A']

SetValue[B,B']

SetValue[C,C']

これらのコマンドを実行することで、poly1の形・位置が、目的の形に揃う。これ以降、下記のOn Update スクリプトをすべて記述し終わる前に、点A,B,Cをドラッグしないように注意する。

・角度オブジェクトα:Angle[A, G, B]、角度オブジェクトβ:Angle[A, G, C]、角度オブジェクトγ:Angle[B, G, C]を作成する。

・以下のようにOn Update スクリプトを記述する。

点A

SetValue[B,Rotate[A,α,G]]
SetValue[C,Rotate[A,β,G]]

点B

SetValue[A,Rotate[B,-α,G]]
SetValue[C,Rotate[B,γ,G]]

点C

SetValue[A,Rotate[C,-β,G]]
SetValue[B,Rotate[C,-γ,G]]

(以上)