見出し画像

Cinderella はじめの一歩

Cinderella とは

 Cinderella は,動的幾何ソフトにプログラミング言語がついたものです。動的幾何ソフトとしては,Geogebraのように,作図ツールを使って図形を描き,描いた点などをドラッグして動かすことができます。プログラミング言語としては,CindyScript という関数型プログラミング言語で,作図ツールで描いた点を制御できるほか,複素数平面を扱ったりすることができます。

Cinderella の入手とインストール


 次のサイトからダウンロードします。無料です。

Windowsの場合は,ダブルクリックすればインストール手順になりますが,うまくいかない場合は右クリックで管理者権限で開いてください。
Macの場合は,解凍されたファイルをそのままアプリケーションフォルダに入れるだけです。なお,アプリケーションフォルダでなく,どこにおいても起動ができます。

起動画面

Cinderellaを起動すると次のような画面が出ます。WindowsでもMacでもほとんど同じです。違いはファイルメニューなどの場所です。WindowsではCinderellaのウィンドウの上部にありますが,Macではディスプレイの画面の上部にあります。

Cinderella 起動画面

これを「描画面」と呼んでおきます。画面上下にアイコンが並んでいます。これらを「ツールボタン」と呼びます。始めは上から2段目の左端のツールボタンが濃い灰色になっていて、その下のガイドラインに「マウスをドラッグして自由要素を動かす」と書かれています。これが、Cinderellaの標準状態で、画面に描かれた図形要素(まだ描かれていませんが)を動かしたり選択したりできます。要素を選択するときも「動かすモード」と言うことがあります。
ツールボタンにマウスカーソルを持ってくると、そのツールの機能が表示されます。ただし、表示されるまでは少し時間がかかります。

ツールボタンの機能説明

また、ツールボタンをクリックすると、ガイドラインに操作手順の案内が表示されます。次の図は,「点を加える」ツールをクリックしたときのものです。「マウスのクリックにより点を追加する」と表示されています。

ツールボタンの操作手順表示

他のボタンもクリックして機能や操作手順を表示してみてください。

ツールボタンはこれだけではありません。「設定メニュー」から「上のツールバーのカスタマイズ」を選び、「すべて表示」にすると、次のようになります。

設定メニュー
すべてのツールボタン

作図上の約束事

 作図ソフトは、Cabri II Plus や Geogebra などいろいろなものがあります。ツールを選んで描画するというスタイルは同じですが、作図のための操作方法などが少しずつ違っています。以下に、Cinderellaでの操作方法を示します。

2点間はドラッグ

 2点を結ぶ直線や線分を引いたり、円の中心と半径を決めるときなど、2点を指定する場合がよくあります。Cinderellaでは「マウスボタンを押す→ドラッグ→マウスボタンを離す」という手順です。 Cabri II Plus や Geogebraでは「1点目でマウスをクリックする→2点目でマウスをクリックする」という手順なので,Geogebraを使っている人は少し戸惑うかもしれません。

作図におけるマウスの操作

「直線を加える」ツールボタンをクリックして,上の動作をやってみましょう。

スナップ

 すでに描かれている線上に点を乗せたい場合、Cinderellaには「スナップ」という機能があります。たとえば、円と直線の交点を取る場合、マウスカーソルをその交点に持ってくるわけですが、このとき、交点の近くに来るとマウスカーソルが交点にすっと吸い寄せられ、円と直線が光ったように(ハイライト)なります。ここでマウスボタンを離せば、交点上にびったり点が取れます。これを「スナップ」といいます。

スナップ

「半径つき円を加える」ツールボタンを選択して円を描き,「点を加える」ツールボタンを選択して上の動作をやってみましょう。交点の近くでクリックして,そのまま交点にドラッグすると上のようになります。
 また、下のツールバーにある磁石アイコンの「グリッドにスナップする」 をクリックすると座標軸と方眼が表示されますが、この状態でマウスを格子点近くに持ってくると、ぴたっと格子点にスナップされます。

格子点へのスナップ

格子点にスナップしないようにするには、再度磁石アイコンをクリックして,スナップモードを解除します。このとき、座標軸と方眼は表示されたままです。

インシデント

 点を線上にスナップすると、その点はスナップした線上だけを動かすことができるようになります。このような「点が曲線上にある」ことや「直線が2点上にある」ことを「インシデント」といいます。一度曲線上にインシデントされた点を、インシデントを解除して自由に動かせるようにするためには、「点の取り付け/取り外し」ツール を用います。これにより、インシデントを解除したり、インシデントにしたりすることができます。ツールボタンを押したら、目的の点をドラッグして線上に乗せたり、線上からはずしたりします。

点の取り付け・取り外し

