(57)【特許請求の範囲】
【請求項１】
筆記手段と、オブジェクトを表示する入力面と、を備えるリンク生成装置であって、
前記筆記手段が、前記入力面に接地した始点から離れる終点までの前記入力面上での移動軌跡（以下、ストローク）の各座標点列を記憶する入力手段と、
前記入力手段から得られた前記ストロークの始点から終点までの座標点列につき、当該座標点列の連続する2点間を結ぶ線分が、他の連続する2点間を結ぶ線分と交差する回数（以下、自己交差回数）を検出する検出手段と、
前記入力手段から得られた前記ストロークの始点から終点までの座標点列につき、当該座標点列の連続する2点間を結ぶ線分と交差するオブジェクトを前記ストロークの始点から順に検出し、かつ、前記検出されたオブジェクトの前記順を保持するオブジェクト検出手段と、
前記オブジェクト検出手段で検出された前記順が連続するオブジェクト間に、前記自己交差回数に基づいて決定される線種でリンクを生成するリンク生成手段と、
を備えることを特徴とするリンク生成装置。
【請求項２】
前記リンク生成手段はさらに、前記オブジェクト検出手段で検出された前記線分と交差するオブジェクトのうち、前記ストロークの始点に最も近いオブジェクトと前記ストロークの終点に最も近いオブジェクトとの間にリンクを生成することを特徴とする請求項１記載のリンク生成装置。
【請求項３】
前記リンク生成手段は、前記自己交差回数に基づいて、リンクの始点又は終点の表示状態を変更することを特徴とする請求項１又は２記載のリンク生成装置。
【請求項４】
計算システム用のユーザインタフェース装置で用いられることを特徴とする請求項１から３のいずれか1項に記載のリンク生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算用のコンピュータのグラフィカルユーザインタフェース（ＧＵＩ）に関し、詳細には、コンピュータのグラフィックオブジェクト間のリンク情報を編集するユーザインタフェース装置で用いて好適なリンク生成装置に関する。
【０００２】
【従来の技術】
マウス、スタイラスペン、タッチパネルなどの入力装置と、ビットマップディスプレイなどの表示装置を用いた計算機用のグラフィカルユーザインタフェースの発達により、視覚的に表現されたグラフィカルオブジェクト（以下オブジェクト）を操作するアプリケーションソフトウェアが数多く開発されている。これらのアプリケーションソフトウェアでは、表示装置に表示されたオブジェクトからマウスなどの入力装置でクリックしたオブジェクトを選択状態として、さまざまな編集操作を行う。
【０００３】
上述のような編集操作のひとつに、少なくとも２つ以上のオブジェクトの間を線分（あるいは線分群）や矢印付の線分（あるいは線分群）で結び、オブジェクト間に何らかの関係性がある状態を持たせる「リンク」の編集がある。
リンク編集操作では、ユーザは複数のオブジェクトを選択状態にする操作と、さらにリンクの編集する操作を行う必要があるため、グラフィカルユーザインタフェースとしての操作性の向上が望まれている。
【０００４】
グラフィカルユーザインタフェースの操作性向上を目的とする従来技術としては、ストローク形状を検出してストロークが交差したオブジェクトを選択状態とする方法が提案されている（例えば、特許文献１）。
【０００５】
【特許文献１】
特開平１０−４９７００号公報
【０００６】
【発明が解決しようとする課題】
しかし、上記従来技術では、複数のオブジェクトを選択したり、選択状態を変更することはできるが、選択したオブジェクト間のリンク情報を生成したり編集したりするには、ユーザはさらに別途リンク情報の編集操作を加える必要があり、操作性が非常に悪くなる恐れがある。
また、リンク情報には、リンクの始点と終点を示す情報が必要であるが、従来技術では、オブジェクトの始点や終点といった概念抜きに選択状態にしてしまうため、選択後のリンク編集が非常に困難である。
さらに、リンクは線分や矢印付き線分といった様々な視覚的属性を持つため、従来技術では上述の操作に加えて、さらにリンクの線分の線種を選択するなどの操作が必要になってしまう。
【０００７】
本発明の目的は上記従来の問題点に鑑み、オブジェクト間のリンク情報を生成したり編集したりする際の操作性の向上を目的とするリンク生成装置、方法、プログラム及び記録媒体を提供することにある。
【０００８】
【課題を解決するための手段】
上記の目的を達成するために本発明によるリンク生成装置は、筆記手段と、オブジェクトを表示する入力面と、を備えるリンク生成装置であって、前記筆記手段が、前記入力面に接地した始点から離れる終点までの前記入力面上での移動軌跡（以下、ストローク）の各座標点列を記憶する入力手段と、前記入力手段から得られた前記ストロークの始点から終点までの座標点列につき、当該座標点列の連続する2点間を結ぶ線分が、他の連続する2点間を結ぶ線分と交差する回数（以下、自己交差回数）を検出する検出手段と、前記入力手段から得られた前記ストロークの始点から終点までの座標点列につき、当該座標点列の連続する2点間を結ぶ線分と交差するオブジェクトを前記ストロークの始点から順に検出し、かつ、前記検出されたオブジェクトの前記順を保持するオブジェクト検出手段と、前記オブジェクト検出手段で検出された前記順が連続するオブジェクト間に、前記自己交差回数に基づいて決定される線種でリンクを生成するリンク生成手段と、を備えることを特徴とするものである。
【００１１】
すなわち、請求項１記載の発明は、筆記手段と、オブジェクトを表示する入力面と、を備えるリンク生成装置であって、前記筆記手段が、前記入力面に接地した始点から離れる終点までの前記入力面上での移動軌跡（以下、ストローク）の各座標点列を記憶する入力手段と、前記入力手段から得られた前記ストロークの始点から終点までの座標点列につき、当該座標点列の連続する2点間を結ぶ線分が、他の連続する2点間を結ぶ線分と交差する回数（以下、自己交差回数）を検出する検出手段と、前記入力手段から得られた前記ストロークの始点から終点までの座標点列につき、当該座標点列の連続する2点間を結ぶ線分と交差するオブジェクトを前記ストロークの始点から順に検出し、かつ、前記検出されたオブジェクトの前記順を保持するオブジェクト検出手段と、前記オブジェクト検出手段で検出された前記順が連続するオブジェクト間に、前記自己交差回数に基づいて決定される線種でリンクを生成するリンク生成手段と、を備えることを特徴とするリンク生成装置である。
【００１２】
請求項２記載の発明は、請求項１記載の発明において、前記リンク生成手段はさらに、前記オブジェクト検出手段で検出された前記線分と交差するオブジェクトのうち、前記ストロークの始点に最も近いオブジェクトと前記ストロークの終点に最も近いオブジェクトとの間にリンクを生成することを特徴とするリンク生成装置である。
【００１３】
請求項３記載の発明は、請求項１又は２記載の発明において、前記リンク生成手段は、前記自己交差回数に基づいて、リンクの始点又は終点の表示状態を変更することを特徴とするリンク生成装置である。
【００１４】
請求項４記載の発明は、請求項１から３のいずれか１項記載の発明において、計算システム用のユーザインタフェース装置で用いられることを特徴とするリンク生成装置である。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態を図面と共に説明する。
まず、図２について本実施の形態で用いるリンクの概念を説明する。
図２（ａ）では、表示装置上に四角１、丸２、三角３の三つのオブジェクトが配置されており、四角１と三角３は線分４、四角１と丸２は矢印付き線分５によって結ばれている。
【００２７】
このように表示装置上に表示されるオブジェクト間に線分４や矢印付き線分５を描画することで、オブジェクト間に何らかの関係付けが成されていることを視覚的にユーザに伝えるものをリンクと定義する。
リンクは、例えば図表用アプリケーションソフトウェアやプレゼンテーションソフトウェアなどに多く見られる機能である。
【００２８】
図２（ｂ）はリンクの他のバリエーションを示している。リンクは「四角１→丸２→五角形６」のように２つ以上のオブジェクトが連なる場合もある。この場合、四角１と丸２は線分７で結ばれているが、丸２と五角形６をつなぐ部分は線分ではなく曲線８である。このように、視覚的にオブジェクト間に関係があることを示すことが分かるものもリンクとして扱うことができる。
【００２９】
また、四角１と三角３の間は点線の線分９で結ばれている。このように、視覚的な属性は単純な実線だけでなく、色属性、線種、線幅など様々な視覚効果属性を持つものもリンクとして扱うことができる。
本実施の形態は、上述のようなリンクを生成したり編集する際の操作性を向上する方法を提供するものである。
【００３０】
図１は本発明の実施の形態によるユーザインタフェース装置に搭載されるリンク生成装置の構成を示すブロック図である。
図１において、入力部１００は、マウス、スタイラスペン、タッチパネルなどからの座標点列（以下ストローク）を取得する。ストロークとは、入力部１００のボタンやペンなどの筆記手段が入力部１００の入力面に接地した状態から離れる状態までの（x,y） の座標点を所定の時間間隔でサンプリングした座標点の列である。ストロークの詳細については後述する。
【００３１】
形状検出部１０１は、入力部１００で取得したストロークのうちの座標点列から、この座標点列が形成した１つ以上の特定形状を検出する。オブジェクト検出部１０２は、形状検出部１０１で検出した形状を形成するストローク座標点列の連続する２点間を結ぶ線分がオブジェクトに内包されるか交差する場合に、そのオブジェクトを選択状態とする。リンク生成部１０３は、オブジェクト検出部１０２で検出したオブジェクト間に形状検出部１０１で検出したストロークの形状に従ってリンク状態を生成する。
【００３２】
次に、図３を参照してストロークの概念を説明する。
ストロークは手、ペン、ボタンなどの筆記手段が入力面に接地した点から移動した後、筆記手段が接面から離れるまでの０番目からｎ番目までの座標点列をサンプリングしたものである。例えばｉ番目の座標点は、水平方向をｘ、垂直方向をｙとすると（x[i],y[i] ）のように表すことができる。
【００３３】
以下説明を簡単にするために、コンピュータ言語であるＣ言語の構造体形式の書式を用いて説明する。
オブジェクトのデータ構造を表す構造体OBJECTは以下のように定義できる。
typedef struct [
int x[NMAX];
int y[NMAX];
int n;
bool isLink;
int larray[LINKMAX];
int ln;
] OBJECT;
OBJECT obj[OBJMAX];
int max;
【００３４】
ここで、x[],y[] は、ストロークを構成する水平方向、垂直方向の座標点であり、NMAXは配列の最大数を示す所定の定数である。ｎはストロークの座標点数である。
isLinkは、真偽値（真True，偽False ）を持つ変数であり、Trueの場合はそのオブジェクトがリンクオブジェクトであることを示し、False の場合はリンク以外のオブジェクトであることを示している。
【００３５】
larray[]は、オブジェクトがリンクオブジェクトの場合、そのリンクオブジェクトがリンクするオブジェクトobj[] のインデックス番号を順次保持する配列であり、LINKMAX はその配列の最大数を示す所定の定数である。
１ｎはオブジェクトがリンクオブジェクトの場合に、そのリンクオブジェクトがリンクするオブジェクトの個数を保持するための変数である。
obj[] はOBJECT型の構造体を持つ配列であり、OBJMAXはobj[] 配列の最大数を保持する所定の定数である。max は現時点でのオブジェクトの個数を保持する変数である。
【００３６】
図４は入力部１００の処理を示すフローチャートである。
ユーザはまずリンクオブジェクトを生成するのか、通常オブジェクトを生成するのかを選択する（ステップＳ１、以下ステップ略）。通常オブジェクトとは、リンクオブジェクト以外のストローク描画物などのことである。次に、筆記手段が入力部１００の入力面の (x,y ) の位置に接地すると（Ｓ２）、まずobj[] 配列のオブジェクトの個数を保持するmax を１インクリメントする（Ｓ３）。次に、obj[max].nを０に初期化する（Ｓ４）。
【００３７】
次に、ユーザが筆記手段を入力面上で（x',y' ）の位置に移動させたとすると（Ｓ５）、筆記手段が入力面から離れたかどうかを判断する（Ｓ６）。筆記手段が接地したままの場合（Ｓ６、ＮＯ）、obj[max].x[obj[max].n]にx'を、obj[max].y[obj[max].n]にy'を代入した後（Ｓ７）、obj[max].nを１インクリメントして（Ｓ８）、次の筆記手段の移動を検出し（Ｓ６）、以後、筆記手段が入力面から離れるまで処理を繰り返す。
筆記手段が入力面から離れたら（Ｓ６、ｙｅｓ）、そのオブジェクトがリンクオブジェクトか否かを調べ（Ｓ９）、リンクオブジェクトの場合はobj[max].isLink をTrueに（Ｓ１０）、それ以外の場合はobj[max].isLink をFalse にして（Ｓ１１）、処理を終了する。
【００３８】
次に、形状検出部１０１の処理について説明する。
形状検出部１０１では、obj[k]を構成するストロークの自己交差数を検出する（k は０からmax の値をとる任意の変数）。ここで自己交差とは、obj[k]のストロークを構成する座標点を順に結んだ線分同士が交差することを指す。
線分の交差判定処理については、例えば、
http://www.wombat.or.jp/tomoyashuttle/shtml/algorithm/Intersection.htm
に示されている公知の技術を用いるため、詳細な構成説明は省略するが以下に概略を示す。
【００３９】
図５に自己交差の例を示す。
まず、通常の線分交差判定処理について説明する。座標点A,B,C,D がある場合、線分ABと線分CDが交差するということは、点A,B を通る直線が線分CDと交差し、かつ、点C,D を通る直線が線分ABと交差していることと考えられる。そこで、直線を境界線として、線分を構成する２つの点が直線に対して両側に存在するとき、即ち、y=dx+eという直線を考えた場合にy-dx-eに対して２つの点の座標値を代入して符号が異なるときに、直線と線分は交差すると考えられる。この処理を直線ABと点C,D 、直線CDと点A,B に対して計算した結果、双方が交差すると判定された場合、線分ABと線分CDが交差すると判定される。
【００４０】
このような線分交差判定処理を、obj[k]自身を構成する座標点を結んだ線分間に適用することで、自己交差数scを計算できる。
例えば、i とj が互いに独立に０からobj[k]のストロークの頂点数であるobj[k].nまでの値を取る変数であるとすると、座標点A(obj[k].x[i],obj[k].y[i])、B（obj[k].x[i+1],obj[k].y[i+1])、C（obj[k].x[j],obj[k].y[j])、D(obj[k].x[j+1],obj[k].y[j+1])によって構成される線分AB,CD のうち、i=j 、i=j+1 、j=i+1 の条件を除くすべての場合について、線分の交差を検出する。このとき検出された交差の和を自己交差数とする。
【００４１】
図６はオブジェクト検出部１０２の処理を示すフローチャートである。
オブジェクト検出部１０２では、リンクオブジェクトとして入力したオブジェクトと、他のオブジェクトとが交差するかどうかを検出し（交差の概念は図７を参照）、交差を検出した場合は、その交差したオブジェクト間にリンク関係があるもの検出する。
図７においては、ストローク１０が四角１、三角３、丸２と交差し、五角形６とは交差していない場合を示す。
【００４２】
入力部１００においてリンクオブジェクト、即ち、obj[max].isLink=Trueとなった場合に図６の処理が行われる。
まず、テンポラリ変数k を０， 真偽値を保持する変数cFlag をFalse,obj[max]のリンクするオブジェクト数obj[max].ln を０にそれぞれ初期化する（Ｓ２１）。次に、テンポラリ変数ｉを０に、一時的に交差を検出したオブジェクトの配列のインデックス番号を保持するsrc を-1に初期化した後（Ｓ２２）、テンポラリ変数jを０に初期化する（Ｓ２３）。
【００４３】
次に順次、テンポラリ変数I,j,k を更新しながら、線分(obj[max].x[i],obj[max].y[i]) - (obj[max].x[i+1],obj[max].y[i+1]) と線分(obj[k].x[j],obj[k].y[j]) - (obj[k].x[j+1],obj[k].y[j+1]) が交差しないかどうかを判断する（Ｓ２４、Ｓ２５、Ｓ２６、Ｓ３３、Ｓ３５）。
交差を検出した場合は、cFlag をTrueとして、src にそのときに交差したk の値を代入しておく（Ｓ２７）。線分交差判定処理については前述の通りであり、ここでは説明を省略する。
【００４４】
次に、cFlag=False かどうかを判断し（Ｓ２８）、Trueの場合にはsrc が−１でないことを判断し（Ｓ２９）、src が−１でない場合、src が過去に検出されていないかどうかを判断する（Ｓ３０）。Src が過去に検出されていないかどうかを知るには、既に過去に検出したオブジェクトのインデックス番号を保持するobj[max].larray[] 配列中にsrc の値があるかどうかを照合すればよい。
【００４５】
src が過去に検出されていないと判断された場合には、obj[max].larray[obj[max].ln]にsrc の値を代入して、さらに、obj[max].larray[] 配列のインデックス値であるobj[max].ln を１インクリメントする（Ｓ３１）。
このようにして、obj[k]に関してk を０からmax-1 番目まで探索して、obj[max]のストロークに交差するobj[max]以外のすべてのオブジェクトを検出する（Ｓ３２、Ｓ３３）。尚、Ｓ２８でcFlag=False でない場合は、Ｓ３４、Ｓ３５でi=obj[max]. ｎ-1になるまで処理を繰り返す。
【００４６】
図８はリンク生成部１０３の処理を示すフローチャートである。
まず、オブジェクト検出部１０２において、obj[max].ln が２以上であるかを判断し、２より小さい場合にはただちに処理を終了する（Ｓ４１）。
obj[max].ln が２以上の場合には、次にテンポラリ変数ｉを０に初期化する（Ｓ４２）。次に、s1=obj[max].larray[i] とs2=obj[max].larray[i+1] として、obj[max].larray[] 配列内の検出したオブジェクトの連続したインデックス番号を取得する（Ｓ４３）。
【００４７】
次に、形状検出部１０１で検出したobj[max]のストロークにおける自己交差数scの数に従って生成するリンクオブジェクトの線種Ltype を決定する（Ｓ４４）。sc=０の場合は「線分」、sc=１の場合は「矢印（片端）」、sc=２の場合は「矢印（両端）」、その他の場合は「線分」としてLtype を決定する（Ｓ４５からＳ５０）。次に、線種をLtypに指定する（Ｓ５１）。
【００４８】
次に(obj[s1].x[0],obj[s1].y[0])-(obj[s2].x[0],obj[s2].y[0]) 間にLtypeに指定した線種で線分を描画する（Ｓ５２）。線種が「線分」の場合は、ob  j[s1] とobj[s2] の間に通常の線分を描画する。線種が「矢印（片端）」の場  合は、obj[s1] とobj[s2] の間にobj[s2] 側に矢印のついた線分を描画する。  線種が「矢印（両端）」の場合は、obj[s1] とobj[s2] の間にobj[s1] 側とob  j[s2] 側の両端に矢印のついた線分を描画する。
【００４９】
次にｉがobj[max].ln-1 かどうかを判断し（Ｓ５３）、ｉがobj[max].ln-1 でない場合にはｉを１インクリメントする（Ｓ５４）。
以上の処理をｉがobj[max].ln-1 になるまで繰り返し行う。
【００５０】
図９はリンク生成部１０３の他の処理を示すフローチャートである。
図９においては、リンクオブジェクトが交差したオブジェクトのうち、始点側に最も近いオブジェクトと、終点側に最も近いオブジェクトとの間にリンク線分を描画する。
【００５１】
まずobj[max].ln>=2かどうかを判断して（Ｓ６１）、obj[max].ln が２より小さい場合には直ちに処理を終了する。それ以外の場合は、次にs1=obj[max].larray[0] ，s2=obj[max].larray[obj[max].ln-1] として（Ｓ６２）、オブジェクト検出部１０２において、最初に検出したオブジェクト、即ち、obj[max]の始点(obj[max].x[0]，obj[max].y[0])側に最も近傍のオブジェクトのインデックス番号と、最後に検出したオブジェクト、即ち、obj[max]の終点(obj[max].x[obj[max].n] ，obj[max].y[obj[max].n]) 側に最も近傍のオブジェクトのインデックス番号を取得する。
その後の処理は図８のＳ４４からＳ５２と同様であるため詳細な説明は割愛するが、obj[s1] とobj[s2] 間にリンク線分を描画する。
【００５２】
図１０はリンク生成部１０３が形状検出部１０１において検出したリンクオブジェクトの自己交差数に従って線種を変更してリンク線分を描画している様子を示す。
図１０（ａ１）のようにリンクオブジェクトのストロークに自己交差数がない場合は、リンク生成部１０３は、図１０（ａ２）のようなリンク線分を生成する。
図１０（ｂ１）のようにリンクオブジェクトのストロークに自己交差数が一つある場合は、リンク生成部１０３は、図１０（ｂ２）のように片端に矢印を持つようなリンク線分を生成する。
図１０（ｃ１）のようにリンクオブジェクトのストロークに自己交差数が二つある場合は、リンク生成部１０３は、図１０（ｃ２）のように両端に矢印を持つようなリンク線分を生成する。
【００５３】
図１１は図８に示したリンク生成部１０３の処理と、図９に示したリンク生成部１０３の他の処理との違いを示す。
図１１（ａ）のようなリンクオブジェクトのストロークを描画すると、図８の処理の場合は、図１１（ｂ１）のようにリンクオブジェクトのストロークが交差する各オブジェクト間にリンク線分が生成される。また、図９の処理の場合には、図１１（ｂ２）のようにリンクオブジェクトのストロークの始点近傍のオブジェクトと終点近傍のオブジェクトの間にリンク線分が生成される。
【００５４】
次に図１２を参照して、上述した一連の処理を実行するプログラムをコンピュータにインストールして実行可能な状態とするために用いられる本発明の実施の形態によるプログラム、及びこのプログラムを記録した記録媒体について説明する。
プログラムは、前述した各フローチャートの処理を実行するものである。
【００５５】
このプログラムは、例えば図１２（ａ）に示すように、本発明によるリンク生成装置を搭載したユーザインタフェース装置を接続したコンピュータに内蔵されている記録媒体としてのハードディスクに予めインストールした状態で提供できる。
また、プログラムは、図１２（ｂ）に示すように、記録媒体に一時的あるいは永続的に格納し、本発明によるリンク生成装置を搭載したユーザインタフェース装置を接続したコンピュータにユニットとして組み込んだり、あるいは着脱式の記録媒体として利用することで、パッケージソフトウェアとして提供できる。
【００５６】
上記プログラムを格納する記録媒体としては、図１２（ｃ）に示すように、例えばフロッピー（登録商標）ディスク、CD-ROM（Compact Disc Read Only Memory ）、MO（Magneto optical ）ディスク、DVD （Digital Versatile Disc）、磁気ディスク、半導体メモリなどを利用できる。
また、プログラムは、図１２（ｄ）に示すように、ダウンロードサイトから、LAN （Local Area Network）やインターネットといったネットワークを介して、有線または無線により、本発明によるリンク生成装置を搭載したユーザインタフェース装置を接続したコンピュータに転送し、そのコンピュータが内蔵するハードディスクなどにダウンロードさせるようにすることができる。
【００５７】
【発明の効果】
以上説明した発明は以下のような効果を奏する。
従来技術では、オブジェクト間にリンク操作を行う場合には、オブジェクトを選択状態にしておいてリンク編集を行うか、あるいは２つのオブジェクトを意図的に選択してリンク操作を行う必要があったが、本発明によれば、リンクオブジェクトのストロークをオブジェクトに交差するように描画してリンクするオブジェクトを検出し、その交差した順にリンク線分を生成できるようになるため、GUI 操作におけるリンク編集操作が簡単になる。
【００５８】
また、リンクは線分や矢印付き線分といった様々な視覚的属性を持つため、従来技術では、リンクの線分の線種を別途選択するなどの操作が必要になってしまうが、本発明によれば、リンクオブジェクトのストロークに含まれる自己交差数を検出して、その自己交差数の違いによってリンク線分の線種を同時に指定できるため、線種を別途選択する手間を軽減できるようになる。
【図面の簡単な説明】
【図１】本発明の実施の形態によるリンク生成装置を示すブロック図である。
【図２】リンクの概念を説明するための構成図である。
【図３】ストロークの概念を説明するための構成図である。
【図４】入力部の処理を示すフローチャートである。
【図５】ストロークの自己交差の例を示す構成図である。
【図６】オブジェクト検出部の処理を示すフローチャートである。
【図７】交差の概念を説明するための構成図である。
【図８】リンク生成部の処理を示すフローチャートである。
【図９】リンク生成部の他の処理を示すフローチャートである。
【図１０】リンク生成部が自己交差数に応じて色々な線種でリンク線分を描画する様子を示す構成図である。
【図１１】リンク生成部の処理の違いによるリンク線分を示す構成図である。
【図１２】本発明によるプログラム及び記録媒体を説明するための構成図である。
【符号の説明】
１、７  四角のオブジェクト
２  丸のオブジェクト
３  三角のオブジェクト
４  線分
５  矢印付き線分
６  五角形のオブジェクト
８  曲線の線分
９  点線の線分
１０  ストローク
１００  入力部
１０１  形状検出部
１０２  オブジェクト検出部
１０３  リンク生成部
【図１】
0004143370.tif 000002
【図２】
0004143370.tif 000003
【図３】
0004143370.tif 000004
【図４】
0004143370.tif 000005
【図５】
0004143370.tif 000006
【図６】
0004143370.tif 000007
【図７】
0004143370.tif 000008
【図８】
0004143370.tif 000009
【図９】
0004143370.tif 000010
【図１０】
0004143370.tif 000011
【図１１】
0004143370.tif 000012
【図１２】
0004143370.tif 000013