(57)【要約】【課題】ユーザによる操作を自動的に判別して操作に応じて図形データに関する処理を行うことを可能とする。【解決手段】図形データを取得する図形取得部と、ユーザによる操作を取得する操作取得部と、前記操作取得部により取得された前記操作を判定する判定部と、前記判定部による判定に基づいて前記図形データに対する処理を行う処理部と、を備える、情報処理装置が提供される。例えば、前記処理部は、前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の一部を選択する操作であると判定された場合に、新たな図形を生成する。【選択図】図１
2012256270.tif 000002
【特許請求の範囲】
【請求項１】
図形データを取得する図形取得部と、
ユーザによる操作を取得する操作取得部と、
前記操作取得部により取得された前記操作を判定する判定部と、
前記判定部による判定に基づいて前記図形データに対する処理を行う処理部と、
を備える、情報処理装置。
【請求項２】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の一部を選択する操作であると判定された場合に、新たな図形を生成する、
請求項１に記載の情報処理装置。
【請求項３】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の全部を選択する操作であると判定された場合に、前記図形データを選択する、
請求項１に記載の情報処理装置。
【請求項４】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる２つの交点を選択する操作であると判定された場合に、前記２つの交点間を結ぶ線分を新たな図形データとして生成する、
請求項１に記載の情報処理装置。
【請求項５】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１つの交点と前記図形データに含まれない点とを選択する操作であると判定された場合に、前記１つの交点と前記図形データに含まれない点との間を結ぶ線分を新たな図形データとして生成する、
請求項１に記載の情報処理装置。
【請求項６】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる端点を前記図形データに含まれる図形要素の位置に移動させる操作であると判定された場合に、前記端点を前記図形要素に接続させる、
請求項１に記載の情報処理装置。
【請求項７】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる２つの図形要素を選択する操作及び前記２つの図形要素が満たすべき関係を選択する操作であると判定された場合に、前記関係が満たされるように前記２つの図形要素のうちの少なくとも一方を変更する、
請求項１に記載の情報処理装置。
【請求項８】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる図形要素に対してオブジェクトを接触させる操作であると判定された場合に、前記オブジェクトの形状に基づいて前記図形要素を変更する、
請求項１に記載の情報処理装置。
【請求項９】
コンピュータを、
図形データを取得する図形取得部と、
ユーザによる操作を取得する操作取得部と、
前記操作取得部により取得された前記操作を判定する判定部と、
前記判定部による判定に基づいて前記図形データに対する処理を行う処理部と、
を備える、情報処理装置として機能させるためのプログラム。
【請求項１０】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の一部を選択する操作であると判定された場合に、新たな図形を生成する、
請求項９に記載のプログラム。
【請求項１１】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の全部を選択する操作であると判定された場合に、前記図形データを選択する、
請求項９に記載のプログラム。
【請求項１２】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる２つの交点を選択する操作であると判定された場合に、前記２つの交点間を結ぶ線分を新たな図形データとして生成する、
請求項９に記載のプログラム。
【請求項１３】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１つの交点と前記図形データに含まれる端点とを選択する操作であると判定された場合に、前記１つの交点と前記端点との間を結ぶ線分を新たな図形データとして生成する、
請求項９に記載のプログラム。
【請求項１４】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる端点を前記図形データに含まれる図形要素の位置に移動させる操作であると判定された場合に、前記端点を前記図形要素に接続させる、
請求項９に記載のプログラム。
【請求項１５】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる２つの図形要素を選択する操作及び前記２つの図形要素が満たすべき関係を選択する操作であると判定された場合に、前記関係が満たされるように前記２つの図形要素のうちの少なくとも一方を変更する、
請求項９に記載のプログラム。
【請求項１６】
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる図形要素に対してオブジェクトを接触させる操作であると判定された場合に、前記オブジェクトの形状に基づいて前記図形要素を変更する、
請求項９に記載のプログラム。
【請求項１７】
図形データを取得することと、
ユーザによる操作を取得することと、
取得された前記操作を判定することと、
判定に基づいて前記図形データに対する処理を行うことと、
を含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
近年、図形データを容易に作成する技術として様々な技術が開示されている。例えば、図形データの一例としての線分を容易に描く技術が開示されている（例えば、特許文献１参照。）。このような技術によれば、特定の図形データである線分を容易に描くことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−６３５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特定の図形データを作成するという制約がある場合には、簡易に図形データを作成することができるが、図形データに関する様々な処理を行う場合には、図形データに関する処理を選択するための操作が必要になる。図形データに関する処理には、例えば、線分を選択する処理、線分を描く処理等がある。このため、ユーザによる操作が煩雑になってしまう。特に、例えば、リアルタイム性が問われる授業やプレゼンテーションなどに図形データの作成が使用される場合には、操作が簡易に行われるとユーザに対する利便性が向上する。
【０００５】
したがって、ユーザによる操作を自動的に判別して操作に応じて図形データに関する処理を行うことが可能な手法が提供されることが望ましい。
【課題を解決するための手段】
【０００６】
本開示によれば、図形データを取得する図形取得部と、ユーザによる操作を取得する操作取得部と、前記操作取得部により取得された前記操作を判定する判定部と、前記判定部による判定に基づいて前記図形データに対する処理を行う処理部と、を備える、情報処理装置が提供される。
【０００７】
また、本開示によれば、コンピュータを、図形データを取得する図形取得部と、ユーザによる操作を取得する操作取得部と、前記操作取得部により取得された前記操作を判定する判定部と、前記判定部による判定に基づいて前記図形データに対する処理を行う処理部と、を備える、情報処理装置として機能させるためのプログラムが提供される。
【０００８】
また、本開示によれば、図形データを取得することと、ユーザによる操作を取得することと、取得された前記操作を判定することと、判定に基づいて前記図形データに対する処理を行うことと、を含む、情報処理方法が提供される。
【発明の効果】
【０００９】
以上説明したように、本開示によれば、ユーザによる操作を自動的に判別して操作に応じて図形データに関する処理を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】本開示の実施形態に係る情報処理装置の概要を説明するための図である。
【図２】情報処理装置のハードウェア構成を示す図である。
【図３】情報処理装置の機能構成を示す図である。
【図４】情報処理装置が有する機能の例（図形データ生成）を説明するための図である。
【図５】情報処理装置が有する機能の例（既存図形の一部として頂点が存在する場合）を説明するための図である。
【図６】情報処理装置が有する機能の例（既存図形の一部として交点が存在する場合）を説明するための図である。
【図７】情報処理装置が有する機能の例（２つの図形要素を接続する場合）を説明するための図である。
【図８】情報処理装置が有する機能の例（２つの図形要素を結合する場合）を説明するための図である。
【図９】情報処理装置が有する機能の例（２つの図形要素を接続する場合）を説明するための図である。
【図１０】情報処理装置が有する機能の例（２つの図形要素が交わる場合）を説明するための図である。
【図１１】情報処理装置が有する機能の例（２つの図形要素を平行にする場合）を説明するための図である。
【図１２】情報処理装置が有する機能の例（２つの図形要素を等辺にする場合及び重複する２つの図形要素のうちのいずれかを選択する場合）を説明するための図である。
【図１３】情報処理装置が有する機能の例（２つの線分の関係を直角にする場合）を説明するための図である。
【図１４】情報処理装置が有する機能の例（２つの図形要素を等角にする場合及び重複する２つの図形要素のうちのいずれかを選択する場合）を説明するための図である。
【図１５】情報処理装置が有する機能の例（図形要素に対してオブジェクトを接触する場合）を説明するための図である。
【図１６】情報処理装置が有する機能の例（図形要素に対してオブジェクトを接触する場合）を説明するための図である。
【図１７】情報処理装置の動作の流れの一例を示すフローチャートである。
【図１８】情報処理装置の基本動作（線分群の生成及び選択）を説明するための図である。
【図１９】情報処理装置の基本動作（円の生成及び選択）を説明するための図である。
【図２０】情報処理装置の基本動作（図形要素に対する制約）を説明するための図である。
【図２１】情報処理装置の基本動作（図形要素に対する制約）を説明するための図である。
【図２２】情報処理装置の基本動作（図形要素に対する制約）を説明するための図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１２】
また、以下の順序で説明を行う。
１．実施形態
１−１．情報処理装置の概要
１−２．情報処理装置の構成例
１−３．情報処理装置の動作の流れ
１−４．情報処理装置の基本動作
２．まとめ
【００１３】
＜１．実施形態＞
［１−１．情報処理装置の概要］
まず、本開示の実施形態に係る情報処理装置について説明する。図１は、本開示の実施形態に係る情報処理装置の概要を説明するための図である。図１に示すように、本開示の実施形態に係る情報処理装置１００は、表示装置１４０に線分を表示させることができる。図１には、表示装置１４０に表示される線分の例として、線分Ａ及び線分Ｂが示されているが、表示装置１４０に表示される線分の本数は特に限定されない。また、線分以外の図形（例えば、円など）が表示されてもよい。
【００１４】
また、情報処理装置１００は、入力装置１５０により移動操作の入力を受け付けた場合には、その移動操作に応じて線分を移動させることができる。例えば、図１に示すように、線分を移動させるためのコントロールポイントＣＰが線分の両端に表示されている場合には、このコントロールポイントＣＰを移動させる操作が移動操作として入力され得る。また、このように入力された移動操作に基づいて、コントロールポイントＣＰを端とする線分を移動させることができる。
【００１５】
本開示の実施形態では、入力装置１５０としてタッチパネルを使用する場合を想定する。この場合、ユーザが操作体（指、タッチペンなど）により移動対象を移動元から移動先までドラッグすることにより移動操作が供される。しかしながら、入力装置１５０は、タッチパネルに限定されない。例えば、入力装置１５０としては、マウス、キーボード、ジェスチャ認識による入力インタフェースなどを使用することもできる。
【００１６】
本開示の実施形態に係る情報処理装置１００は、例えば、スマートフォン、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの任意の種類の装置であってよい。また、本開示の実施形態に係る情報処理装置１００は、上述した装置に搭載される情報処理モジュールであってもよい。
【００１７】
［１−２．情報処理装置の構成例］
続いて、情報処理装置１００の構成例について説明する。図２は、情報処理装置１００のハードウェア構成を示す図である。図２に示すように、情報処理装置１００は、例えば、ＣＰＵ１１０、ＲＡＭ１２０、不揮発性メモリ１３０、表示装置１４０、入力装置１５０を備える。
【００１８】
不揮発性メモリ１３０は、情報処理装置１００の記憶部の一例として構成されたデータ格納用の装置であり、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。不揮発性メモリ１３０は、ＣＰＵ１１０により実行されるプログラムやその実行において使用される各種データを格納する。
【００１９】
ＲＡＭ１２０は、ＣＰＵ１１０により実行されるプログラムや、その実行において使用されるパラメータ等を記憶する。
【００２０】
ＣＰＵ１１０は、演算処理装置および制御装置として機能し、不揮発性メモリ１３０、ＲＡＭ１２０に記録された各種プログラムにしたがって、情報処理装置１００内の動作全般またはその一部を制御する。ＣＰＵ１１０は、情報処理装置１００の制御部の一例として構成される。
【００２１】
表示装置１４０は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ装置等、情報をユーザに対して視覚的に通知することが可能な装置により構成される。表示装置１４０は、例えば、情報処理装置１００により行われた各種処理により得られた結果を出力する。具体的には、表示装置１４０は、情報処理装置１００により行われた各種処理により得られた結果を、テキストまたはイメージで表示する。
【００２２】
入力装置１５０は、ユーザから取得した操作をＣＰＵ１１０に信号として出力する。情報処理装置１００のユーザは、入力装置１５０を操作することにより、情報処理装置１００に対して各種のデータを入力したり処理動作を指示したりすることができる。入力装置１５０は、例えば、タッチパネルにより構成されるが、入力装置１５０の種類は特に限定されない。例えば、入力装置１５０は、マウス、キーボード、ジェスチャ認識による入力インタフェースなどといった装置により構成されてもよい。
【００２３】
図３は、情報処理装置１００の機能構成を示す図である。図３に示すように、情報処理装置１００は、制御部１６０を含み、制御部１６０は、図形取得部１６１、表示制御部１６２、操作取得部１６３、判定部１６４及び処理部１６５を備える。図３に示すように、不揮発性メモリ１３０、入力装置１５０及び表示装置１４０は、情報処理装置１００により備えられてもよいが、情報処理装置１００の外部に備えられてもよい。
【００２４】
図形取得部１６１は、図形データを取得する。図形データは、典型的には１または複数の線分により構成されるが、線分に加えて曲線により構成されてもよい。あるいは線分の代わりに、曲線により構成されてもよい。曲線は、例えば、円や楕円、これらの一部であってもよい。図形データは、ＣＰＵ１１０により実行されるプログラムに組み込まれていてもよく、不揮発性メモリ１３０に記録されていてもよい。
【００２５】
情報処理装置１００は、図形取得部１６１により取得された図形データに基づいて、様々な機能を提供することができる。以下において、情報処理装置１００が有する機能の例を説明する。図４〜図１６は、情報処理装置１００が有する機能の例を説明するための図である。
【００２６】
図４は、情報処理装置１００が有する機能の例（図形データ生成）を示している。図４に示すように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。ユーザが情報処理装置１００に生成させようとする図形データは、例えば、画面１４０１ａ〜１４０４ａの各々に示されている。処理部１６５により生成された図形データは、表示装置１４０により表示されるように表示制御部１６２により制御される。
【００２７】
まず、ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。ユーザが行う操作は、例えば、画面１４０１ｂ〜１４０４ｂの各々に示されているようになされる。処理部１６５は、例えば、ユーザからの操作に基づいて、図形データを生成する。そのとき、処理部１６５は、例えば、操作の傾きの平均値が所定範囲から外れる点（画面１４０１ｃ〜１４０３ｃの各々に示されている点）を検出し、検出した点を頂点とする多角形を生成する。
【００２８】
表示制御部１６２は、処理部１６５により生成された図形データを表示するよう制御する。表示制御部１６２は、例えば、画面１４０１ｄ〜１４０４ｄの各々に示されているように、図形データを表示するよう制御する。表示されるタイミングは、例えば、ユーザによる操作が完了したとき（例えば、入力装置への操作が終わったとき）になされる。このように、処理部１６５は、多角形の頂点を全て決定した場合には、全ての線分の入力が完了していなくても未入力の線分を補償して図形データを生成することもできる。
【００２９】
表示制御部１６２は、例えば、画面１４０１ｅ〜１４０４ｅの各々に示されているように、図形データを表示するよう制御してもよい。すなわち、表示制御部１６２は、図形データに基づいてコントロールポイントを検出し、検出したコントロールポイントに何らかの印（画面１４０１ｅ〜１４０４ｅに示した例ではピン）が表示されるように制御してもよい。コントロールポイントは、画面１４０１ｅ〜１４０３ｅの各々に示されているように、線分の端点であってもよく、画面１４０４ｅに示されているように、円の中心や円周上の点であってもよい。
【００３０】
図５は、情報処理装置１００が有する機能の例（既存図形の一部として頂点が存在する場合）を示している。図５に示すように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。ユーザが情報処理装置１００に生成させようとする図形データは、例えば、画面１４０５ａ〜１４０８ａの各々に示されている。処理部１６５により生成された図形データは、表示装置１４０により表示されるように表示制御部１６２により制御される。
【００３１】
まず、ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。ユーザが行う操作は、例えば、画面１４０５ｂ〜１４０８ｂの各々に示されているようになされる。処理部１６５は、例えば、ユーザからの操作に基づいて、図形データを生成する。そのとき、処理部１６５は、例えば、操作の傾きの平均値が所定範囲から外れる点（画面１４０５ｂ〜１４０７ｂの各々に示されている点）を検出し、検出した点を頂点とする多角形を生成する。
【００３２】
表示制御部１６２は、処理部１６５により生成された図形データを表示するよう制御する。表示制御部１６２は、例えば、画面１４０５ｂ〜１４０８ｂの各々に示されているように、図形データを表示するよう制御する。表示されるタイミングは、例えば、ユーザによる操作が完了したとき（例えば、入力装置への操作が終わったとき）になされる。このように、処理部１６５は、多角形の頂点を全て決定した場合には、全ての線分の入力が完了していなくても未入力の線分を補償して図形データを生成することもできる。
【００３３】
ここで、ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００３４】
例えば、ユーザが行う操作は、画面１４０５ｃ〜１４０８ｃの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる１または複数の端点の全部を選択する操作であると判定する。例えば、画面１４０５ｃに示された例では、端点２つのうちの全てが選択されており、画面１４０６ｃに示された例では、端点３つのうちの全てが選択されており、画面１４０７ｃに示された例では、端点４つのうちの全てが選択されている。かかる場合には、処理部１６５は、例えば、図形データを選択する。
【００３５】
また、例えば、ユーザが行う操作は、画面１４０５ｄ〜１４０７ｄの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる１または複数の端点の一部を選択する操作であると判定する。例えば、画面１４０５ｄに示された例では、端点２つのうちの１つが選択されており、画面１４０６ｄに示された例では、端点３つのうちの２つが選択されており、画面１４０７ｃに示された例では、端点４つのうちの２つが選択されている。かかる場合には、処理部１６５は、例えば、新たに図形データを生成する。
【００３６】
新たに生成された図形は、例えば、画面１４０５ｄ〜１４０７ｄの各々に示されているように表示するよう表示制御部１６２により制御される。
【００３７】
図６は、情報処理装置１００が有する機能の例（既存図形の一部として交点が存在する場合）を示している。図６に示すように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。処理部１６５により生成された図形データは、例えば、画面１４０９ａ〜１４１１ａの各々に示されている。処理部１６５により生成された図形データは、表示装置１４０により表示されるように表示制御部１６２により制御される。
【００３８】
ここで、ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００３９】
例えば、ユーザが行う操作は、画面１４０９ｂに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる２つの交点を選択する操作であると判定する。例えば、画面１４０９ｂに示された例では、交点２つのうちの全てが選択されている。かかる場合には、処理部１６５は、例えば、２つの交点間を結ぶ線分を新たな図形データとして生成する。
【００４０】
また、例えば、ユーザが行う操作は、画面１４１０ｂに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる１つの交点と図形データに含まれる端点とを選択する操作であると判定する。例えば、画面１４１０ｂに示された例では、図形データに含まれる１つの交点と図形データに含まれる端点とが選択されている。かかる場合には、処理部１６５は、例えば、新たな図形データの生成を省略する。
【００４１】
また、例えば、ユーザが行う操作は、画面１４１１ｂに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる１つの交点と図形データに含まれない点とを選択する操作であると判定する。例えば、画面１４１１ｂに示された例では、図形データに含まれる１つの交点と図形データに含まれない点とが選択されている。かかる場合には、処理部１６５は、例えば、選択された１つの交点と図形データに含まれない点との間を結ぶ線分を新たな図形データとして生成する。
【００４２】
新たに生成された図形データは、例えば、画面１４０９ｃ、１４１１ｃの各々に示されているように表示するよう表示制御部１６２により制御される。
【００４３】
図７は、情報処理装置１００が有する機能の例（２つの図形要素を接続する場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを移動させることができる。ここで、移動対象の図形データを、画面１４１２ｂ、１４１２ｃの各々に示し、移動先に存在する図形データを、画面１４１５ａ、１４１６ａの各々に示す。
【００４４】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００４５】
例えば、ユーザが行う操作は、画面１４１５ｂ、画面１４１６ｂの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる端点を図形データに含まれる図形要素の位置に移動させる操作であると判定する。画面１４１５ｂに示された例では、１の線分の端点の位置が他の線分の端点の位置と一致又は近接するように１の線分を移動させる操作がなされている。また、画面１４１６ｂに示された例では、１の線分の端点の位置が円の中心の位置と一致又は近接するように１の線分を移動させる操作がなされている。
【００４６】
かかる場合には、処理部１６５は、図形データに含まれる端点を図形要素に接続させる。画面１４１５ｂに示された例では、処理部１６５は、１の線分の端点を他の線分の端点に接続させている。また、画面１４１６ｂに示された例では、処理部１６５は、１の線分の端点を円の中心に接続させている。接続された図形データは、例えば、画面１４１５ｂ、１４１６ｂの各々に示されているように表示するよう表示制御部１６２により制御される。接続後の２つの図形データは一体化されて取り扱われる（制約が発生する）こととしてもよい。
【００４７】
また、例えば、ユーザが行う操作は、画面１４１５ｃ、画面１４１６ｃの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる円の中心を図形データに含まれる図形要素の位置に移動させる操作であると判定する。画面１４１５ｃに示された例では、円の中心の位置が線分の端点の位置と一致又は近接するように円を移動させる操作がなされている。また、画面１４１６ｃに示された例では、円の中心の位置が他の円の中心の位置と一致又は近接するように円を移動させる操作がなされている。
【００４８】
かかる場合には、処理部１６５は、図形データに含まれる円の中心を図形要素に接続させる。画面１４１５ｃに示された例では、処理部１６５は、円の中心を線分の端点に接続させている。また、画面１４１６ｃに示された例では、処理部１６５は、円の中心を他の円の中心に接続させている。接続された図形データは、例えば、画面１４１５ｃ、１４１６ｃの各々に示されているように表示するよう表示制御部１６２により制御される。接続後の２つの図形データは一体化されて取り扱われる（制約が発生する）こととしてもよい。
【００４９】
図８は、情報処理装置１００が有する機能の例（２つの図形要素を結合する場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを移動させることができる。ここで、移動対象の図形データを、画面１４１７ｂ、１４１７ｃの各々に示し、移動先に存在する図形データを、画面１４１９ａ、１４２０ａの各々に示す。
【００５０】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００５１】
例えば、ユーザが行う操作は、画面１４１９ｂに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる端点を図形データに含まれる図形要素の位置に移動させる操作であると判定する。画面１４１９ｂに示された例では、１の線分の端点の各々の位置が他の線分の端点の各々の位置と一致又は近接するように１の線分を移動させる操作がなされている。
【００５２】
かかる場合には、処理部１６５は、図形データに含まれる線分を他の線分に結合させる。画面１４１９ｂに示された例では、処理部１６５は、１の線分を他の線分に結合させている。結合された図形データは、例えば、画面１４１９ｂに示されているように表示するよう表示制御部１６２により制御される。結合後の２つの図形データは一体化されて取り扱われる（制約が発生する）こととしてもよい。
【００５３】
また、例えば、ユーザが行う操作は、画面１４２０ｃに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる円の中心を図形データに含まれる図形要素の位置に移動させる操作であると判定する。画面１４２０ｃに示された例では、円の中心の位置が他の円の中心の位置と一致又は近接するように円を移動させる操作がなされている。
【００５４】
かかる場合には、処理部１６５は、図形データに含まれる円を図形要素に結合させる。画面１４２０ｃに示された例では、処理部１６５は、１の円を他の円に結合させている。結合された図形データは、例えば、画面１４２０ｃに示されているように表示するよう表示制御部１６２により制御される。結合後の２つの図形データは一体化されて取り扱われる（制約が発生する）こととしてもよい。
【００５５】
図９は、情報処理装置１００が有する機能の例（２つの図形要素を接続する場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを移動させることができる。ここで、移動対象の図形データを、画面１４２１ｂ、１４２１ｃの各々に示し、移動先に存在する図形データを、画面１４２２ａ、１４２３ａの各々に示す。
【００５６】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００５７】
例えば、ユーザが行う操作は、画面１４２２ｂ、画面１４２３ｂの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる端点を図形データに含まれる図形要素の位置に移動させる操作であると判定する。画面１４２２ｂに示された例では、１の線分の端点の位置が他の線分上の位置と一致又は近接するように１の線分を移動させる操作がなされている。また、画面１４２３ｂに示された例では、１の線分の端点の位置が円周上の位置と一致又は近接するように１の線分を移動させる操作がなされている。
【００５８】
かかる場合には、処理部１６５は、図形データに含まれる端点を図形要素に接続させる。画面１４２２ｂに示された例では、処理部１６５は、１の線分の端点を他の線分上の点に接続させている。また、画面１４２３ｂに示された例では、処理部１６５は、１の線分の端点を円周上の点に接続させている。接続された図形データは、例えば、画面１４２２ｂ、１４２３ｂの各々に示されているように表示するよう表示制御部１６２により制御される。接続後の２つの図形データは一体化されて取り扱われる（制約が発生する）こととしてもよい。
【００５９】
また、例えば、ユーザが行う操作は、画面１４２２ｃ、画面１４２３ｃの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる円の中心を図形データに含まれる図形要素の位置に移動させる操作であると判定する。画面１４２２ｃに示された例では、円の中心の位置が線分上の点の位置と一致又は近接するように円を移動させる操作がなされている。また、画面１４２３ｃに示された例では、円の中心の位置が他の円周上の点の位置と一致又は近接するように円を移動させる操作がなされている。
【００６０】
かかる場合には、処理部１６５は、図形データに含まれる円の中心を図形要素に接続させる。画面１４２２ｃに示された例では、処理部１６５は、円の中心を線分上の点に接続させている。また、画面１４２３ｃに示された例では、処理部１６５は、円の中心を他の円周上の位置に接続させている。接続された図形データは、例えば、画面１４２２ｃ、１４２３ｃの各々に示されているように表示するよう表示制御部１６２により制御される。接続後の２つの図形データは一体化されて取り扱われる（制約が発生する）こととしてもよい。
【００６１】
図１０は、情報処理装置１００が有する機能の例（２つの図形要素が交わる場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを移動させることができる。ここで、移動対象の図形データを、画面１４２４ｂ、１４２４ｃの各々に示し、移動先に存在する図形データを、画面１４２５ａ、１４２６ａの各々に示す。
【００６２】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００６３】
例えば、ユーザが行う操作は、画面１４２５ｂ、画面１４２６ｂの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる２つの図形要素が交わる位置に図形要素を移動させる操作であると判定する。画面１４２５ｂに示された例では、１の線分が他の線分と交わるように１の線分を移動させる操作がなされている。また、画面１４２６ｂに示された例では、１の線分が円と交わるように１の線分を移動させる操作がなされている。
【００６４】
かかる場合には、処理部１６５は、交点にコントロールポイントを生成する。画面１４２５ｂに示された例では、処理部１６５は、１の線分と他の線分との交点にコントロールポイントを生成している。また、画面１４２６ｂに示された例では、処理部１６５は、線分と円との交点にコントロールポイントを生成している。生成されたコントロールポイントにはピンを、例えば、画面１４２５ｂ、１４２６ｂの各々に示されているように表示するよう表示制御部１６２により制御される。交差後の２つの図形データの各々は一体化されずに取り扱われる（制約が発生しない）こととしてもよい。
【００６５】
また、例えば、ユーザが行う操作は、画面１４２５ｃ、画面１４２６ｃの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる２つの図形要素が交わる位置に図形要素を移動させる操作であると判定する。画面１４２５ｃに示された例では、円が線分と交わるように円を移動させる操作がなされている。また、画面１４２６ｃに示された例では、１の円が他の円と交わるように１の円を移動させる操作がなされている。
【００６６】
かかる場合には、処理部１６５は、交点にコントロールポイントを生成する。画面１４２５ｃに示された例では、処理部１６５は、円と線分との交点にコントロールポイントを生成している。また、画面１４２６ｃに示された例では、処理部１６５は、１の円と他の円との交点２箇所の各々にコントロールポイントを生成している。生成されたコントロールポイントにはピンを、例えば、画面１４２５ｃ、１４２６ｃの各々に示されているように表示するよう表示制御部１６２により制御される。交差後の２つの図形データの各々は一体化されずに取り扱われる（制約が発生しない）こととしてもよい。
【００６７】
図１１は、情報処理装置１００が有する機能の例（２つの図形要素を平行にする場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを選択することができる。ここで、生成された２つの線分（線分Ａ及び線分Ｂ）が、画面１４２７に示されている。
【００６８】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００６９】
例えば、ユーザが行う操作は、画面１４２７ａ、画面１４２７ｂの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が２つの図形要素を順に選択する操作（例えば、１の図形要素を選択した後、所定時間以内に他の図形要素を選択する操作）であると判定する。画面１４２７ａ、画面１４２７ｂに示された例では、線分Ａが選択された後、所定時間以内に線分Ｂが選択される操作がなされている。
【００７０】
かかる場合には、表示制御部１６２は、２つの図形要素が満たすべき関係を選択する選択画面（例えば、「平行」又は「等辺」を選択する画面）を表示させる。このとき、画面１４２７ｃに示したように、表示制御部１６２は、変更される図形要素と変更されない図形要素とを異なる色により表示するよう制御してもよい。ユーザは、入力装置１５０に対して２つの図形要素が満たすべき関係を選択する操作を行う。例えば、ユーザは２つの図形要素が満たすべき関係として「平行」を選択することができる。
【００７１】
処理部１６５は、判定部１６４により、２つの図形要素が満たすべき関係を選択する操作であると判定された場合に、かかる関係が満たされるように２つの図形要素のうちの少なくとも一方を変更する。例えば、処理部１６５は、２つの図形要素が満たすべき関係として「平行」を選択する操作がなされたと判定された場合に、かかる関係が満たされるように線分Ａ及び線分Ｂのうちの少なくとも一方を変更する。画面１４２７ｄに示した例では、処理部１６５は、線分Ａよりも後に選択された線分Ｂを回転させているが、線分Ａを回転させてもよい。また、線分Ａに比較的近い点を中心に線分Ｂを回転させているが、いずれの点を中心に回転させてもよい。
【００７２】
また、既に満たされている関係が選択された場合には、処理部１６５は、関係を満たすような処理を行う必要はない。例えば、画面１４２８に示されているように、２つの図形要素が既に「平行」であり、判定部１６４は、操作取得部１６３により取得された操作が２つの図形要素を順に選択する操作であると判定したとする。かかる場合には、表示制御部１６２は、２つの図形要素が満たすべき関係を選択する選択画面を表示させなくてもよい。したがって、処理部１６５は、かかる関係が満たされるように２つの図形要素を変更しなくてよい。
【００７３】
図１２の上欄は、情報処理装置１００が有する機能の例（２つの図形要素を等辺にする場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを選択することができる。ここで、生成された２つの線分（線分Ａ及び線分Ｂ）が、画面１４３０ａに示されている。
【００７４】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００７５】
例えば、ユーザが行う操作は、画面１４３０ａ、画面１４３０ｂの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が２つの図形要素を順に選択する操作（例えば、１の図形要素を選択した後、所定時間以内に他の図形要素を選択する操作）であると判定する。画面１４３０ａ、画面１４３０ｂに示された例では、線分Ａが選択された後、所定時間以内に線分Ｂが選択される操作がなされている。
【００７６】
かかる場合には、表示制御部１６２は、２つの図形要素が満たすべき関係を選択する選択画面（例えば、「平行」又は「等辺」を選択する画面）を表示させる。このとき、画面１４３０ｃに示したように、表示制御部１６２は、変更される図形要素と変更されない図形要素とを異なる色により表示するよう制御してもよい。ユーザは、入力装置１５０に対して２つの図形要素が満たすべき関係を選択する操作を行う。例えば、ユーザは２つの図形要素が満たすべき関係として「等辺」を選択することができる。
【００７７】
処理部１６５は、判定部１６４により、２つの図形要素が満たすべき関係を選択する操作であると判定された場合に、かかる関係が満たされるように２つの図形要素のうちの少なくとも一方を変更する。例えば、処理部１６５は、２つの図形要素が満たすべき関係として「等辺」を選択する操作がなされたと判定された場合に、かかる関係が満たされるように線分Ａ及び線分Ｂのうちの少なくとも一方を変更する。画面１４３０ｄに示した例では、処理部１６５は、線分Ａよりも後に選択された線分Ｂの長さを変更しているが、線分Ａの長さを変更してもよい。また、線分Ａに比較的近い点を中心に線分Ｂの長さを変更しているが、いずれの点を中心に長さを変更してもよい。
【００７８】
また、既に満たされている関係が選択された場合には、処理部１６５は、関係を満たすような処理を行う必要はない。
【００７９】
図１２の下欄は、情報処理装置１００が有する機能の例（重複する２つの図形要素のうちのいずれかを選択する場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを選択することができる。ここで、生成された２つの線分（線分ＡＢ及び線分ＡＣ）が、画面１４３１ａに示されている。２つの線分は、重複している。
【００８０】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００８１】
例えば、ユーザが行う操作は、画面１４３１ａに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が２つの頂点を順に選択する操作（例えば、１の頂点を選択した後、所定時間以内に他の頂点を選択する操作）であると判定する。画面１４３１ａに示された例では、頂点Ａが選択された後、所定時間以内に頂点Ｂが選択される操作がなされている。画面１４３１ｂに示された例では、頂点Ａが選択された後、所定時間以内に頂点Ｃが選択される操作がなされている。
【００８２】
かかる場合には、処理部１６５は、１の頂点から他の頂点までを結ぶ線分を選択する。画面１４３１ａに示した例では、処理部１６５は、頂点Ａから頂点Ｂまでを結ぶ線分ＡＢを選択している。画面１４３１ｂに示した例では、処理部１６５は、頂点Ａから頂点Ｃまでを結ぶ線分ＡＣを選択している。
【００８３】
図１３は、情報処理装置１００が有する機能の例（２つの線分の関係を直角にする場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを選択することができる。ここで、生成された２つの線分（線分Ａ及び線分Ｂ）が、画面１４３３ａに示されている。
【００８４】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００８５】
例えば、ユーザが行う操作は、画面１４３３ａ、画面１４３３ｂの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が２つの線分に挟まれた角を選択する操作（例えば、線分Ａ及び線分Ｂを１つのストロークによりなぞる操作）であると判定する。画面１４３３ａ、画面１４３３ｂに示された例では、線分Ａと線分Ｂとに挟まれた角が選択される操作がなされている。
【００８６】
かかる場合には、表示制御部１６２は、２つの線分が満たすべき関係を選択する選択画面（例えば、「直角」を選択する画面）を表示させる。ユーザは、入力装置１５０に対して２つの線分が満たすべき関係を選択する操作を行う。例えば、ユーザは２つの線分が満たすべき関係として「直角」を選択することができる。
【００８７】
処理部１６５は、判定部１６４により、２つの線分が満たすべき関係を選択する操作であると判定された場合に、かかる関係が満たされるように２つの線分のうちの少なくとも一方を変更する。例えば、処理部１６５は、２つの線分が満たすべき関係として「直角」を選択する操作がなされたと判定された場合に、かかる関係が満たされるように線分Ａ及び線分Ｂのうちの少なくとも一方を変更する。画面１４３３ｄに示した例では、処理部１６５は、線分Ａよりも後に選択された線分Ｂの傾きを変更しているが、線分Ａの傾きを変更してもよい。
【００８８】
また、２つの線分が交わっていない場合には、処理部１６５は、関係を満たすような処理を行う必要はない。例えば、画面１４３４ａに示されているように、２つの線分が交わっておらず、判定部１６４は、操作取得部１６３により取得された操作が２つの線分に挟まれた角を選択する操作であると判定したとする。かかる場合には、表示制御部１６２は、２つの線分が満たすべき関係を選択する選択画面を表示させなくてもよい。したがって、処理部１６５は、かかる関係が満たされるように２つの線分を変更しなくてよい。
【００８９】
また、例えば、ユーザが行う操作は、画面１４３４ｂ、画面１４３４ｃの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が２つの線分の交点を選択する操作（例えば、交点を挟む２つの線分を１つのストロークによりなぞる操作）であると判定する。画面１４３４ｂ、画面１４３４ｃに示された例では、線分Ａと線分Ｂとの交点が選択される操作がなされている。
【００９０】
かかる場合には、表示制御部１６２は、２つの線分が満たすべき関係を選択する選択画面（例えば、「直角」を選択する画面）を表示させる。ユーザは、入力装置１５０に対して２つの線分が満たすべき関係を選択する操作を行う。例えば、ユーザは２つの線分が満たすべき関係として「直角」を選択することができる。
【００９１】
処理部１６５は、判定部１６４により、２つの線分が満たすべき関係を選択する操作であると判定された場合に、かかる関係が満たされるように２つの線分のうちの少なくとも一方を変更する。例えば、処理部１６５は、２つの線分が満たすべき関係として「直角」を選択する操作がなされたと判定された場合に、かかる関係が満たされるように線分Ａ及び線分Ｂのうちの少なくとも一方を変更する。画面１４３４ｄに示した例では、処理部１６５は、線分Ｂの傾きを変更しているが、線分Ａの傾きを変更してもよい。
【００９２】
図１４の上欄は、情報処理装置１００が有する機能の例（２つの図形要素を等角にする場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを選択することができる。ここで、生成された３つの頂点（頂点Ａ、頂点Ｂ及び頂点Ｃ）が、画面１４３３ａに示されている。
【００９３】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００９４】
例えば、ユーザが行う操作は、画面１４３３ａ、画面１４３３ｂ及び画面１４３３ｃの各々に示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が２つの図形要素を順に選択する操作（例えば、１の図形要素を選択した後、所定時間以内に他の図形要素を選択する操作）であると判定する。画面１４３３ａ、画面１４３３ｂ及び画面１４３３ｃに示された例では、頂点Ａが選択された後、所定時間以内に頂点Ｂが選択される操作がなされている。
【００９５】
かかる場合には、表示制御部１６２は、２つの図形要素が満たすべき関係を選択する選択画面（例えば、「等角」を選択する画面）を表示させる。ユーザは、入力装置１５０に対して２つの図形要素が満たすべき関係を選択する操作を行う。例えば、ユーザは２つの図形要素が満たすべき関係として「等角」を選択することができる。
【００９６】
処理部１６５は、判定部１６４により、２つの図形要素が満たすべき関係を選択する操作であると判定された場合に、かかる関係が満たされるように図形要素を変更する。例えば、処理部１６５は、２つの図形要素が満たすべき関係として「等角」を選択する操作がなされたと判定された場合に、かかる関係が満たされるように図形要素を変更する。画面１４３３ｄに示した例では、処理部１６５は、角度Ａと角度Ｂとが等しくなるように、頂点Ｃを線分ＡＢに対して平行に移動させている。
【００９７】
図１４の下欄は、情報処理装置１００が有する機能の例（重複する２つの図形要素のうちのいずれかを選択する場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、生成した図形データを選択することができる。ここで、生成された４つの頂点（頂点Ａ、頂点Ｂ、頂点Ｃ及び頂点Ｄ）が、画面１４３４ａに示されている。角ＡＢＤと角ＡＢＣとは、重複している。
【００９８】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【００９９】
例えば、ユーザが行う操作は、画面１４３４ａ、画面１４３４ｃに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が３つの頂点を順に選択する操作であると判定する。かかる場合には、処理部１６５は、３つの頂点により指定される角を選択する。画面１４３４ｂに示した例では、処理部１６５は、頂点Ａ、頂点Ｂ及び頂点Ｄにより指定される角ＡＢＤを選択している。画面１４３４ｄに示した例では、処理部１６５は、頂点Ａ、頂点Ｂ及び頂点Ｃにより指定される角ＡＢＣを選択している。
【０１００】
図１５は、情報処理装置１００が有する機能の例（図形要素に対してオブジェクトを接触する場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、オブジェクトＯｂｊ（例えば、定規など）を移動させることができる。ここで、移動対象のオブジェクトＯｂｊと２つの図形要素（例えば、線分Ａ及び線分Ｂ）を、画面１４３７ａに示す。
【０１０１】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【０１０２】
例えば、ユーザが行う操作は、画面１４３７ｂに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる図形要素に対してオブジェクトＯｂｊを移動させる操作であると判定する。画面１４３７ｂに示された例では、線分Ａと線分Ｂとに挟まれている角に接触するようにオブジェクトＯｂｊを移動させる操作がなされている。
【０１０３】
かかる場合には、処理部１６５は、オブジェクトの形状に基づいて図形要素を変更する。画面１４３７ｃに示された例では、処理部１６５は、オブジェクトＯｂｊの形状に基づいて、線分Ａ及び線分Ｂの傾きを変更している。変更された線分Ａ及び線分Ｂは、例えば、画面１４３７ｃに示されているように表示するよう表示制御部１６２により制御される。変更後の線分Ａ及び線分Ｂは一体化されて取り扱われる（制約が発生する）こととしてもよい。また、オブジェクトＯｂｊが線分Ａ及び線分Ｂにより挟まれた角から外された場合、制約が解除されることとしてもよい。
【０１０４】
図１６は、情報処理装置１００が有する機能の例（図形要素に対してオブジェクトを接触する場合）を示している。上記したように、処理部１６５は、ユーザからの操作に基づいて図形データを生成することができる。また、処理部１６５は、ユーザからの操作に基づいて、オブジェクトＯｂｊ（例えば、定規など）を移動させることができる。ここで、移動対象のオブジェクトＯｂｊと２つの図形要素（例えば、線分Ａ及び線分Ｂ）を、画面１４３８ａに示す。
【０１０５】
ユーザは、入力装置１５０に対して操作（例えば、なぞる操作）を行う。続いて、操作取得部１６３は、ユーザによる操作を取得し、判定部１６４は、操作取得部１６３により取得された操作を判定する。処理部１６５は、判定部１６４による判定に基づいて図形データに対する処理を行う。
【０１０６】
例えば、ユーザが行う操作は、画面１４３８ｂに示されているようになされる。このとき、判定部１６４は、操作取得部１６３により取得された操作が図形データに含まれる図形要素に対してオブジェクトＯｂｊを移動させる操作であると判定する。画面１４３８ｂに示された例では、線分Ｂに接触するようにオブジェクトＯｂｊを移動させる操作がなされている。
【０１０７】
かかる場合には、処理部１６５は、オブジェクトの形状に基づいて図形要素を変更する。画面１４３８ｃに示された例では、処理部１６５は、オブジェクトＯｂｊの形状に基づいて、線分Ａ及び線分Ｂの傾きを変更している。変更された線分Ａ及び線分Ｂは、例えば、画面１４３８ｃに示されているように表示するよう表示制御部１６２により制御される。変更後の線分Ａ及び線分Ｂは一体化されて取り扱われる（制約が発生する）こととしてもよい。また、オブジェクトＯｂｊが線分Ｂから離された場合、制約が解除されることとしてもよい。
【０１０８】
［１−３．情報処理装置の動作の流れ］
図１７は、情報処理装置１００の動作の流れの一例を示すフローチャートである。まず、処理部１６５は、ドラッグ操作の軌跡を解析して推定図形を生成する（ステップＳ１１）。推定図形は、上記した例では、線分や円などに相当する。判定部１６４は、推定図形と既存図形との隣接があるか否かを判定する（ステップＳ１２）。判定部１６４により、推定図形と既存図形との隣接がないと判定された場合には（ステップＳ１２で「Ｎｏ」）、処理部１６５は、推定図形を補正し（ステップＳ１４）、新規図形を生成し（ステップＳ１５）、ステップＳ１６に進む。
【０１０９】
判定部１６４により、推定図形と既存図形との隣接があると判定された場合には（ステップＳ１２で「Ｙｅｓ」）、処理部１６５は、既存図形を選択し（ステップＳ１３）、ステップＳ１６に進む。動作終了の場合には（ステップＳ１６で「Ｙｅｓ」）、動作が終了されるが、動作継続の場合には（ステップＳ１６で「Ｎｏ」）、ステップＳ１１に戻って動作が継続される。
【０１１０】
［１−４．情報処理装置の基本動作］
図１８は、情報処理装置１００の基本動作（線分群の生成及び選択）を説明するための図である。図１８に示すように、操作取得部１６３により取得された頂点に基づいて、推定図形を生成することができる。処理部１６５は、画面１４４１ａに示した例では、頂点Ｐ０Ｐｎに基づいて、線分Ｐ０Ｐｎを推定図形として生成できる。また、処理部１６５は、画面１４４２ａに示した例では、頂点Ｐ０ＰｉＰｎに基づいて、線分群Ｐ０ＰｉＰｎを推定図形として生成できる。また、処理部１６５は、画面１４４３ａに示した例では、頂点Ｐ０ＰｉＰｌＰｎに基づいて、線分群Ｐ０ＰｉＰｌＰｎを推定図形として生成できる。また、処理部１６５は、画面１４４４ａに示した例では、頂点Ｐ０ＰｉＰｌＰｋＰｎに基づいて、線分群Ｐ０ＰｉＰｌＰｋＰｎを推定図形として生成できる。
【０１１１】
かかる場合、判定部１６４は、推定図形と既存図形との重複を判定して、処理部１６５は、その重複部分に基づいて、図形要素を選択する。処理部１６５は、画面１４４１ｂに示した例では、重複する頂点Ｐ０Ｐｎに基づいて、線分Ｐ０Ｐｎを選択できる。また、処理部１６５は、画面１４４２ｂに示した例では、重複する頂点Ｐ０ＰｉＰｎに基づいて、角Ｐ０ＰｉＰｎを選択できる。また、処理部１６５は、画面１４４３ｂに示した例では、重複する頂点Ｐ０ＰｉＰｌに基づいて、領域Ｐ０ＰｉＰｌを選択できる。また、処理部１６５は、画面１４４４ｂに示した例では、重複する頂点Ｐ０ＰｉＰｌＰｋに基づいて、領域Ｐ０ＰｉＰｌＰｋを選択できる。
【０１１２】
また、処理部１６５は、新規に図形要素を生成することもできる。処理部１６５は、画面１４４１ｃに示した例では、頂点Ｐ０Ｐｎに基づいて、線分Ｐ０Ｐｎを生成できる。また、処理部１６５は、画面１４４２ｃに示した例では、頂点Ｐ０ＰｉＰｎに基づいて、三角形Ｐ０ＰｉＰｎを生成できる。また、処理部１６５は、画面１４４３ｃに示した例では、頂点Ｐ０ＰｉＰｌＰｎに基づいて、四角形Ｐ０ＰｉＰｌＰｎを生成できる。また、処理部１６５は、画面１４４４ｃに示した例では、図形を生成しないこととしているが、頂点Ｐ０ＰｉＰｌＰｋＰｎに基づいて、五角形Ｐ０ＰｉＰｌＰｋＰｎを生成してもよい。
【０１１３】
図１９は、情報処理装置１００の基本動作（円の生成及び選択）を説明するための図である。図１９に示すように、操作取得部１６３により取得された頂点に基づいて、推定図形を生成することができる。処理部１６５は、画面１４４６ａに示した例では、頂点Ｐ０Ｐｎに基づいて、弧Ｐ０Ｐｎを推定図形として生成できる。また、処理部１６５は、画面１４４７ａに示した例では、頂点Ｐ０Ｐｎに基づいて、弧Ｐ０Ｐｎを推定図形として生成できる。
【０１１４】
かかる場合、判定部１６４は、推定図形と既存図形との重複を判定して、処理部１６５は、その重複部分に基づいて、図形要素を選択する。処理部１６５は、画面１４４６ｂに示した例では、重複する頂点Ｐ０Ｐｎに基づいて、弧Ｐ０Ｐｎを選択できる。また、処理部１６５は、画面１４４７ｂに示した例では、重複する頂点Ｐ０Ｐｎに基づいて、弧Ｐ０Ｐｎを選択できる。
【０１１５】
また、処理部１６５は、新規に図形要素を生成することもできる。処理部１６５は、画面１４４６ｃに示した例では、図形を生成しないこととしているが、頂点Ｐ０Ｐｎに基づいて、弧Ｐ０Ｐｎを生成してもよい。また、処理部１６５は、画面１４４７ｃに示した例では、頂点Ｐ０Ｐｎに基づいて、弧Ｐ０Ｐｎを生成している。
【０１１６】
図２０〜図２２は、情報処理装置１００の基本動作（図形要素に対する制約）を説明するための図である。図２０〜図２２に示すように、処理部１６５は、図形要素に対して制約を与えることができる。処理部１６５は、画面１４５１ａに示したように、２つの頂点に対して「距離＝０」という制約を与えることができる。また、処理部１６５は、画面１４５１ｂに示したように、２つの線分に対して「距離＝０、角度＝０」という制約を与えることができる。また、処理部１６５は、画面１４５１ｃに示したように、線分及び円に対して「距離＝ｒ」という制約を与えることができる。「距離」が「ｒ」に近づくにつれて徐々に外力が働くようにしてもよい。
【０１１７】
また、処理部１６５は、画面１４５２ａに示したように、２つの線分に対して「角度＝０」という制約を与えることにより２つの線分を平行に維持することができる。また、処理部１６５は、画面１４５２ｂに示したように、２つの線分に対して「角度＝９０又は２７０」という制約を与えることにより２つの線分を垂直に維持することができる。
【０１１８】
また、処理部１６５は、画面１４５３ａに示したように、２つの線分の各々の長さに対して「長さ１＝長さ２」という制約を与えることにより２つの線分の長さを等しく維持することができる。「長さ１」が「長さ２」に近づくにつれて徐々に外力が働くようにしてもよい。また、処理部１６５は、画面１４５３ｂに示したように、２つの角に対して「角度１＝角度２」という制約を与えることにより角を垂直に維持することができる。
【０１１９】
＜２．まとめ＞
本節で説明した実施形態によれば、ユーザによる操作を取得し、取得した操作に対する判定結果に基づいて図形データに対する処理を行うことができる。したがって、ユーザによる操作を自動的に判別して操作に応じて図形データに関する処理を行うことができる。
【０１２０】
本開示の技術は、例えば、描画ツールを使いながら説明を行うような場合（リアルタイムによる授業を行う場合、プレゼンテーションを行う場合など）に特に有効である。例えば、ユーザが描画ツールを使用して描画しながら説明を行う場合、ユーザは描画ツールから操作（例えば、オブジェクトの移動など）を選択し、その後に処理対象とする図形要素を選択する必要があり、操作が煩雑である。本開示の技術によれば、ユーザによる操作を自動的に判別して操作に応じて図形データに関する処理を行うことができるため、容易に操作を行うことができる。
【０１２１】
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられるコンピュータ読取可能な記録媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に読み込まれ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサにより実行される。
【０１２２】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１２３】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
図形データを取得する図形取得部と、
ユーザによる操作を取得する操作取得部と、
前記操作取得部により取得された前記操作を判定する判定部と、
前記判定部による判定に基づいて前記図形データに対する処理を行う処理部と、
を備える、情報処理装置。
（２）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の一部を選択する操作であると判定された場合に、新たな図形を生成する、
前記（１）に記載の情報処理装置。
（３）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の全部を選択する操作であると判定された場合に、前記図形データを選択する、
前記（１）又は（２）に記載の情報処理装置。
（４）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる２つの交点を選択する操作であると判定された場合に、前記２つの交点間を結ぶ線分を新たな図形データとして生成する、
前記（１）〜（３）のいずれか１項に記載の情報処理装置。
（５）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１つの交点と前記図形データに含まれない点とを選択する操作であると判定された場合に、前記１つの交点と前記図形データに含まれない点との間を結ぶ線分を新たな図形データとして生成する、
前記（１）〜（４）のいずれか１項に記載の情報処理装置。
（６）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる端点を前記図形データに含まれる図形要素の位置に移動させる操作であると判定された場合に、前記端点を前記図形要素に接続させる、
前記（１）〜（５）のいずれか１項に記載の情報処理装置。
（７）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる２つの図形要素を選択する操作及び前記２つの図形要素が満たすべき関係を選択する操作であると判定された場合に、前記関係が満たされるように前記２つの図形要素のうちの少なくとも一方を変更する、
前記（１）〜（６）のいずれか１項に記載の情報処理装置。
（８）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる図形要素に対してオブジェクトを接触させる操作であると判定された場合に、前記オブジェクトの形状に基づいて前記図形要素を変更する、
前記（１）〜（７）のいずれか１項に記載の情報処理装置。
（９）
コンピュータを、
図形データを取得する図形取得部と、
ユーザによる操作を取得する操作取得部と、
前記操作取得部により取得された前記操作を判定する判定部と、
前記判定部による判定に基づいて前記図形データに対する処理を行う処理部と、
を備える、情報処理装置として機能させるためのプログラム。
（１０）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の一部を選択する操作であると判定された場合に、新たな図形を生成する、
前記（９）に記載のプログラム。
（１１）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１または複数の端点の全部を選択する操作であると判定された場合に、前記図形データを選択する、
前記（９）又は（１０）に記載のプログラム。
（１２）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる２つの交点を選択する操作であると判定された場合に、前記２つの交点間を結ぶ線分を新たな図形データとして生成する、
前記（９）〜（１１）のいずれか１項に記載のプログラム。
（１３）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる１つの交点と前記図形データに含まれる端点とを選択する操作であると判定された場合に、前記１つの交点と前記端点との間を結ぶ線分を新たな図形データとして生成する、
前記（９）〜（１２）のいずれか１項に記載のプログラム。
（１４）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる端点を前記図形データに含まれる図形要素の位置に移動させる操作であると判定された場合に、前記端点を前記図形要素に接続させる、
前記（９）〜（１３）のいずれか１項に記載のプログラム。
（１５）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる２つの図形要素を選択する操作及び前記２つの図形要素が満たすべき関係を選択する操作であると判定された場合に、前記関係が満たされるように前記２つの図形要素のうちの少なくとも一方を変更する、
前記（９）〜（１４）のいずれか１項に記載のプログラム。
（１６）
前記処理部は、
前記判定部により、前記操作取得部により取得された前記操作が前記図形データに含まれる図形要素に対してオブジェクトを接触させる操作であると判定された場合に、前記オブジェクトの形状に基づいて前記図形要素を変更する、
前記（９）〜（１５）のいずれか１項に記載のプログラム。
（１７）
図形データを取得することと、
ユーザによる操作を取得することと、
前記操作取得部により取得された前記操作を判定することと、
前記判定部による判定に基づいて前記図形データに対する処理を行うことと、
を含む、情報処理方法。
【符号の説明】
【０１２４】
１００  情報処理装置
１１０  ＣＰＵ
１２０  ＲＡＭ
１３０  不揮発性メモリ
１４０  表示装置
１５０  入力装置
１６０  制御部
１６１  図形取得部
１６２  表示制御部
１６３  操作取得部
１６４  判定部
１６５  処理部
【図１】
2012256270.tif 000003
【図２】
2012256270.tif 000004
【図３】
2012256270.tif 000005
【図４】
2012256270.tif 000006
【図５】
2012256270.tif 000007
【図６】
2012256270.tif 000008
【図７】
2012256270.tif 000009
【図８】
2012256270.tif 000010
【図９】
2012256270.tif 000011
【図１０】
2012256270.tif 000012
【図１１】
2012256270.tif 000013
【図１２】
2012256270.tif 000014
【図１３】
2012256270.tif 000015
【図１４】
2012256270.tif 000016
【図１５】
2012256270.tif 000017
【図１６】
2012256270.tif 000018
【図１７】
2012256270.tif 000019
【図１８】
2012256270.tif 000020
【図１９】
2012256270.tif 000021
【図２０】
2012256270.tif 000022
【図２１】
2012256270.tif 000023
【図２２】
2012256270.tif 000024