作図例:三平方の定理

 作図例として,三平方の定理の図を描いてみましょう。三平方の定理は、「直角三角形において、直角をはさむ2辺の長さの平方の和は、斜辺の長さの平方に等しい」というものです。中学校3年生で学ぶ有名な定理ですね。では、直角三角形でなかったらどうなるでしょうか。そんなことも含めて、「動的幾何ソフト」Cinderellaの面白さも見ていただきましょう。したがって,最初から直角三角形にするのではなく,任意の三角形の各辺上に正方形を描くことから始めます。もし,何かの図を作成したあとならば「すべてを選択する」ツールをクリックし(すべての幾何要素:点や線がハイライトします)「選択した要素を消去する」(消しゴムアイコン)ツールをクリックすればすべて消去できます。

 まず、「線分を加える」ツール で△ABCを描きます。直角三角形でなくてかまいません。「線分を加える」ツールを選択し,適当な2点をドラッグして線分ABを描きます。続いて,点Bからドラッグして線分BCを描き,最後にCからAにドラッグします。

△ABCの作図

次に、辺ABを1辺とする正方形をABの上に立てます。
「垂線を描く」ツールを選択し,線分AB上の適当なところから点Aまでドラッグします。ドラッグしている間垂線が引かれますので,点Aでマウスボタンを離せば点Aにおける線分ABの垂線が引けます。

線分ABの適当なところからドラッグしていく

同様にして,点Bにおける垂線を引きます。
次に,線分ABと同じ長さの点をそれぞれの垂線上に取ります。定規とコンパスで作図するならコンパスを使いますね。点Aを中心に半径ABの円を描くわけです。
同じように「半径つき円を加える」ツールで円を描きます。円を描くツールは3つあるので「半径つき円を加える」ツールをえらんでください。点AからBまでドラッグすると円が描けます。

円を描いた

交点をとります。「点を加える」ツールで,円と直線の交点の近くでマウスボタンを押し,交点までドラッグしていくとスナップ機能により交点に吸い付けられるように点を取ることができます。このとき,円と直線の両方がハイライトしたら,そこでマウスボタンを離します。

円と直線の交点をとる

次に正方形の4つ目の点ですが,まず「垂線を描く」ツールで点Dから垂線を引いておきます。今度は「2つの曲線の交点を求める」ツールを使いましょう。直線ADと,今作図した垂線を順にクリックして選択すると交点ができます。

これで,辺AB辺の上に立つ正方形が作図できました。このあと,「インスペクタ」を使って補助線の円を非表示にし,直線を線分に変えます。

ファイルメニューから「インスペクタ」を開きます。インスペクタは、キーボードで開くこともできます。MacであればCommand+i 、Windowsであれば Ctrl+i です。このインスペクタで、図形要素の設定を変えることができます。動かすモードにして、(「要素を動かす」ツール をクリック)補助線の円をクリックします。インスペクタには、いま選択した円についての設定が出ています。この中の「表示する」のチェックをクリックして外します。

インスペクタで円を非表示にする

いったん円が白くなりますが、このあと他の操作をすると円は非表示になります。
次に、垂線を線分にします。垂線をクリックして、インスペクタでこの設定を変えます。インスペクタの「線の属性」を見てください。「端点の処理」があります。今、左側の状態、すなわち2点を結ぶ直線の状態です。その右端に線分のアイコンがありマウスカーソルを持っていくと「直線を終点にクリップする」と表示されます。これをクリックすると直線が線分に変わります。

端点の処理
直線を線分にクリップ

同様にしてもう一つの垂線も線分にしてでき上がりです。

辺上に立つ正方形

同様にして,辺BC,CA上に立つ正方形も作図しましょう。
最後に,線分のラベルを非表示にします。「すべての直線を選択する」ツールをクリックして すべての線分を選び、インスペクタで「ラベルをつける」のチェックをはずします。

ラベルを非表示に

これで任意の三角形について,各辺上の正方形が作図できました。
 できた3つの正方形の面積を表示します。そのためには、正方形を「多角形」として登録する必要があります。「多角形」ツール を選び、正方形AEDBの4つの頂点を反時計回りにクリックします。ドラッグではなく点をクリックしていきます。このとき、多角形のガイドが出るのでわかりやすいでしょう。一周してAに戻り、Aをクリックすると確定で色が塗られます。注意することは、反時計回りに回るということです。時計回りに回ると面積が負になります。次の図はA,D,E,Bの順にんクリックしてきたところです。

最後にAをクリックすると一周したので多角形として登録され,色が塗られます。

同様にしてあとの2つも多角形として登録します。
登録できたら面積を表示します。「面積を測る」ツールを選択し,正方形の中央付近でクリックすると面積が表示されます。

面積を表示

今,|Poly0|=29.61 のように表示されているでしょう。値は図の大きさによって異なります。これを、単に面積の数字だけにします。「文字を追加する」ツール (ABCのアイコン)をクリックし、表示されている文字列をクリックすると、編集のウィンドウが開きます。

