H 作図手順の再生

Cinderellaには,GeoGebraのような作図手順ビューはありません。

作図手順を見たいときには,表示メニューから「式による表示」を選びます。

別ウィンドウが開いて,幾何要素のリストが表示されます。

この中には作図した順序で要素がリストアップされているので,おおよその手順を知ることができます。

次の図は,内接円を作図したものですが,補助線(内心から辺に下した垂線)は非表示にしています。そのことも左側を見ていけば非表示になっている要素がわかります。

作図手順を説明したい場合は,Cindyscriptを用いて,それぞれの要素を順に表示していくようにすることができます。そんな例を作りましょう。

正五角形の作図手順

まず,作図をしておきます。

表示メニューから「式による表示」を選び,作図手順にしたがって少しずつ表示するようなスクリプトを書きます。

手順を進めるにはボタンを作ってそれをクリックすることにします。

「文字を加える」ツールで「手順を進める」という文字を描き,インスペクタで塗り色を緑にして,「要素の情報」で「ボタンとして使う」「クリックボタン」にチェックを入れ,スクリプトの欄に

Step=Step+1

と書きます。

なお,背景はインスペクタで白にしてあります。

Cindyscriptエディタを開き,まず,Initializationスロットに次のスクリプトを書きます。

allobj=allelements()--[Text0,A,B,a];

forall(allobj,#.visible=false);

Step=0;

1行目,すべての幾何要素(オブジェクト)からボタンのText0だけを除きます。

all elements() ですべての幾何要素のリストができます。

2行目 forall は allobj のすべての要素に対して #.visible=false を実行します。#が要素です。

3行目,手順のステップを表す変数 Step を0に初期化します。

Initialization スロットに書いたこれらのスクリプトは,最初に1度だけ実行されます。

次に,「式による表示」を選び,上から少しずつ表示するスクリプトをDrawスロットに書きます。話すのでなくWebに載せるような場合は,説明文も drawtext() で表示します。

少し長いですが,同じような内容なので,コピーしながら書けばたいしたことはありません。少し書いたら手順を確かめながら進めるとよいでしょう。

drawtext([-5,10],"正五角形の作図手順",size->26);

if(Step>=1,

C.visible=true;

b.visible=true;

);

if(Step>=2,

C0.visible=true;

D.visible=true;

E.visible=true;

);

if(Step>=3,

c.visible=true;

C1.visible=true;

F.visible=true;

G.visible=true;

);

if(Step>=4,

C2.visible=true;

H.visible=true;

K.visible=true;

);

if(Step>=5,

C1.visible=false;

C2.visible=false;

);

if(Step>=6,

C3.visible=true;

C4.visible=true;

L.visible=true;

);

if(Step>=7,

C5.visible=true;

M.visible=true;

);

if(Step>=8,

d.visible=true;

e.visible=true;

f.visible=true;

g.visible=true;

);

textsize(20);

if(Step==0,drawtext([8,4],"はじめに線分ABがあります。"));

if(Step==1,drawtext([8,4],"ABの垂直二等分線を引きます。"));

if(Step==2,

drawtext([8,4],"ABの長さをコンパスでとり,Cを中心に円を描き");

drawtext([8,3],"ABの二等分線との交点をとります。");

);

if(Step==3,

drawtext([8,4],"AとDを結ぶ直線を引き,ABの長さの半分を");

drawtext([8,3],"コンパスでとって,Dを中心に円を描きます。");

drawtext([8,2],"直線ADとこの円の交点をとります。(G)");

);

if(Step==4,

drawtext([8,4],"Aを中心に半径AGの円を描きます。");

drawtext([8,3],"ABの二等分線との交点をとります。(K)");

);

if(Step==5,drawtext([8,4],"補助線を非表示にしておきます。"));

if(Step==6,

drawtext([8,4],"ABの長さをコンパスでとり,A,Kをそれぞれ");

drawtext([8,3],"中心として円を描き,交点をとります。(L)");

);

if(Step==7,

drawtext([8,4],"同じ半径でBを中心として円を描き");

drawtext([8,3],"Kを中心とする円の交点をとります。(M)");

);

if(Step==8,drawtext([8,3],"B,M,K,L,Aと結んで正五角形ができます。"));

これでできあがり,Shift+Enter でスクリプトを実行します。

でき上がったものはこちらにあります。(CindyJSで書き出しました)