Geogebraスキルアップ問題集(013解答)
問題
3点(0,0)、(3,0)、(2,2)を頂点にもつ三角形を作成して、どの頂点をドラッグしても、三角形がその重心を中心に回転移動するようにする。
見本
解説
・点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]]
(以上)