この中を編集します。右辺の「@#"A0"」だけを残し,左の方を消します。OKボタンを押すと数字だけの表示になります。

同様にしてあとの2つの正方形の面積も表示しましょう。

さて、作図はできました。三平方の定理は△ABCが直角三角形の場合の定理なので、△ABCを直角三角形にしましょう。最初から垂線を立てて直角三角形としなかったのは、直角三角形以外の場合も考えるためです。画面下のツールバーから磁石アイコンの「グリッドにスナップする」ツール を選びます。座標軸と方眼が表示されるので、△ABCが直角三角形になるように、各頂点を格子点にもっていきます。値も整数となり、わかりやすくなりました。

三平方の定理

点Aの位置を変えて,角Bが鋭角や鈍角のときの3つの正方形の面積の関係を見ることができます。高校であれば,余弦定理の問題になります。

Cindyscript を使う

 CindyScript は Cinderella 上で動かすことのできるプログラム環境です。ライブラリのimport をしなくても複素数やベクトル、行列を簡単に扱えるほか、リスト処理や再帰的プログラムにより図形以外の数学的問題についてのプログラムも簡単にできます。もっとも大きな特徴は,作図した幾何要素(点や線)をプログラムで制御できることでしょう。例として,三平方の定理の図を,Cindyscript を援用して描いてみましょう。
 作図ツールで描いたときは,垂線を描くツールや補助円を描きましたが,「垂線を立てる」を,複素数を利用して実行するのです。
 まず,元の三角形と,各辺の上に立つ四角形を「線分を加える」ツールで適当に作図します。正方形でなくて構いません。

「スクリプト」メニューから Cindyscript を選びますと,スクリプトエディタのウィンドウが開きます。なお,描画面も見られるといいので,全画面表示にせずにマルチウィンドウにするとよいでしょう。
 左側の並びを「スロット」,右側の上段をメインウィンドウ,下段をコンソールといいます。スロットが出ていない場合は,左右の境界線をドラッグすると現れます。

スクリプトエディタ

「スロット」は、スクリプトの実行タイミングによって分類するものです。たとえば Mouse Click スロットはマウスをクリックしたときに実行されます。Drawスロットに書いたスクリプトは、描画面で要素を動かすなどなにか変化があるとそのたびに実行されます。「メインウィンドウ」にスクリプトを書きます。「コンソール」には、結果やエラーメッセージが表示されます。
主に使うのは「Draw」スロットです。左側のフォルダアイコンから「Draw」をクリックすると、メインウィンドウに「クリックしてスクリプトを書き始めてください」と表示されますので、メインウィンドウで1回クリックします。すると表示が消え、スクリプトが書けるようになります。
 では,辺AB上に適当に描いた四角形を正方形にしましょう。辺ADは,点Aを中心として辺ABを時計回りに90°回転した辺になればよいのです。複素数平面で考えれば,「点Aが原点に来るようにABを平行移動し,移動した点Bを原点回りに-90°回転し,平行移動して戻す」という3ステップを踏むことになります。
点Aの直交座標は A.xy で得られます。点Aを表す複素数は,complex() という関数を使うと得られます。複素数を直交座標にするには gauss() という関数を使います。そこで,次のようなスクリプトを書きます。-90°回転するには,複素数 $${-i}$$ を掛けますが,複素数 $${i}$$ は,そのまま i で表せます。半角小文字英数字で書きます。

z1 = complex(A.xy);
z2 = complex(B.xy);
z3 = z1+(-i)*(z2-z1);
D.xy = gauss(z3);

90度回転のスクリプト

書けたならば,Shiftキーを押しながらEnterキーを押すとスクリプトが実行されます。

同様にして,点Eの位置も決めましょう。今度は点Aを,Bを中心に反時計回りに回転すればよいでしょう。

同様にして,辺BC,CA上の四角形を正方形にすれば完成です。

あとは作図ツールを使ったときと同様にして面積を表示し,座標平面上に置けばよいでしょう。Drawスロットに書いたスクリプトは画面上でなにかが起こる(点を動かすなど)たびに実行されるので,3つの四角形はつねに正方形になります。

マニュアルを見る

Cinderella のマニュアルは,ヘルプメニューの「マニュアル」を開きます。Webブラウザが開いて内蔵されたマニュアルを見ることができます。


Cinderella の入門のために書籍を作りました。以前は iBooks で販売(有料または無料)していましたが,このほど販売をやめ,PDFにしてWeb上で公開することとしました。

・このページに書いた内容に加え,CindyLabの紹介など,2014年に作成した「シンデレラ入門」の改訂版
  
・その次の段階としてより詳しく述べた「Cinderella Cookbook」

・CindyScript の入門書「はじめようCindyScript


← Cinderella 総合目次に戻る