2004 年度 卒業論文
初等幾何学教育のための直感的作図 ソフトウェア HiZy
提出日 2005 年 2 月 2 日
指導 : 筧捷彦教授
早稲田大学 理工学部 情報学科 学籍番号 :1G01P099-1
水越拓也
目 次
第1章 はじめに 1
第2章 基本的事項 3
2.1 使用言語 . . . . 3
2.2 従来の作図ソフトウェアの手法 . . . . 3
2.2.1 GC. . . . 3
2.2.2 Cinderella . . . . 4
第3章 HiZyの開発プロセス 6 3.1 作図ソフトウェアに要求される機能 . . . . 6
3.2 HiZyのユーザインタフェース . . . . 6
3.3 HiZyの開発状況 . . . . 7
第4章 HiZyの作図機能の実装 8 4.1 作図するための道具 . . . . 8
4.2 点を描くための描画ツール . . . . 11
4.2.1 点を描く描画ツールとしてのピン . . . . 11
4.2.2 ピンの使用方法 . . . . 11
4.3 円を描くための描画ツール . . . . 13
4.3.1 円を描く文房具としてのコンパス . . . . 13
4.3.2 コンパス全体の移動 . . . . 14
4.3.3 コンパスの腕の変化 . . . . 15
4.3.4 円(弧)の描画 . . . . 16
第5章 描かれた図を動かす機能の仕様 18 5.1 より高度な作図学習のための制約条件. . . . 18
5.2 点の制約条件 . . . . 19
5.2.1 自由移動. . . . 19
5.2.2 線上移動・円周上移動 . . . . 19
5.2.3 移動不可. . . . 19
5.3 線の制約条件 . . . . 20
5.3.1 自由移動. . . . 20
5.3.2 傾き自由変化 . . . . 21
5.3.3 移動不可. . . . 22
5.4 円の制約条件 . . . . 22
5.4.1 円の中心の点 . . . . 22
5.4.2 半径自由変化 . . . . 23
5.4.3 円周が一点を必ず通過する . . . . 24
5.4.4 円周が二点を必ず通過する . . . . 24
5.4.5 円周が三点を必ず通過する . . . . 25
第6章 完成したソフトウェアの評価と分析 27 6.1 アンケート結果の分析 . . . . 27
6.1.1 総合的な評価 . . . . 27
6.1.2 描画ツールに関する評価 . . . . 28
6.2 これからの改良点 . . . . 29
第7章 おわりに 30
謝辞 31
参考文献 32
付録 33
第 1 章 はじめに
近年,情報技術は,基本的な教養科目のひとつとなった。日常生活の大 部分にコンピュータが,見られるようになってきている。いまでは,コン ピュータを学習するための講座や雑誌も数多く存在している。コンピュー タを使う技術は社会生活において,できて当然とされる技術になってきて いる。コンピュータ使用技術育成に関する商品は,これからも需要を伸ば す産業だということになる。
現在,一般的に広く普及しているのはマウス操作によって,様々な作業 を行うインタフェースである。初心者は,マウスを自由自在に使うことか ら学習する。そこで,マウスの基本的な操作の学習ができるソフトウェア 開発を卒業論文のテーマとすることにした。
学習は、年少のときから続けて行うことで、効果が増す。ソフトウェア の対象を年少者とすることにした。年少者は、コンピュータに対する観念 が固定化されておらず、また様々なことを学ぶ世代でもあるからである。
開発するソフトウェアに対しては,次の二つの項目を要件とした。
• ソフトウェアの使用方法が単純であること
• ソフトウェアを使っていて楽しめること
この使用方法が単純であるという条件を設けたのは,コンピュータ初心 者を対象だからである。コンピュータ初心者であるほどに,説明書を読ま ないもしくは読んでもわからないということが多い。説明書がなくてもよ いほどに,操作が単純でわかりやすいということが,必要となる。
ソフトウェアを使っていて楽しめるということは,学習対象に興味を持 たせることが重要であると考えたからである。この二つの要件の実現対象 とするのに適切なテーマを探した。
結果,年少の学生向きの学習教科として,算数における初等幾何学が条 件を満たす一つであると考えた。初等幾何学をコンピュータ上で学習でき るソフトウェアを開発することとした。
初等幾何学とは,定規,コンパス,鉛筆のみを用いて,作図できる幾何 を扱ったものである。小学校あるいは中学校においては,紙面に文房具を 用いて実際に作図を行い学習する。コンピュータ上で,使用者にストレス
を感じさせることなく,作図の学習を再現することが開発するソフトウェ アの目的である。
これは,コンピュータの扱いに熟練していなくとも,本来の文房具の扱 いをわかってさえいれば,直感的にソフトウェアを使用できるようにする ためである。
楽しめるという要素は,自由に図を描くことができるということで満た せると考えた。自分で何かを作り出すという行為が,特に低年齢層にとっ て,楽しいものだと考えたからである。
本論文において,開発した作図ソフトウェアの呼称を作図ソフトウェア HiZyとした。命名の由来は,HiZyの付録のアンケートに伴って募集した 命名案の一つである。
本論文の構成は全7章からなる。第1章は,研究の背景についてであ る。第2章は,開発に使用した言語[2.1],従来の作図ソフトの仕組み[2.2 である。第3章は,開発した作図ソフトウェアHiZyの開発プロセス[3]で ある。第4章は,具体的な図の描画方法の概要[4.1]と点,円を描くため の描画ツールの設計[4.2,4.3]である。第5章は,作図後の図形を動かす機 能についての概要[5.1]と点,線,円の3つに関する制約条件[5.2,5.3,5.4]
の詳細である。第6章では,開発した作図ソフトウェアのアンケート結果 を用いた分析と考察である。最後に,第7章で本論文のまとめを述べる。
第 2 章 基本的事項
2.1 使用言語
作図ソフトウェアのプロトタイプ作成では,NigariSystem[2]を使用し
た。NigariSystemは,Javaに比べて,アニメーションを容易に作成する
ことが可能だからである。
定規とコンパスのプロトタイプを作った時点で,さらなる機能拡張や処 理速度を早くするのために作成プラットフォームをJavaアプレットに移
行した。NigariSystemがJavaをベースとしたプログラミング言語である
ため,プログラミング環境がさほど変わらないことがJavaを選択した理 由である。
2.2 従来の作図ソフトウェアの手法
作図ソフトウェアを作るにあたり,従来の作図ソフトのことを研究する 必要があると思い,GC[1]とCinderella[3] の二つの作図ソフトウェアに 関して,調査した。
一般的に作図ソフトウェアは次に挙げる機能を満たしている。
• キーボードを操作する必要がなく,マウス操作だけで作図ができる。
• メニューもしくはツールバーから作図したい図形を選択することで,
プログラムが描く図形を決定する。
• 作図された図形は,作図後においても,動かすことができる。
次に特に調査したGCとCinderellaの詳しい特徴を述べる。
2.2.1 GC
GCは愛知教育大学の飯島康之氏によって開発された作図ソフトウェア である。次ページにそのスクリーンショットを記載する。ウィンドウ上端 に言語で表されたメニューが多数用意されている。ウィンドウ中央の大き な画面が作図するためのフィールドである。作図するときの流れは次のと おりである。
1. メニューから作図したい図形の項目を選択する。
2. マウスを動かして,図形を描きたい位置を決定する。
3. マウスの左ボタンクリックしたり,左ボタンドラッグして動かすこ とで作図を行う。
このメニューから作図したい図形を選択する方式は,意図した図形の作 図を確実に行うことができる。一方で,GCにおいて,図形がどんな言葉 で定義されているかを正確に判断しなければならない必要がある。そのた め,コンピュータの扱いがわかっていても,スムーズに作図ができないと いうことがある。具体的な操作方法は,マウスの左ボタンが決定,右ボタ ンがキャンセルという機能を担う。二つのボタンを使うので,操作になれ るまでは時間がかかる。
図 2.1: GC
2.2.2 Cinderella
Cinderellaはヨーロッパで開発された幾何学作図用ソフトウェアである。
次ページにそのスクリーンショットを記載する。ウィンドウ上端に作図項 目を決定するためのアイコンが並べられている。ウィンドウ中央の大きな 画面が作図するためのフィールドである。作図するときの流れは次のとお りである。
1. 多数のメニューアイコンから作図したいものを示すアイコンを選択 する。
2. マウスを動かして,図形を描きたい位置を決定する。
3. マウスの左ボタンクリックしたり,左ボタンドラッグして動かすこ とで作図を行う。
GCと違って,視覚的に作図したい作業を選ぶことができる。そのため,
実際に紙面に描くような感覚でメニューを選択することができる。一方,
メニューが多すぎることでかえって単純な作図を困難にさせてしまうよう な面がある。
具体的な操作方法はマウスの左ボタンのみを使用する。左ボタンクリッ クと左ボタンドラッグを組み合わせることで,すべての作図ができるよう になっている。使用するボタンが一つしかないので,GCに比べると使い やすい面があった。
図2.2: cinderella
第 3 章 HiZy の開発プロセス
3.1 作図ソフトウェアに要求される機能
従来の作図ソフトウェアの調査[2.2]から,作図ソフトウェアが満たす べき機能は,大別して次の二つの機能である。
• 画面上に作図をする機能
• 作図された図形を動かす機能
この機能のうち,HiZyは直感的に作図を行うことができることを目的 としているので,画面上に作図をする機能を重視して開発した。詳細は,
HiZyの作図機能の実装[4]で述べる。
また,作図された図形を動かす機能とは,コンピュータならではの機能 である。コンピュータ学習や作図の学習が深まった後の追加機能として作 図された図形を動かす機能を設定した。この図形を動かす機能を扱えるよ うになると,より便利で応用が効く作図を行うことができると考えた。図 形を動かす機能に関しては,従来の作図ソフトでも十分に実装されている ので,それらを参考にして構築した。
3.2 HiZy のユーザインタフェース
HiZyは,コンピュータ初心者向きの作図ソフトウェアを目指して,開 発した。ユーザインタフェースは単純かつ,わかりやすいものであること が前提となる。目標としたのは,説明書が必要ないほどに操作が推測でき るようなユーザインターフェースである。
単純な使用方法を実現するために,操作はすべて,マウスの左ボタンの みを用いて使用できるようにした。HiZyの使用で必要となるマウスの操 作は,マウスの移動,左ボタンクリック,左ボタンドラッグである。線の 作図と円の作図といった類似した動作が,作図の上で存在する。類似した 動作に関しては,すべて同じマウス操作を行うことによって意図した動作 を行うことができるようにした。操作の共通化によって,ユーザインター フェースの単純化という要求を満たせるようにした。
3.3 HiZy の開発状況
HiZyの最大の特徴は,作図する時のユーザインタフェースである。作 図された図形を動かす機能は他の作図ソフトウェアの大半に実装されてい るコンピュータならではの機能である。そのため研究対象として,作図機 能よりも重要度が低いと考えた。HiZyの開発を行うに当たり,大別して 作図機能と作図された図形を動かす機能があり,作図機能の開発を優先し て行った。
結果,作図機能に関しては,ソフトウェア使用者が意図した図形を描く ことができる程度完成した。一方,作図された図形を動かす機能は,実現 には至らなかった。作図された図形を動かす機能に関しては,本論文では,
仕様提案に留まる。詳しくは,描かれた図形を動かす機能の仕様[5]を参 照してもらいたい。
第 4 章 HiZy の作図機能の実装
4.1 作図するための道具
開発する作図ソフトの対象者はコンピュータ初心者である。そのため ユーザインタフェースを出来る限り簡単な操作のみで使用できるようにす る必要がある。簡単な操作を実現するために,マウスの動作を出来る限り 簡略化するように設定した。また,実際に文房具を使って作図するときの 手順に従った作図方法を実現した。これにより,コンピュータの使い方が わからなくても,直感的に作図ができるのではないかと考えた。
従来のソフトウェアは,用意されたメニューから,描きたい図形を選択 し,作図を行う方式である。HiZyでは,画面上に文房具を表示する。そ の画面上の文房具をマウス操作を用いて使い,作図を行う方式にしたので ある。
作図に必要な文房具が何かを検討した結果,点,線,円(弧)を描くた めの道具がそれぞれ必要だということがわかった。点を描くための文房具 をピンとし,線を描くための文房具を定規,円(弧)を描くための文房具 をコンパスとした。ディスプレイ上に表現された文房具を以下描画ツール と呼ぶこととする。
また本論文は早稲田大学理工学部情報学科清水との共同研究である。定 規については清水の卒業論文[4]を参照されたい。
描画ツール全体に必要とされる要求は,次のことである。
• 操作方法が単純であること。
• 直感的に操作方法が推測できること。
これは,文房具と同様に使用するための必須条件である。描画ツールの 操作に必要なコンピュータを扱う技能は,マウスの移動,マウス左ボタン クリック,マウス左ボタンドラッグとした。
マウスの移動は,マウスのボタンに触れることなく,マウスを移動させ てディスプレイ上のマウスカーソルを移動させることである。マウス左ボ タンクリックは,マウス本体を動かさず,マウスの左ボタンを押して離す ことである。マウス左ボタンドラッグとは,マウスの左ボタンを押したま
ま,マウス本体を動かすということである。この三つの動作で,すべての 描画が行うことができるようにユーザインタフェースを設定した。
直感的に操作方法が推測できるようにするために,マウスカーソルの 表示画像に関しても工夫をした。移動に関する処理を行うときは,マウス カーソルは十字矢印型[4.1]になる。描画に関する処理を行うときは,マ ウスカーソルは手型[4.2]になる。マウスカーソルが変化することで,描 画ツールに行わせる処理が視覚的に判断できるようにした。
図 4.1: 十字矢印型マウスカーソル
図4.2: 手型マウスカーソル
ピンに関しての詳細は,点を描くための描画ツール[4.2]を参照された い。コンパスに関しての詳細は,円を描くための描画ツール[4.3]を参照 されたい。
ここで本論文において,作成した作図ソフトウェアHiZyのスクリーン
ショット[4.3]を次ページに記載する。画面左端上段から,ピン,定規の順
に並んでいる。その下段にあるのがコンパスである。
図4.3: 作図ソフトウェアHiZy
4.2 点を描くための描画ツール
4.2.1 点を描く描画ツールとしてのピン
点とはある座標を示す記号である。箇所だけを特徴付けるということ であるとし,ピンを刺したときに。ピン頭が視界に残るというイメージか ら,ピンを点を描くための描画ツールとして採用した。
ピンの集団を表すために,ピンの箱の画像を用意した。点を描くときは,
このピンの箱から一つのピンを取り出し,点を描くという設定とした。
図4.4: 描画ツール・ピンの箱
4.2.2 ピンの使用方法
ピンには,点を描くための機能のみが備わっている。ピンの箱の機能は 次の二つである。
• 点を描くための描画ツール・ピンを取得させる。
• ピンの箱の座標を移動する。
ピンの箱の機能ごとに,ピンの使用方法の説明を述べる。
点を打つために,ピンを取得したいときは,ピンの箱の画像の上にマウ スを移動させる。画像例を挙げると,図4.5の状態である。
図 4.5: マウスカーソルがピンの箱に重なるときの例
マウスカーソルがピンの箱と重なっているとき,マウスの左ボタンク リックすることで,ピンを取得できる。ピンを取得した画像が次ページに ある図4.6である。一度ピンを取得すると,マウスカーソルに重なるよう
にピンの画像も移動する。図4.6では,ピンを取得した後に,ピンの箱に 重ならない位置へ移動している。
図 4.6: 左ボタンクリックによってピンを取得した状態
ピンを取得した状態で,マウス左ボタンクリックを行うと,点が描け る。作図される点の座標は,ディスプレイ上のピンの針先の座標に等し い。マウスカーソルの位置と,描かれる点の座標は一致するようにしてい ない。マウスカーソルに重なって,描く点の座標を特定することが難しい からである。ピンの針は,マウスカーソルに重ならない様に,長く設定し てある。その画像例が,図4.7である。
図 4.7: 左ボタンクリックによって点を描画した状態
図4.7で示しているとおり,点を描画した時点では,ピンの画像は消滅 しない。ソフトウェア使用者に,点の位置を再度確認してもらうために,
このように設定した。そのあと,マウスを移動させるとピンが消滅する。
その画像例が,次ページの図4.8である。
点を描く作業は,この一連の作業を行うことで完了する。一度,点を描 いてしまうと,ピンを持っていない状態に戻るため,連続で複数の点を描 くことはできない。複数の点を描きたいときは,再度ピンを取得するとこ ろから繰り返す必要がある。
図4.8: 点の描画後,ピンの画像が消滅した状態
次に,ピンの箱を移動させるときの方法について述べる。図4.5の状態 において,マウスの左ボタンドラッグをすると,ピンの箱がマウスカーソ ルと共に移動する。左ボタンドラッグをやめると,そのときの座標にピン の箱が置かれる。
4.3 円を描くための描画ツール
4.3.1 円を描く文房具としてのコンパス
円を描くための文房具はコンパスである。コンパスは,針の位置を中心 として,腕の開き具合に比例した半径を設定する円(弧)を描くための文 房具である。
このコンパスをディスプレイの二次元平面上に表現しなければならない ので,コンパスを多少変形させることにした。円とは,ある一点から等距 離に存在する点の集合体である。針と鉛筆を紐で結び,紐を張り詰めさせ たものは,コンパスと同じ働きをすることができる。その器械を二次元平 面に表現することにした。描画ツールのコンパスのスクリーンショットが,
図4.9である。
図4.9: 描画ツール・コンパス
図4.9を用いて,描画ツールコンパスの概要を説明する。図の左側の 青色の逆三角形が針である。針の先端の座標が,描く円(弧)の中心とな る。針の機能は,コンパス全体の移動である。詳細はコンパス全体の移動 [4.3.2]で述べる。
図の右側の鉛筆画像が,円周を描くための鉛筆である。上下でピンク色 と緑色に色が分けられており,機能も同様に分けられている。ピンク色の 部分は,コンパスの半径の変化に用いる。詳しくは,コンパスの腕の変化
[4.3.3]で述べる。緑色の部分は,円(弧)の描画に用いる。詳しくは,円
(弧)の描画[4.3.4]で述べる。
4.3.2 コンパス全体の移動
コンパスを動かすということは,描く円の中心座標を動かすとも言うこ とができる。コンパス全体の移動は,コンパスの針の部分に関する機能と した。コンパスの針の部分にマウスカーソルを合わせるとマウスカーソル の形が十字矢印に変わる。図4.10は,そのときのスクリーンショットで ある。
図4.10: コンパス本体の移動をしたいとき
マウスカーソルが十字矢印のときに,左ドラッグすることで,コンパス 全体が移動できるようにした。ドラッグ中は,マウスカーソルに離れずコ ンパス全体が移動する。ドラッグをやめると,そのときのコンパスがある 座標に,コンパスが置かれることになる。
ピンによって予め作成された点を,以下既存点とする。全体移動中に,
コンパスの針先が既存点に近づくと,自動的に針先が点に重なるようにし た。微細な操作の必要なく,既存点をコンパスの針先を合わせることがで きる。ソフトウェア使用者が,快適に作図をするためにした機能である。
4.3.3 コンパスの腕の変化
コンパスの腕には,次に挙げる二つの機能がある。
• 円(弧)の半径の長さを決定する。
• 弧を描くときに,弧の描き始めの角度を指定する。
描画ツール・コンパスでは,鉛筆部分上部のピンク色の部分が腕の変化の 機能を担っている。コンパスの腕は,針と鉛筆のそれぞれの先端を結ぶ線 として,表現されている。マウスカーソルを鉛筆のピンク部分に合わせる と,マウスカーソルが十字矢印に変化する。画像例を図4.11に挙げる。
図4.11: コンパスの腕の長さを変化させたいとき
このとき,左ドラッグすると鉛筆がマウスカーソルにくっついているよ うに動く。コンパスの腕は,常に針の先端と鉛筆の先端を結ぶように変化 する。この操作により,コンパスの腕の長さと,鉛筆の位置が変化する。
針と鉛筆のそれぞれの先端の距離が,描く円(弧)の半径である。針と鉛 筆のそれぞれの先端の位置関係が,描く弧の描き始めの角度を表す。この 操作によって,半径と弧の描き始めの位置が変化した画像例を図4.12に 挙げる。
図4.12: コンパスの腕の長さを変化させた例
コンパス全体の移動のときのように,自動で既存点に吸着する機能を設 定した。鉛筆の移動中において,鉛筆先端が,既存点に近づくと,自動的 に既存点にくっつく。ある既存点を通るように円(弧)を描きたいときに,
操作の簡略化をするための機能である。
4.3.4 円(弧)の描画
円(弧)を描画したいときは,鉛筆下部の緑色の部分を用いる。マウス カーソルを鉛筆の緑色の部分に合わせると,マウスカーソルが手型に変化 する。このときの画像例を図4.13に挙げる。
図4.13: 円(弧)を描きたいとき
マウスカーソルが手型になっているとき,左ドラッグすることで,円 (弧)を描くことが出来るようにした。鉛筆はマウスの動きを追い,描き始 めの座標から,コンパスの鉛筆の先端の示す座標までの弧を描く。そして 360度を超える弧を描けば円である。画像例として図4.14を挙げる。
図4.14: 円(弧)を描きたいとき
左ドラッグをしている間に,マウスカーソルを描きたい円(弧)の中心 に対して,近づけても遠ざけてもよい。その画像例を次ページの図4.15 に挙げる。
図4.15: 弧を描画中にマウスを鉛筆から遠ざけたとき
マウスカーソルを鉛筆から離しても円(弧)が描画できるようにするた めに,ベクトルを用いた計算を行っている。円弧の中心からマウスカーソ ルの座標への単位ベクトルEを計算して求める。この単位ベクトルEは,
弧の描き終わりの角度を算出するために必要である。円(弧)の半径はコ ンパスの腕の長さと等しい。
円(弧)を描画するのに必要な情報は,次に挙げるものである。
• 円(弧)の中心の座標
• 円(弧)の半径の長さ
• 弧の描き始めの角度
• 弧の書き終わりの角度
描き始めの座標,単位ベクトルE,そして,コンパスの長さにより円 (弧)を描画するのに必要な情報がすべて取得できる。これにより,マウ スが鉛筆から離れたとしても,問題なく円(弧)の描画が続けられるので ある。
第 5 章 描かれた図を動かす機能の 仕様
5.1 より高度な作図学習のための制約条件
作図問題に取り組んでいくうちに,描いた図形が複雑化してしまうこと がある。描いた図形が多すぎて,作図したものがわからなくなるというこ とである。
この問題は,現実の文房具を用いた作図においても生じる。一般的に,
作図において,途中経過の作図は保存するのが規則である。
その問題を解決する方法が,図形の移動である。コンピュータ上では,
作図された図形は複数の値の集合である。複数の図形を分析すれば,作図 された複数の図形の関係を保存することができる。複数の図形の関係と は,“ある既存点を通る”や“二直線の交点である”といった図形の性質で ある。作図画面の複雑化の対処法の一つが図形の関係を保存したまま,図 形を移動させることであると考えた。
図形の関係を保存したまま図形を移動させるためには,関係を定義し,
保存する規則が必要だと考えた。その図形の関係を定義し,保存するため の規則を制約条件として設定した。
制約条件とは,図形の移動制約と制約の発生条件を共に備えた規則とし て設定した。移動制約とは,他の図形との関係を保ったまま移動するとき の規則である。制約の発生条件とは,図形に設定される移動制約を決定す るための規則である。
図形の関係を記録するのは,図形が作図されたときに記録するのが最良 であると考えた。図形が作図されたときにその図形がどのような状況に あったかを分析するのが最も単純だからである。分析結果に従って,図形 に必ず何らかの制約条件を設定する。
制約条件が設定されていれば,作図の結果は常に保たれるはずである。
制約条件は,点と線と円(弧)それぞれに設定した。
5.2 点の制約条件
5.2.1 自由移動
何も図形が通っていない座標にある点Pを描くとき,その点Pは自由 移動することができると設定する。制約条件の移動制約と発生条件は,
• 移動制約:自由に移動することができる。
• 発生条件:点Pの座標が既存の図形に一つも重なっていない。
この制約条件が定められる状況の例を図5.1に挙げる。図5.1は,予め 直線と弧が描かれていて,その後に点が打たれたときの状況である。この 描かれた点P は,他の図形との関係を何も持たないので,自由に移動さ せることができる。
図5.1: 自由移動する点
5.2.2 線上移動・円周上移動
線上,あるいは円周上の座標にある点Pを描くとき,その点Pは線上 のみ,あるいは円周上のみを移動することができると設定する。制約条件 の移動制約と発生条件は,
• 移動制約:線上あるいは円周上のみを自由に移動することができる。
• 発生条件:点P の座標が既存の一つの線あるいは,一つの円周の上 に重なっている。
この制約条件が定められる状況の例を次ページの図5.2に挙げる。図5.2 は,予め線Lが描かれていて,その後にその線L上に点Pが打たれたと きの状況である。この描かれた点Pは,線Lとの関係を保つので,線L 上のみを自由に移動させることができる。
5.2.3 移動不可
二つ以上の直線の交点や線と円の交点と同一座標にある点P を描くと き,その点Pは,点Pを通る図形すべての交点とする。交点は,複数の図
図5.2: 線上移動する点
形によって作られる点であるので,交点を任意に動かすことは出来ない。
制約条件の移動制約と発生条件は,
• 移動制約:任意に動かすことはできない。交点を構成する図形の動き に依存して移動をすることはできる。
• 発生条件:点P の座標が既存の二つ以上の線あるいは,円周の上に 重なっている。
この制約条件が定められる状況の例を図5.3に挙げる。図5.3は,予め 二つの直線L1とL2が交わるように描かれていて,その後に交点に点P が描かれたときの状況である。この描かれた点は,交点を構成する線L1 とL2が動いたときに,常にその交点を示すように移動する。点Pを選ん で移動させることはできない。
図5.3: 交点
5.3 線の制約条件
5.3.1 自由移動
線Lが描かれたときに,どの既存点を通過しないとき,その線Lは,自 由に平行移動することができる。制約条件の移動制約と発生条件は,
• 移動制約:任意に平行移動することができる。傾きを変化させること はできない。
• 発生条件:線Lが既存点を一つも通らない。
この制約条件が定められる状況の例を図5.4に挙げる。図5.4は,予め 複数の点が描かれていて,その後に線Lが描かれたときの状況である。線 Lは,自由に平行移動することができる。
図5.4: 自由移動する線
5.3.2 傾き自由変化
線Lが描かれたときに,一つの点Pを通過すると,その線Lは,点P を必ず通る線とする。点P を必ず通る上で,傾きを自由に変化させるこ とができる。制約条件の移動制約と発生条件は,
• 移動制約:任意に傾きを変化させることができる。通る点P を必ず 通過品しなければならない。
• 発生条件:線Lが既存点を一つだけ通る。
この制約条件が定められる状況の例を図5.5に挙げる。図5.5は,予め 点P が描かれていて,その後に点P を通るように,線Lが描かれたとき の状況である。線Lは,回転の中心を点Pとして,自由に回転すること ができる。線L0は、線Lを点Pを中心として回転させた後の図である。
図5.5: 傾きが自由に変化する線
5.3.3 移動不可
既存の二つの点P1,点P2を通過するように線Lが描かれると,線L は,点P1,P2を必ず通る線となる。線L自体を移動させることはでき ないが,点P1,点P2が移動することで,結果的に線Lが動くことはで きる。制約条件の移動制約と発生条件は,
• 移動制約:任意に傾きを変化させることができる。点P1,点P2を 必ず通過品しなければならない。
• 発生条件:線Lが既存点を二つ通る。
この制約条件が定められる状況の例を図5.6に挙げる。図5.6は,予め 点P1と点P2が描かれていて,その後に線Lが描かれたときの状況であ る。線L0は,点P1を点P10に動かしたとき、線Lが変わったあとの線 である。
図5.6: 傾きが自由に変化する線
5.4 円の制約条件
5.4.1 円の中心の点
円の中心の点は,ピンによって描かれる点と全く同じものであると設定 した。その座標はコンパスの針の先端の座標と同じものであると設定でき る。現在のHiZyでは,円(弧)の描画と共に中心の点を描くことはしてい ない。制約条件を設定していく中で必要となった機能であるからである。
円の中心の点に関する制約条件は,点の制約条件[5.2]と同じである。円 の中心の点が移動するとき,円の中心の点と円周の関係は,変わらないも のとする。円周は,円の中心の点の動きと全く同じ動きをするということ である。
円の中心の点に関する制約条件の例外は次の二つである。
• 円周がある二つの点を通る円[5.4.4]
• 円周がある三つの点を通る円[5.4.5]
この二つの場合は,中心の点は,それぞれの特別な制約条件を与えられる ことになる。詳しくはそれぞれの項で述べる。
5.4.2 半径自由変化
円が描かれるときに,円周が,どの既存点も通過しない。その円Oは,
半径を自由に定めることができる円とする。
半径は,円Oを描画したときのコンパスの腕の長さが初期値である。制 約条件の移動制約と発生条件は,
• 移動制約:半径を自由に設定することができる。
• 発生条件:円Oの円周が,描画するときにどの既存点も通過しない。
この制約条件が定められる状況の例を図5.7に挙げる。図5.7は,予め 複数の点が描かれていて,その後に円Oが描かれたときの状況である。円 Oは,半径をマウスでドラッグして動かすことで自由に変えることができ る。円の中心の点をドラッグして動かしたときに、円周は中心の点との位 置関係を保ったまま平行移動する。
図 5.7: 半径が自由に変化できる円
5.4.3 円周が一点を必ず通過する
円が描かれるときに,ある一つの既存点Pを通過する。そのとき,そ の円Oは,点Pを必ず通る円とする。
半径は,円Oの中心の点と,円周が通る点P との距離の長さである。
中心の点もしくは,点P が移動することで,半径は,変化する。制約条 件の移動制約と発生条件は,
• 移動制約:半径は,円の中心の点と通過する点P の距離である。
• 発生条件:円Oの円周が,描画するときに一つの既存点Pを通過する。
この制約条件が定められる状況の例を図5.8に挙げる。図5.8は,予め 点Pが描かれていて,その後に円Oが描かれたときの状況である。円O の半径rは,点Oと点Pの距離である。
図 5.8: 半径が自由に変化できる円
5.4.4 円周が二点を必ず通過する
円が描かれるときに,ある二つの既存点P1,P2を通過する。そのと き,その円Oは,点P1と点P2を必ず通る円とする。
HiZyでは,この円を直接描くことはできない。制約条件の発生条件は,
次の作図作業を行ったときである。
1. 点P1と点P2を結ぶ線分の垂直二等分線Lを描く。
2. その直線L上に,円の中心の点を取り,円Oを描く。
3. 円Oの円周が,二つの点P1,P2を通る。
移動制約は,次の三つのことである。
• 中心の点は,常に点P1と点P2を結ぶ線分の垂直二等分線L上で ある。
• 中心の点は,点P1と点P2を結ぶ線分の垂直二等分線L上のみを 移動することができる。
• 半径は,中心の点と通過する点との距離とする。
円周が通る点の一つを動かしたとき,二つの線分の垂直二等分線Lも移 動する。中心の点は,常に線L上であるので,中心の点もまた移動する。
このとき,中心の点は,二つの通過する点との位置関係の比を保ったまま 移動する。半径もまた,移動した中心の点を元に計算して求められる。具 体的な例を図5.9で,示す。常に保たれるのは,a:bの長さの比である。
図5.9: 円周が二つの点を通る円
5.4.5 円周が三点を必ず通過する
円Oが描かれたときに,その円周が三つの既存点P1,P2,P3を通過 する。そのとき円Oを三点を必ず通る円とする。
HiZyでは,直接,三つの点を通る円を描くことはできない。作図によっ てのみ,この円を作り出すことができる。発生条件は,この作図作業に 従って円が作成したときである。作図の手順は次に述べる。
1. 三つの既存点のうち,二つの点を結んだ線分の垂直二等分線を描く。
2. 1で使用しなかった点と残りの二つの点のどちらかを結ぶ線分の垂 直二等分線を描く。
3. 二つの垂直二等分線の交点を円の中心とする。
4. 三つの既存点を通るように円周を描く。
移動条件は,次の二つである。
• 円の中心は二つの垂直二等分線の交点を常に満たす。
• 半径は,円の中心と,三つの通過する点のどれかとの距離である。
三つの点を通る円の例を図5.10に示す。円の中心は,二つの垂直二等 分線の交点である。垂直二等分線が移動するたびに,円の中心も移動する ということである。円の半径は,中心と既存点三つとの距離である。既存 点が移動するたびに中心が変わるので,半径も同様に変化する。
図5.10: 円周が三つの点を通る円
第 6 章 完成したソフトウェアの評価 と分析
6.1 アンケート結果の分析
付録のアンケートの結果を元に本論文で開発した作図ソフトウェアHiZy の評価と分析をする。具体的なアンケートの内容と結果に関しては,アン ケートと同時に配布したマニュアルと共に,付録[7]を参照されたい。
6.1.1 総合的な評価
アンケート結果から今回作成したHiZyの総合的な評価は,使いやすい という意見が多くみられた。同時に配布したマニュアルをよく読むと回 答した人が少ないことも結果から分かる。マニュアルを読まずにHiZyを 使用しても,使いやすいという判断を得ることができた。このことから,
HiZyは直感的に使用することができるという前提条件をクリアしたよう に思うことができる。
アンケートの際にHiZyの他に,GCあるいはCinderellaのどちらかを 使用してもらい,比較を行った。使いやすいという意見が多勢を占めた。
主な理由は他のソフトに比べて,操作が単純でわかりやすいということで あった。
また,使いにくいという意見もあった。理由は,機能が充実していない ということと,操作が面倒だということであった。操作を実際の作図に そった方法では,一つの円を描くことにも,複数の動作を必要とすること がその原因だと考えられる。コンピュータに熟練するほどにこの傾向は強 いと考えられる。HiZyは,コンピュータ初心者を対象としたものである ので,大きな問題ではないと考えられる。
追加して欲しい機能として,すでに描画した図形を削除したいという意 見があった。小学校,中学校で学ぶ作図は作図の経過の図形も保存してお く必要がある。HiZyもそれに従い一度描画した図形を削除することは不 可能となっている。描画した図形が増えるに従い,ディスプレイ上の画面 が複雑になり,作図を困難にさせるという事態が起こるのは確かである。
6.1.2 描画ツールに関する評価 描画ツール・ピンについて
個々の描画ツールに関してのアンケートの分析を述べる。ピンに関して は,使いやすいという意見が多かった。マウスの左ボタンの操作のみで扱 える点が特に評価された。マニュアルを読まなかった人が大勢を占めた中 で,この評価を得ることができた。ピンに関しては,直感的に扱えるユー ザインタフェースを設定するという目標は達成できたと考えられる。
一方で,連続で点を打てないことが,多くの人に不評であった。点を打 つたびに,いちいちピンを取得するすることが,手間が増えるということ であった。
ピンに追加して欲しい機能は,不満点と一致していた。一度にたくさん の点が描画できるようにしたいという意見が多かった。このことから,点 を描画するに当たり,一度に複数の点が打てるということは,必要な機能 であると考えられる。
描画ツール・コンパスについて
コンパスに関しても,使いやすいという意見が多かった。理由が,一つ の意見にまとまるということはなかった。デザインと機能が一致していた という意見を得ることができた。実際に使う文房具のコンパスと多少異な るデザインであったが,コンパスのイメージを再現できたと考えられる。
また,マウスの左ボタンのみでの使用はピン同様のいい評価を受けるこ とが出来た。
初心者にとって,一つのボタンのみで操作できるということは,操作の 簡略化に大いに役立つということがわかる。
鉛筆画像の上下で機能が分かれていたということが使いやすい理由と使 いにくい理由にあった。鉛筆に対して,円を描画する機能と半径を変化さ せる昨日を共存させたことに原因があると考える。一つの画像に対して,
複数の機能をつけるということが,操作を分かりにくくしてしまう可能性 があるということが考えられる。
コンパスの針先や鉛筆の先端を点に近づけると自動的にその点に接着す る機能は全員から好評を得ることが出来た。コンパスにおいて,最も高く 評価された機能である。作図問題において,特定の点を中心とする円を作 図することが多いことが評価の理由だと考えられる。
コンパスに欲しい機能として,半径を動かさずに弧の描き始めの角度を 変化させたいということがあった。コンパスの半径を変えずに,中心の座 標が違う複数の円を作図することは,一般的な作図問題で必要になる。作
図問題におけるコンパスの使用頻度を考えると,この機能は優先して改良 すべき点である。
6.2 これからの改良点
アンケート結果とその分析から,これからのHiZyの改良点を次にあ げる。
・ 作図された図形を動かす機能を実装する。
・ 作図された図形を消去できる消しゴムのようなものを作成する。
・ 連続で点を描画できるようにする。
・ コンパスにおいて,腕の長さを変えずに,弧の描き始めの角度を変 化できるようにする。
改良点に作図における事柄が多く考えられる。より使いやすいユーザ インタフェースを追求する余地がまだ多くあるということである。作図さ れた図形を動かす機能を実装することで,従来の作図ソフトウェアと同様 の機能を持つことになる。その改良点を加えることができれば,HiZyは,
実際に小学生,中学生に向けての教育ソフトウェアとして機能すると思わ れる。
第 7 章 おわりに
アンケート結果から,開発したHiZyは,新しいユーザインタフェース を持つ作図ソフトとして機能したと判断できる。文房具を模した作図方式 により,コンピュータ初心者向きのユーザインタフェースを作ることがで きた。マウスの一つのボタンからすべての作業をすることができること が,簡略化した操作法の要点である。初心者にとっては,その一つのボタ ンによる操作方法が,コンピュータ使用の導入のための最適な方法である と思う。
コンピュータを学ぶ上で,コンピュータ操作に対するストレスを取り除 くのは重要である。現実の作業に沿ったユーザインタフェースは,コン ピュータに対するストレスの軽減に役立つと考えられる。
本論文では,作図という作業に対して,現実に沿ったユーザインタフェー スを開発した。一般的に作図に限らず現実に沿ったユーザインタフェース は,コンピュータ初心者教育に有益ではないかと思う。
謝辞
本論文を作成するにあたり,指導教員である筧先生には,私の拙い文章 を何度も添削してくださったり,ソフトウェア作成の時点から多くの助言 を与えていただき,深く感謝しています。
筧先生の助手の長慎也先輩には作成したソフトウェアの仕様決定やプロ グラミングの点で多々足りない部分をアドバイスしていただきました。長 先輩のアドバイス無しでは,ソフトウェアが完成しなかったのではないか と思います。助言などもろもろの点でお世話になり,本当に感謝しており ます。
共同研究者の清水さんには,意見の食い違いなどお互い多数の困難を共 有しましたが,開発したソフトウェアを作成するにあたり,私の足りない ところをたくさん補っていただき,本当にありがとうございました。最後 にアンケートに協力してもらった方々に貴重な時間を割いていただいてま でアンケートに答えていただきありがとうございました。
参考文献
[1] 飯島康之: “Forum of Geometric Constructor”,
hhttp://www.auemath.aichi−edu.ac.jp/teacher/iijima/i {2005年1月2日アクセス}
[2] 筧研究室: NigariSystem,
hhttp://taurus.kake.inf o.waseda.ac.jp/N igari/soywiki/view.cgii {2005年1月6日アクセス}
[3] J.リヒター.ゲバート,U.H.コルテンカンプ 著,阿原一志 訳: シンデ レラ 幾何学のためのグラフィクス
[4] 清水阿弥:わかりやすい作図道具を備えた直感的作図ソフトウェア
HiZy, 2005年度早稲田大学理工学部情報学科卒業論文
付録
アンケートと共に配布したマニュアルを提示する。本ソフトウェアでは,
マニュアルを熟読する必要なく,使用できることを狙いとしたため,マ ニュアルの使用は、アンケート対象者の任意とした。
HiZyのアンケートに用いた練習問題を列挙する。
1. ピンを使って,点を作図しなさい。
2. コンパスを使って,円を作図しなさい。
3. 定規を使って,線を作図しなさい。
4. 線分ABの垂直二等分線を作図しなさい。
5. 鋭角ABCの角の二等分線を作図しなさい。
6. 三角形ABCの内心を作図しなさい。
7. 三角形ABCの外心を作図しなさい。
アンケートと結果を記載する。()内の数字が回答数で,自由記入欄に関 しては,列挙して表す。
・ 質問1.あなたの年齢・性別・職業をお答えください。
年齢:10代(4) 20代(7) 30代(0) 40代(1) 50代以上(3) 性別:男(12) 女(3)
職業:学生(10) 社会人(3)主婦(2)その他(0)
・ 質問2.あなたは普段どれくらいパソコンを使用しますか?
1. 毎日使う(7)
2. 1週間に3,4回使う(1) 3. 1週間に1,2回使う(2) 4. 2週間に1,2回使う(0)
5. 必要なとき以外,ほとんど使わない(5)
・ 質問3.パソコンの主な用途をお答えください。複数回答可能。
1. インターネット(13) 2. プログラミング(4)
3. WordやExcelなどの文書作成(10) 4. お絵かきソフトウェア(1)
5. ゲーム(6) 6. その他
・ コミュニケーションツールとして(1)
・ 質問4.小・中学生時代,あなたは作図が好きでしたか?
1. 非常に好きだった(1) 2. 好きだった(6) 3. 普通だった(4) 4. 嫌いだった(3) 5. 非常に嫌いだった(1)
・ 質問5.ピンについて。
・5-1.使いやすかったですか?
はい(13) いいえ(2)
・5-2. 5-1で「はい」と答えた方にお聞きします。使いやすかっ
た理由をお答えください。複数回答可能。
1. デザインと機能が一致していたから(1)
2. マウスの左ボタンのみの操作で点が描けたから(10) 3. なんとなくカンで使うことができたから(4)
4. その他
・ 針山が動かすことができた(1)
・5-3. 5-1で「いいえ」と答えた方にお聞きします。使いにくかっ
た理由をお答えください。複数回答可能。
1. デザインと機能が合っていないから(1) 2. 操作がわかりにくいから(0)
3. 描きたいところに点がかけなかったから(0) 4. その他
・ 連続で点を打つのが面倒(1)
・ クリックで点を打つのに戸惑う(1)
・5-4. あなたは説明書のピンの項目を読みましたか?
1. よく読んだ(1) 2. 流し読みをした(5) 3. 読まなかった(9)
・5-5. ピンに欲しい機能はありますか?ご自由にお答えください。
・ 一回でたくさん点を打てると良い(3)
・ ピンを針山に戻したい(1)
・ ピンの再配置をしたい(1)
・ 好きな点を選択して,削除したい(1)
・ 質問6.コンパスについて。
・6-1.使いやすかったですか?
はい(14) いいえ(1)
・6-2. 6-1で「はい」と答えた方にお聞きします。使いやすかっ
た理由をお答えください。複数回答可能。
1. デザインと機能が一致していたから(5)
2. マウスの左ボタンのみの操作で円(弧)が描けたから(5) 3. なんとなくカンで使うことができたから(5)
4. その他
・ 上下で機能が分かれていたから(1)
・ カーソルが変化するのが良かった(1)
・6-3. 6-1で「いいえ」と答えた方にお聞きします。使いにくかっ
た理由をお答えください。複数回答可能。
1. デザインと機能が合っていないから(0) 2. 操作がわかりにくいから(0)
3. 描きたいところに円(弧)がかけなかったから(0) 4. その他
・ 上下で機能が分かれていたから(1)
・6-4. コンパスの機能について,使いやすさを評価してください。
・ コンパス全体の移動
使いやすい(15),使いにくい(0)
・ 鉛筆のみの移動
使いやすい(13),使いにくい(2)
・ コンパスで円(弧)を描く 使いやすい(15), 使いにくい(0)
・6-5. 点にピタっとくっつく機能は役に立ちましたか?
はい(15) いいえ(0)
・6-6. あなたは説明書のコンパスの項目を読みましたか?
1. よく読んだ(0) 2. 流し読みをした(7) 3. 読まなかった(8)
・6-7. コンパスに欲しい機能はありますか?ご自由にお答えく ださい。
・ 線に接した際などに目印が付くと良い(1)
・ 一旦描いたものを消したい(1)
・ 半径動かさず,かつ円(弧)を描かずに移動させたい(2)
・ 質問7.定規について。
・7-1.使いやすかったですか?
はい(12) いいえ(3)
・7-2. 7-1で「はい」と答えた方にお聞きします。使いやすかっ
た理由をお答えください。複数回答可能。
1. デザインと機能が一致していたから(4)
2. マウスの左ボタンのみの操作で線が描けたから(6) 3. なんとなくカンで使うことができたから(6) 4. その他(1)
・7-3. 7-1で「いいえ」と答えた方にお聞きします。使いにくかっ
た理由をお答えください。複数回答可能。
1. デザインと機能が合っていないから(0)
2. 操作がわかりにくいから(1)
3. 描きたいところに線がかけなかったから(1) 4. その他(1)
・7-4. 定規の機能について,使いやすさを評価してください。
・ 定規の移動
使いやすい(12),使いにくい(3)
・ 定規の回転
使いやすい(12),使いにくい(3)
・ 定規で線を描く
使いやすい(13), 使いにくい(2)
・7-5. 点にピタっとくっつく機能は役に立ちましたか?
はい(15) いいえ(0)
・7-6. あなたは説明書の定規の項目を読みましたか?
1. よく読んだ(0) 2. 流し読みをした(6) 3. 読まなかった(9)
・7-7. 定規に欲しい機能はありますか?ご自由にお答えください。
・ 質問8.「HiZy」は総合的に使いやすかったですか?
1. 非常に使いやすかった(3) 2. 使いやすかった(12) 3. 使いにくかった(0) 4. 非常に使いにくかった(0)
・ 質問9.他の作図ソフトウェアと比べて,使いやすかったですか?
1. 非常に使いやすかった(3) 2. 使いやすかった(11) 3. 使いにくかった(1) 4. 非常に使いにくかった(0)
・ 質問10.質問9の回答の理由を,ご自由にお書きください。
・ 使いやすかった理由
・ 他のソフトウェアに比べて単純で良い(3)
・ 他のソフトウェアが分かりにくいから(1)
・ ツールが分かりやすかったから(1)
・ 他のソフトウェアは説明書みたいなものを読まないと分か らないが,このソフトウェアはなんとなく使えたから(1)
・ 使い方が分かりやすかったから(1)
・ 実際の文房具と同じような動きをするので,簡単に使えた (2)
・ 使いにくかった理由
・ 機能が充実していない(1)
・ 描画までの段階が,慣れてくると面倒になる(1)
・ 質問11.練習問題は簡単でしたか?
・ はい(8)
・ いいえ(7)