(57)【特許請求の範囲】
【請求項１】
直列的に接続された第１のオブジェクト、第２のオブジェクトおよび第３のオブジェクトを含む図形を表示する表示手段と、
前記表示手段における各オブジェクトの表示位置を示す位置情報を管理するテーブルを格納する格納手段と、
第２のオブジェクトが選択されたときに、その第２のオブジェクトを削除すると共に、第１のオブジェクトと第３のオブジェクトとを接続する編集手段と、を備え、
前記編集手段は、前記テーブルを参照し、前記第２のオブジェクトを削除する前の前記第１のオブジェクトと前記第３のオブジェクトとの間隔が所定値を超えていた場合に、そのテーブルを更新することによって、前記第２のオブジェクトを削除した後の前記第３のオブジェクトの表示位置を更新する
ことを特徴とする図形編集装置。
【請求項２】
上記編集手段は、第２のオブジェクトが選択および削除されたときにその第２のオブジェクトが表示されていた位置に上記第３のオブジェクトを表示する
ことを特徴とする請求項１に記載の図形編集装置。
【請求項３】
各枡目がそれぞれ１つのオブジェクトを表示するための領域として定義された仮想座標系を提供する座標系提供手段をさらに有し、
上記表示手段は、上記仮想座標系を用いて各オブジェクトを表示し、上記編集手段は、上記仮想座標系を用いて各オブジェクトを配置する
ことを特徴とする請求項１に記載の図形編集装置。
【請求項４】
直列的に接続された第１のオブジェクト、第２のオブジェクトおよび第３のオブジェクトを含む図形を表示する表示手段と、
前記表示手段における各オブジェクトの表示位置を示す位置情報を管理するテーブルを格納する格納手段と、
第２のオブジェクトを移動する旨の指示を受けたときに、前記テーブルを参照し、その第２のオブジェクトが上記図形に対して予め決められた閾値距離よりも遠く離れた位置に移動されたときに、その第２のオブジェクトを削除すると共に、第１のオブジェクトと第３のオブジェクトとを接続する編集手段と、
を有する図形編集装置。
【請求項５】
コンピュータに、
直列的に接続された第１のオブジェクト、第２のオブジェクトおよび第３のオブジェクトを含む図形を表示装置に表示する手順と、
前記表示装置における各オブジェクトの表示位置を示す位置情報をメモリ上に形成するテーブルを用いて管理する手順と、
第２のオブジェクトが選択されたときに、前記テーブルを参照し、その第２のオブジェクトを削除して第１のオブジェクトと第３のオブジェクトとを接続すると共に、前記第２のオブジェクトを削除する前の前記第１のオブジェクトと前記第３のオブジェクトとの間隔が所定値を超えていた場合には、そのテーブルを更新することによって、前記第２のオブジェクトを削除した後の前記第３のオブジェクトの表示位置を更新する手順、
を実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項６】
コンピュータに、
直列的に接続された第１のオブジェクト、第２のオブジェクトおよび第３のオブジェクトを含む図形を表示装置に表示する手順と、
前記表示装置における各オブジェクトの表示位置を示す位置情報をメモリ上に形成するテーブルを用いて管理する手順と、
第２のオブジェクトを移動する旨の指示を受けたときに、前記テーブルを参照し、その第２のオブジェクトが前記図形に対して予め決められた閾値距離よりも遠く離れた位置に移動されたときに、その第２のオブジェクトを削除すると共に、第１のオブジェクトと第３のオブジェクトとを接続する手順、
を実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
互いに接続されているオブジェクトの中の一部のオブジェクトを削除する装置および方法に係わる。
【０００２】
【従来の技術】
近年、各種フローチャートは、しばしば、コンピュータを用いて作成される。図形等を作成する機能を持ったソフトウェアとしては、例えば、「Power Point （マイクロソフト社）」や「Visio （ビジオ社）」などが知られている。
【０００３】
フローチャートは、たとえば、作業工程の手順やソフトウェアプログラムの処理の手順を表すために用いられており、通常、複数のオブジェクト、及びそれら複数のオブジェクトどうしの間を互いに接続するラインまたはコネクタを含んでいる。
【０００４】
図３８(a) は、コンピュータの表示画面に表示されているフローチャートの一例である。ここでは、３つのオブジェクト（オブジェクトＡ〜オブジェクトＣ）が順番に接続されたフローチャートが示されている。
【０００５】
オブジェクトどうしを互いに接続するラインは、フローチャートにおけるそれらのオブジェクトの順番あるいは従属関係を表す。たとえば、ラインＡＢ（オブジェクトＡとオブジェクトＢとを接続するコネクタ）は、オブジェクトＡの右上角を起点としているので、この場合、オブジェクトＡがオブジェクトＢに対する先行オブジェクトであり、オブジェクトＢがオブジェクトＡの後続オブジェクトであることを表している。
【０００６】
ところで、フローチャートの作成に際しては、その編集作業中に、互いに接続されているオブジェクトの中の一部のオブジェクトを削除するようなケースがしばしば発生する。例えば、オブジェクトＡとオブジェクトＣとの間に設けられているオブジェクトＢを削除するようなケースが発生する。この場合、例えば、まず図３８(b) に示すように、オブジェクトＡとオブジェクトＢとを接続するラインＡＢを消去する。ラインを消去する際には、たとえば、そのラインの両端の２つのオブジェクトを指定するか、或いは、メニューから消去処理を呼び出した後に消去すべきラインを指定する。また、同様に、図３８(c) に示すように、オブジェクトＢとオブジェクトＣとを接続するラインＢＣを消去する。
【０００７】
続いて、図３８(d) に示すように、オブジェクトＢを削除する。オブジェクトを削除する処理は、例えばメニューから呼び出される。そして、図３８(e) に示すように、オブジェクトＣの位置を移動させた後に、図３８(f) に示すように、オブジェクトＡとオブジェクトＣとの間を接続する。上記処理により、フローチャート内での各オブジェクト前後関係あるいは連携関係を維持しながら、任意のオブジェクトが削除される。
【０００８】
【発明が解決しようとする課題】
上述のように、フローチャート等の作成に際して、互いに接続されているオブジェクトの中の一部のオブジェクトを削除する処理は既知の技術である。しかしながら、既存のアプリケーションソフトウェアでは、その操作に手間がかかり、ユーザは煩わしさを感じることが多かった。例えば、図３８(a) 〜図３８(f) を参照しながら説明した例においては、ユーザは、(a) 削除すべきオブジェクトに接続されているラインを消去する操作、(b) 対照オブジェクトを削除する操作、(c) オブジェクト間を接続する操作、を行わなければならない。
【０００９】
この問題は、特に、オブジェクトどうしの間の接続関係が複雑な図形において顕著になる。そして、消去すべきラインの数または新たに設定すべきラインの数が多くなると、それに伴ってユーザの手間や作業時間も増加する。また、ラインの消去や設定に際して、ミスが発生する確率も増加してしまう。
【００１０】
なお、この問題は、フローチャートを作成するアプリケーションソフトウェアのみに係わるものではなく、たとえば、図形作成用のソフトウェアや、回路図等を作成するためのソフトウェアにおいても発生し得る。
【００１１】
本発明の課題は、互いに接続されているオブジェクトの中の一部のオブジェクトを削除する際の操作を簡単にすることである。
【００１２】
【課題を解決するための手段】
本発明の図形編集装置は、直列的に接続された第１のオブジェクト、第２のオブジェクトおよび第３のオブジェクトを含む図形を表示する表示手段と、第２のオブジェクトが選択されたときにその第２のオブジェクトを削除すると共に第１のオブジェクトと第３のオブジェクトとを接続する編集手段と、を有する。
【００１３】
本発明の他の実施形態の図形編集装置は、上記表示手段、および第２のオブジェクトが予め決められた領域に移動されたときにその第２のオブジェクトを削除すると共に第１のオブジェクトと第３のオブジェクトとを接続する編集手段と、を有する。
【００１４】
表示手段は、例えばコンピュータの表示画面に、第１〜第３のオブジェクトを表示する。また、第２のオブジェクトは、例えばユーザの操作により、上記表示画面上で選択される。
【００１５】
編集手段は、上述のように、第２のオブジェクトが選択されたときに、或いは第２のオブジェクトが予め決められた領域に移動されたときに、その第２のオブジェクトを削除すると共に第１のオブジェクトと第３のオブジェクトとを接続する。したがって、ユーザは、互いに接続されたオブジェクトの中の一部のオブジェクトを削除しようとする際に、それらを接続しているラインまたはコネクタを削除する操作や、所望のオブジェクトを削除した後に残されたオブジェクト同士を接続する操作を行う必要がない。
【００１６】
上記構成において、オブジェクトどうしの間の従属関係を管理する管理手段をさらに設けてもよい。この場合、第２のオブジェクトが削除される前にその第２のオブジェクトが第１のオブジェクトに従属し且つ第３のオブジェクトが第２のオブジェクトに従属していた場合には、第３のオブジェクトを第１のオブジェクトに従属させるように管理される。この構成を導入すれば、互いに接続されたオブジェクトの中の一部のオブジェクトが削除された際にも、残されたオジェクト内でのオブジェクト同士の前後関係または接続順番は維持される。
【００１７】
【発明の実施の形態】
本発明の図形編集方法は、図１に示すように、コンピュータ１の画面に表示された図形等を編集する方法に係わる。図形等は、基本的に、マウス２を用いたユーザによる操作により編集されるが、他の入力デバイスを利用して入力される指示により編集することもできる。なお、以下の実施例では、本発明の方法により編集される図形の例としてフローチャートを採り上げて説明する。フローチャートにおいては、各ステップに対応する図形ユニットが、それぞれ１つの「オブジェクト」として扱われる。
第１の実施形態
図２(a) および図２(b) は、本発明の第１の実施形態における図形の編集方法を示す図である。ここでは、オブジェクトＡ、オブジェクトＢ、オブジェクトＣが順番に接続された図形（フローチャート）が表示されている状態において、オブジェクトＡとオブジェクトＣとの間に設けられているオブジェクトＢを削除する場合を説明する。なお、第１の実施形態の図形編集ソフトウェアは、オブジェクトを表示するための仮想座標系を提供し、各オブジェクトは、その座標系に従って表示されるものとする。
【００１８】
図２(a) に示す状態において、オブジェクトＡとオブジェクトＣとの間に設けられているオブジェクトＢを削除する場合には、ユーザは、まず、そのオブジェクトＢを選択（または、指定）する。オブジェクトの選択は、例えば、マウスを用いて所望のオブジェクトを直接的にクリックすることにより行ってもよいし、或いは、マウスを用いた範囲指定により行ってもよい。範囲指定によりオブジェクトを選択する場合には、その指定された範囲内に存在する１以上のオブジェクトが選択されることになる。
【００１９】
このオブジェクトＢは、ラインＡＢによりオブジェクトＡに接続され、また、ラインＢＣによりオブジェクトＣに接続されている。ここで、ラインＡＢは、オブジェクトＡの右上角を起点としているので、この場合、オブジェクトＡがオブジェクトＢに対する先行オブジェクトであり、オブジェクトＢがオブジェクトＡの後続オブジェクトであることを表している。同様に、オブジェクトＢがオブジェクトＣに対する先行オブジェクトであり、オブジェクトＣがオブジェクトＢの後続オブジェクトであることを表している。なお、「ライン」は「コネクタ」と呼ばれることもある。
【００２０】
続いて、ユーザは、削除処理の実行を指示する。この削除処理は、例えば、図形編集ソフトウェアにより提供されている機能を利用する。図形編集ソフトウェアは、通常、ユーザにより選択された部品（オブジェクトを含む）を削除する機能をメニューの中に持っている。
【００２１】
オブジェクトＢが選択された状態で削除処理が実行されると、図２(b) に示すように、オブジェクトＢはその図形から削除される。そして、このとき、オブジェクトＡとオブジェクトＣとを接続するラインが自動的に生成される。また、オブジェクトＡとオブジェクトＣとの間隔が適切になるように、オブジェクトＣの表示位置が、図中、左方向に自動的に移動させられる。
【００２２】
このように、第１の実施形態の編集方法によれば、順番に接続された複数のオブジェクトの中の一部のオブジェクトを削除しようとする場合には、オブジェクトを選択する操作、及びその選択したオブジェクトを削除するための指示を入力する操作を行うだけでよい。これらの操作により、削除前のオブジェクト間の接続関係を維持しながら残されたオブジェクトが自動的に接続され、また、各オブジェクトの再配置も自動的に行われる。
【００２３】
次に、第１の実施形態の編集方法を詳しく説明する。なお、オブジェクトＡ〜Ｃは、それぞれ仮想座標系において、（Ｘ，Ｙ）＝（０００，０００）、（００１，０００）、（００２，０００）に表示されているものとする。
【００２４】
図３(a) 〜図３(c) は、第１の実施形態の図形編集ソフトウェアが提供するテーブルの例である。そして、これらのテーブルに格納されている情報は、第１の実施形態の図形編集ソフトウェアにより描かれている図形の表示状態を表す。換言すれば、図形編集ソフトウェアにより作成される図形は、これらのテーブルに格納されている情報に従って表示される。
【００２５】
図３(a) は、オブジェクト情報テーブル１１の一例を模式的に示す図である。「配列１」は、表示されているオブジェクトを識別するための識別番号である。「表示情報」は、各オブジェクト内に表示される情報、またはそのラベル名である。「位置情報」は、後述するデータテーブル１３から各オブジェクトに係わる詳細情報を呼び出すためのキー情報である。なお、新たなオブジェクトが生成されると、対応するレコードがこのテーブルに追加され、オブジェクトを削除すると、このテーブルから対応するレコードが削除される。
【００２６】
図３(b) は、ライン情報テーブル１２の一例を模式的に示す図である。「配列２」は、表示されているオブジェクトどうしを接続するラインを識別する識別番号である。「前方情報」は、各ラインの前方に配置されているオブジェクトを指示する情報である。また、「後方情報」は、各ラインの後方に配置されているオブジェクトを指示する情報である。なお、「前方情報」および「後方情報」は、オブジェクト情報テーブル１１の「配列１」の値を用いてオブジェクトを指示する。
【００２７】
図３(c) は、データテーブル１３の一例を模式的に示す図である。「配列４」は、オブジェクト情報テーブル１１に登録されている各オブジェクトに係わる詳細情報を呼び出すために利用される識別子である。「データ名」は、各オブジェクト内に表示される情報である。「先行情報」は、各オブジェクトに先行するオブジェクトを表す情報である。「Ｘ座標」及び「Ｙ座標」は、各オブジェクトが表示される位置の座標であり、この実施例では仮想座標系を用いて表される。
【００２８】
図３(a) 〜図３(c) に示す各テーブルの内容は、ここでは、図２(a) に示す図形の表示状態に対応している。即ち、図３(a) に示すオブジェクト情報テーブル１１に従って、オブジェクトＡ、Ｂ、Ｃが表示されている。また、図３(c) に示すデータテーブル１３に従って、オブジェクトＡ、Ｂ、Ｃはそれぞれ（Ｘ，Ｙ）＝（０００，０００）、（００１，０００）および（００２，０００）に表示されている。
【００２９】
図３(b) に示すライン情報テーブル１２の「配列２＝１１」のレコードにおいて、「配列１＝０１」のレコードに登録されているオブジェクトと「配列１＝０２」のレコードに登録されているオブジェクトとを接続するラインが登録されている。ここで、図３(a) に示すように、「配列１＝０１」のレコードにはオブジェクトＡが登録されており、「配列１＝０２」のレコードにはオブジェクトＢが登録されている。したがって、図３(b) に示すライン情報テーブル１２の「配列２＝１１」のレコードに登録されている情報に従って、オブジェクトＡとオブジェクトＢとを接続するライン（すなわち、ラインＡＢ）が表示される。同様に、「配列２＝１２」のレコードに登録されている情報に従って、オブジェクトＢとオブジェクトＣとを接続するライン（すなわち、ラインＢＣ）が表示される。なお、ライン情報テーブルに登録される「前方情報」および「後方情報」により、オブジェクト間の前後関係（あるいは、接続順番）が表されている。
【００３０】
図４(a) 〜図４(d) は、表示されている図形が編集される際に一時的に利用される作業用テーブルの例である。図４(a) は、選択テーブル２１である。「配列０」は、ユーザにより選択されたオブジェクトを識別する。図４(b) は、新規ライン情報テーブル２２である。「配列２ａ」は、新たに表示すべきラインを識別する。図４(c) は、前方情報テーブル２３である。「配列３ａ」は、ユーザにより選択されたオブジェクトの前方に接続されているオブジェクトを識別する。図４(d) は、後方情報テーブル２４である。「配列３ｂ」は、ユーザにより選択されたオブジェクトの後方に接続されているオブジェクトを識別する。
【００３１】
次に、図５を参照しながら、オブジェクトを削除する際の概略シーケンスを説明する。このシーケンスは、ユーザにより所定のオブジェクトが選択された後の動作を示している。なお、図５において使用されている括弧付きの数字は、下記の説明で使用する処理番号に対応する。例えば、図５に示す「(1) 」は、以下の説明における処理１に対応する。
【００３２】
処理１：ユーザにより選択されたオブジェクト（削除対象オブジェクト）を特定する。この選択されたオブジェクトは、選択テーブルに登録される。
処理２：データテーブルにおいて、削除対象オブジェクトが「先行情報」として登録されているレコードを抽出し、そのレコードの「先行情報」及び「座標」を更新する。なお、処理２は、処理２−１〜処理２−３を含む。
【００３３】
処理２−１：選択テーブルに登録されている削除対象オブジェクトに対応するレコードをデータテーブルから抽出する。このとき、データテーブルは、「配列０」の値をキーとしてアクセスされる。
【００３４】
処理２−２：処理２−１で抽出したレコードの「データ名」と一致する「先行情報」を有するレコードを抽出する。
処理２−３：処理２−１で抽出したレコードの「先行情報」「Ｘ座標」および「Ｙ座標」をそれぞれ処理２−２で抽出したレコードの「先行情報」「Ｘ座標」および「Ｙ座標」に書き込む
処理３：削除対象オブジェクトに接続するラインを特定する。尚、処理３は、処理３−１および処理３−２を含む。
【００３５】
処理３−１：削除対象オブジェクトとそれに先行するオブジェクトとを接続するラインを特定する。このとき、ライン情報テーブルの後方情報フィールドが、「配列１」の値をキーとしてアクセスされる。
【００３６】
処理３−２：削除対象オブジェクトとそれに後続するオブジェクトとを接続するラインを特定する。このとき、ライン情報テーブルの前方情報フィールドが、「配列１」の値をキーとしてアクセスされる。
【００３７】
処理４：削除対象オブジェクトに先行するオブジェクトを前方情報テーブルに登録する。このとき、処理３−２で得られた「前方情報」が前方情報テーブルに登録される。
【００３８】
処理５：削除対象オブジェクトに後続するオブジェクトを後方情報テーブルに登録する。このとき、処理３−１で得られた「後方情報」が後方情報テーブルに登録される。
【００３９】
処理６：新たに表示すべきラインを新規ライン情報テーブルに登録する。具体的には、前方情報テーブルに登録されているオブジェクトと後方情報テーブルに登録されているオブジェクトとを接続するラインが新規ライン情報テーブルに登録される。なお、前方情報テーブルまたは後方情報テーブルに複数のオブジェクトが登録されている場合には、各オブジェクト同士を接続するラインが新規ライン情報テーブルに登録される。したがって、もし、前方情報テーブルにｎ個のオブジェクトが登録されており、後方情報テーブルにｍ個のオブジェクトが登録されている場合には、ｎ×ｍ本のラインが新規ライン情報テーブルに登録されることになる。
【００４０】
処理７：新規ライン情報テーブルに登録されているラインをライン情報テーブルに書き込む。具体的には、処理３−１または処理３−２においてアクセスされたレコードに登録されている情報が、新規ライン情報テーブルに登録されている情報に置き換えられる。
【００４１】
処理８：オブジェクト情報テーブルおよびデータテーブルから削除対象オブジェクトに対応するレコードを削除する。
処理９：作業用のテーブルを初期化する。具体的には、新規ライン情報テーブル、前方情報テーブル、および後方情報テーブルを初期化し、他の全ての処理が完了した後に選択テーブルを初期化する。
【００４２】
そして、図形編集ソフトウェアは、上記処理１〜処理９を実行した後、オブジェクト情報テーブル、ライン情報テーブル、およびデータテーブルに登録されている情報に従って図形を描画する。これにより、ユーザにより選択されたオブジェクトが削除された図形が表示される。このとき、表示されるオブジェクトは、ユーザにより選択されたオブジェクトが削除される前のオブジェクト間の前後関係を維持している。
【００４３】
次に、第１の実施形態の図形編集方法を利用してオブジェクトを削除する処理の具体的な実施例を示す。
第１の実施例
第１の実施例では、図２(a) に示す状態においてオブジェクトＢを削除することにより図２(b) に示す状態を得る際の処理を説明する。ここで、図２(a) に示す図形が表示されているとき、オブジェクト情報テーブル、ライン情報テーブルおよびデータテーブルは、それぞれ図３(a) 、図３(b) および図３(c) に示す状態である。
【００４４】
オブジェクトＢを削除しようとする場合、ユーザは、オブジェクトＢを選択すると共に、削除処理の実行を指示する。所望のオブジェクトを選択する方法は、特に限定されるものではないが、例えば、マウスの操作により選択する。なお、オブジェクトを選択する手順および削除処理の実行を指示する手順との順番は限定されるものではない。例えば、第１の実施形態の図形編集ソフトウェアは、削除指示を受け付けた後に削除すべきオブジェクトの選択を受け付ける構成であってもよい。
【００４５】
図形編集ソフトウェアは、ユーザによりオブジェクトＢが選択されると、図５を参照しながら説明した処理１〜処理９を実行する。
処理１：図形編集ソフトウェアは、ユーザによりオブジェクトＢが選択されると、選択テーブル２１にオブジェクトＢを登録する。具体的には、オブジェクト情報テーブル１１においてオブジェクトＢを識別する値である「０２」が、選択テーブル２１に登録される。したがって、オブジェクトＢが選択されると、図４(a) に示す選択テーブル２１が作成される。
【００４６】
処理２：図形編集ソフトウェアは、データテーブル１３において、オブジェクトＢの後方に接続されているオブジェクトのためのレコードを抽出し、そのレコードの「先行情報」および「座標」を更新する。このとき、このレコードの「先行情報」及び「座標」には、オブジェクトＢの「先行情報」及び「座標」が書き込まれる。具体的には、処理２−１〜処理２−３が実行される。
【００４７】
処理２−１：図形編集ソフトウェアは、図６(a) に示すように、選択テーブル２１に登録されている「配列０＝０２」をキーとしてオブジェクト情報テーブル１１にアクセスし、対応するレコードを抽出する。そして、そのレコードの「位置情報＝１０２」をキーとしてデータテーブル１３にアクセスし、対応するレコードを抽出する。
【００４８】
処理２−２：データテーブル１３において、処理２−１で抽出したレコードの「データ名＝ｂ」をキーとして先行情報フィールドを検索し、「先行情報＝ｂ」が登録されているレコードを抽出する。
【００４９】
処理２−３：データテーブル１３において、図６(b) に示すように、処理２−２で抽出したレコードの「先行情報」および「座標」を、処理２−１で抽出したレコードの「先行情報」および「座標」にそれぞれ置き換える。なお、各オブジェクトが横方法に接続されているときは、「Ｘ座標」が更新され、各オブジェクトが縦方法に接続されているときは、「Ｙ座標」が更新される。したがって、図６(b) に示すように、「配列４＝１０３」のレコードは、「先行情報」が「ｂ」から「ａ」に更新され、また、「Ｘ座標」が「００２」から「００１」に更新される。
【００５０】
処理３：オブジェクトＢに接続するラインを特定する。すなわち、ライン情報テーブル１２において、「後方情報」としてオブジェクトＢが登録されているレコード、および「前方情報」としてオブジェクトＢが登録されているレコードを抽出する。具体的には、処理３−１および処理３−２が実行される。
【００５１】
処理３−１：図７(a) に示すように、「配列１＝０２」をキーとしてデータテーブル１３の後方情報フィールドを検索し、「後方情報＝０２」が登録されているレコードを抽出する。これにより、データテーブル１３から「配列２＝１１」により特定されるレコードが抽出される。
【００５２】
処理３−２：図７(a) に示すように、「配列１＝０２」をキーとしてデータテーブル１３の前方情報フィールドを検索し、「前方情報＝０２」が登録されているレコードを抽出する。これにより、データテーブル１３から「配列２＝１２」により特定されるレコードが抽出される。
【００５３】
処理４：オブジェクトＢに先行するオブジェクトを前方情報テーブル２３に登録する。具体的には、図７(b) に示すように、処理３−２で抽出されたレコードの「前方情報＝０１」が、前方情報テーブル２３に登録される。
【００５４】
処理５：オブジェクトＢに後続するオブジェクトを後方情報テーブル２４に登録する。具体的には、図７(b) に示すように、処理３−１で抽出されたレコードの「後方情報＝０３」が、後方情報テーブル２４に登録される。
【００５５】
処理６：新たに表示すべきラインを新規ライン情報テーブルに登録する。具体的には、その新たに表示すべきラインに接続されるオブジェクトを登録する。すなわち、図８(a) に示すように、前方情報テーブル２３に登録されている「前方情報＝０１」および後方情報テーブル２４に登録されている「後方情報＝０３」が、それぞれ、新規ライン情報テーブル２２に登録される。
【００５６】
処理７：新規ライン情報テーブル２２に登録されている情報をライン情報テーブル１２に書き込む。具体的には、図８(b) に示すように、ライン情報テーブル１２において、処理３−１または処理３−２においてアクセスされたレコードに登録されている情報が、新規ライン情報テーブル２２に登録されている情報に置き換えられる。これにより、ライン情報テーブル１２には、「前方情報＝０１（オブジェクトＡ）」と「後方情報＝０３（オブジェクトＣ）」とを接続するラインが登録される。
【００５７】
処理８：オブジェクト情報テーブル１１およびデータテーブル１３において、図９(a) に示すように、オブジェクトＢに対応するレコードを削除する。
処理９：オブジェクトＢを削除する際に利用した作業用のテーブルを初期化する。即ち、図９(b) に示すように、新規ライン情報テーブル２２、前方情報テーブル２３、および後方情報テーブル２４の各レコードを削除し、さらに、他の全ての処理が完了した後に選択テーブル２１に登録されている情報を削除する。
【００５８】
図１０は、上記処理１〜処理９により更新されたオブジェクト情報テーブル１１、ライン情報テーブル１２およびデータテーブル１３の例である。そして、図形編集ソフトウェアは、これらの更新されたテーブルに登録されている情報に従って図形を描画する。すなわち、図１０(a) に示したオブジェクト情報テーブル１１および図１０(c) に示したデータテーブル１３に従って、オブジェクトＡが（Ｘ，Ｙ＝０００，０００）に表示され、オブジェクトＣが（Ｘ，Ｙ＝００１，０００）に表示される。また、図１０(b) に示したライン情報テーブル１２に従って、オブジェクトＡとオブジェクトＣとを接続するラインが表示される。このとき、オブジェクトＡとオブジェクトＣとの前後関係は、ライン情報テーブル１２に登録されている。すなわち、オブジェクトＡはオブジェクトＣに対する先行オブジェクトであり、オブジェクトＣはオブジェクトＡに対する後続オブジェクトである。上記処理により、図２(b) に示す図形が得られる。
【００５９】
なお、上記実施例では、オブジェクト間の従属関係が横方向の座標を用いて表わるというルールの下で描かれた図形を採り上げたので、オブジェクトＡとオブジェクトＣとの間に設けられているオブジェクトＢを削除した際には、オブジェクトＣが横方向にシフトさせられた。しかしながら、本発明は、この構成に限定されるものではない。例えば、オブジェクト間の従属関係が縦方向の座標を用いて表わるというルールの下で描かれた図形においては、オブジェクトＡとオブジェクトＣとの間に設けられているオブジェクトＢを削除した際に、オブジェクトＣが上方向にシフトさせてもよい。
【００６０】
この場合、オブジェクトを移動させる方向は、例えば、ユーザにより選択されたオブジェクトの座標とそのオブジェクトの下流側に接続されているオブジェクトの座標とを比較することにより判定される。例えば、ユーザにより選択されたオブジェクトのＹ座標とそのオブジェクトの下流側に接続されているオブジェクトのＹ座標とが同じであれば、そのオブジェクトを横方向にシフトし、それらのＸ座標が互いに同じであれば、そのオブジェクトを上方向にシフトさせる。
第２の実施例
第２の実施例は、図１１(a) に示す状態においてオブジェクトＣを削除することにより図１１(b) に示す図形を得る処理である。ここで、図１１(a) に示す図形が表示されているとき、オブジェクト情報テーブル、ライン情報テーブルおよびデータテーブルは、それぞれ図１２(a) 、図１２(b) および図１２(c) に示す状態である。
【００６１】
図形編集ソフトウェアは、ユーザによりオブジェクトＣが選択されると、図５を参照しながら説明した処理１〜処理９を実行する。
処理１：ユーザによりオブジェクトＣが選択されると、選択テーブル２１にオブジェクトＣを登録する。すなわち、オブジェクト情報テーブル１１においてオブジェクトＣを識別する値である「０３」が選択テーブル２１に登録される。
【００６２】
処理２：データテーブル１３において、オブジェクトＣの後方に接続されているオブジェクトのためのレコードを抽出し、そのレコードの「先行情報」および「座標」を更新する。このとき、このレコードの「先行情報」および「座標」には、オブジェクトＣの「先行情報」及び「座標」が書き込まれる。具体的には、処理２−１〜処理２−３が実行される。
【００６３】
処理２−１：図１３(a) に示すように、選択テーブル２１に登録されている「配列０＝０３」をキーとしてオブジェクト情報テーブル１１にアクセスし、対応するレコードを抽出する。そして、そのレコードの「位置情報＝１０３」をキーとしてデータテーブル１３にアクセスし、対応するレコードを抽出する。
【００６４】
処理２−２：データテーブル１３において、処理２−１で抽出したレコードの「データ名＝ｃ」をキーとして先行情報フィールドを検索し、「先行情報＝ｃ」が登録されているレコードを抽出する。これにより、図１３(a) に示すように、３つのレコードが抽出される。
【００６５】
処理２−３：データテーブル１３において、処理２−２で抽出した各レコードの「先行情報」及び「座標」を、それぞれ処理２−１で抽出したレコードの「先行情報」および「座標」に置き換える。これにより、図１３(b) に示すように、「配列４＝１０４」「配列４＝１０５」および「配列４＝１０６」の各レコードは、それぞれ「先行情報」が「ｃ」から「ａ，ｂ」に更新されると共に、「Ｘ座標」が「００２」から「００１」に更新される。
【００６６】
処理３：オブジェクトＣに接続するラインを特定する。すなわち、ライン情報テーブル１２において、「後方情報」としてオブジェクトＣが登録されているレコード、および「前方情報」としてオブジェクトＣが登録されているレコードを抽出する。具体的には、処理３−１および処理３−２が実行される。
【００６７】
処理３−１：図１４(a) に示すように、「配列１＝０３」をキーとしてデータテーブル１３の後方情報フィールドを検索し、「後方情報＝０３」が登録されているレコードを抽出する。これにより、データテーブル１３から、「配列２＝１１」により特定されるレコード、および「配列２＝１２」により特定されるレコードが抽出される。
【００６８】
処理３−２：図１４(a) に示すように、「配列１＝０３」をキーとしてデータテーブル１３の前方情報フィールドを検索し、「前方情報＝０３」が登録されているレコードを抽出する。これにより、データテーブル１３から、「配列２＝１３」により特定されるレコード、「配列２＝１４」により特定されるレコード、および「配列２＝１５」により特定されるレコードが抽出される。
【００６９】
処理４：オブジェクトＣに先行するオブジェクトを前方情報テーブル２３に登録する。具体的には、図１４(b) に示すように、処理３−２で抽出された各レコードに登録されている「前方情報＝０１」および「前方情報＝０２」が、前方情報テーブル２３に登録される。
【００７０】
処理５：オブジェクトＣに後続するオブジェクトを後方情報テーブル２４に登録する。具体的には、図１４(b) に示すように、処理３−１で抽出された各レコードに登録されている「後方情報＝０４」「後方情報＝０５」および「後方情報＝０６」が、後方情報テーブル２４に登録される。
【００７１】
処理６：新たに表示すべきラインを新規ライン情報テーブルに登録する。具体的には、図１５(a) に示すように、前方情報テーブル２３に登録されている各オブジェクトと後方情報テーブル２４に登録されている各オブジェクトとの組合せにより得られるラインが新規ライン情報テーブル２２に登録される。この実施例では、前方情報テーブル２３に２個のオブジェクトが登録されており、後方情報テーブル２４に３個のオブジェクトが登録されているので、新規ライン情報テーブル２２には６本のラインが登録される。
【００７２】
処理７：新規ライン情報テーブル２２に登録されている情報をライン情報テーブル１２に書き込む。具体的には、図１５(b) に示すように、ライン情報テーブル１２において、処理３−１または処理３−２においてアクセスされたレコードに登録されている情報が、新規ライン情報テーブル２２に登録されている情報に置き換えられる。これにより、ライン情報テーブル１２には、６本のラインが登録される。すなわち、「前方情報＝０１（オブジェクトＡ）」と「後方情報＝０４（オブジェクトＤ）」とを接続するライン、「前方情報＝０１（オブジェクトＡ）」と「後方情報＝０５（オブジェクトＥ）」とを接続するライン、「前方情報＝０１（オブジェクトＡ）」と「後方情報＝０６（オブジェクトＦ）」とを接続するライン、「前方情報＝０２（オブジェクトＢ）」と「後方情報＝０４（オブジェクトＤ）」とを接続するライン、「前方情報＝０２（オブジェクトＢ）」と「後方情報＝０５（オブジェクトＥ）」とを接続するライン、「前方情報＝０２（オブジェクトＢ）」と「後方情報＝０６（オブジェクトＦ）」とを接続するラインが登録される。
【００７３】
処理８：オブジェクト情報テーブル１１およびデータテーブル１３において、図１６に示すように、オブジェクトＣに対応するレコードを削除する。
処理９：オブジェクトＣを削除する際に利用した作業用のテーブルを初期化する。すなわち、新規ライン情報テーブル２２、前方情報テーブル２３、および後方情報テーブル２４の各レコードを削除し、さらに、他の全ての処理が完了した後に選択テーブル２１に登録されている情報を削除する。
【００７４】
図１７は、上記処理１〜処理９により更新されたオブジェクト情報テーブル１１、ライン情報テーブル１２およびデータテーブル１３の例である。そして、図形編集ソフトウェアは、これらの更新されたテーブルに登録されている情報に従って図形を描画する。すなわち、図１７(a) に示したオブジェクト情報テーブル１１に登録されているオブジェクトＡ、Ｂ、Ｄ、Ｅ、Ｆが、それぞれ図１７(c) に示したデータテーブル１３に登録されている位置に表示される。また、図１７(b) に示したライン情報テーブル１２に従って、６本のラインが表示される。これにより、図１１(b) に示す図形が得られる。
第１の実施形態の編集方法のフローチャート
図１８は、ユーザの操作のフローチャートである。ステップＳ１では、ユーザは、オブジェクトを選択する。ステップＳ２では、ユーザは、その選択したオブジェクトの削除を実行するための指示を入力する。なお、オブジェクトを選択する方法、および指示を入力する方法は、上述した通りである。また、上述したように、図形編集ソフトウェアのプログラムによっては、オブジェクトを選択する操作と、削除処理の実行を指示する操作の順番が逆になる。
【００７５】
このように、この実施形態の図形編集ソフトウェアを利用して図形中のオブジェクトを削除する際には、ユーザは、オブジェクト同士を接続するラインを削除する作業や、オブジェクトを削除した後に残ったオブジェクト同士を接続する作業を行う必要はなく、その操作が簡単である。
【００７６】
図１９は、図形編集ソフトウェアの動作の概略フローチャートである。このフローチャートの処理は、ユーザによってオブジェクトが選択されたときに実行される。ステップＳ１１では、ユーザにより選択されたオブジェクトを検出する。ステップＳ１２では、図形データを更新する。図形データとは、少なくとも図３に示したテーブルに登録されている情報を含む。ステップＳ１３では、ステップＳ１２において更新された図形データに従って図形を表示する。
【００７７】
図２０は、選択されたオブジェクトを検出する処理のフローチャートであり、図１９のステップＳ１１の処理に相当する。ステップＳ２１では、ユーザにより選択されたオブジェクトを検出する。ステップＳ２２では、ステップＳ２１で検出したオブジェクトを選択テーブルに登録する。上記処理により、ユーザにより選択された１以上のオブジェクトが選択テーブルに登録される。
【００７８】
図２１は、図形データを更新する処理のフローチャートであり、図１９のステップＳ１２の処理に相当する。この処理は、選択テーブルに登録されている各オブジェクトについて実行される。すなわち、この処理は、ユーザにより選択されたオブジェクト毎に実行される。
【００７９】
ステップＳ３１では、選択テーブルに登録されているオブジェクトが１つ取得される。ステップＳ３２では、オブジェクト情報テーブルを参照することによりステップＳ３１で取得したオブジェクトが特定される。そして、この特定されたオブジェクトについてステップＳ３３〜Ｓ３７が実行される。
【００８０】
ステップＳ３３では、データテーブルが更新される。この処理は、図５を参照しながら説明した処理２に相当する。ステップＳ３４では、前方情報テーブルおよび後方情報テーブルが作成される。この処理は、上記処理３〜処理５に相当する。ステップＳ３５では、新規ラインのためのライン情報が作成される。この処理は、上記処理６に相当する。ステップＳ３６では、ライン情報テーブルが更新される。この処理は、上記処理７に相当する。ステップＳ３７では、削除処理が実行される。この処理は、上記処理７および処理９に相当する。ステップＳ３８は、選択テーブルに登録されているすべてのオブジェクトについてステップＳ３２〜Ｓ３７を実行するための処理である。
【００８１】
図２２は、データテーブルを更新する処理のフローチャートであり、図２１のステップＳ３３の処理に相当する。ステップＳ４１では、オブジェクト情報テーブルにおいて、特定されたオブジェクトに対応する「位置情報」を取得する。ステップＳ４２では、データテーブルにおいて、ステップＳ４１で取得した「位置情報」に対応する「配列４」を取得する。ステップＳ４３では、ステップＳ４２で取得した「配列４」に対応する「データ名」を取得する。
【００８２】
ステップＳ４４では、データテーブルの先行情報フィールドを検索し、ステップＳ４３で取得した「データ名」と一致する「先行情報」が登録されているレコードを抽出する。そのようなレコードを抽出できたときは、ステップＳ４５へ進み、そうでない場合には処理を終了する。
【００８３】
ステップＳ４５では、オブジェクトの移動方向が縦方向なのか横方向なのかを調べる。例えば、図２または図１１に(c) に示した例は、オブジェクトの移動方向は横方向である。オブジェクトの移動方向が縦方向であった時は、ステップＳ４６において、ステップＳ４４で抽出したレコードの「先行情報」および「Ｙ座標」を更新する。一方、オブジェクトの移動方向が横方向であった時は、ステップＳ４７において、ステップＳ４４で抽出したレコードの「先行情報」及び「Ｘ座標」を更新する。なお、ステップＳ４６またはＳ４７において、「先行情報」および「座標」は、ステップＳ４２で取得した「配列４」により特定されるレコードの「先行情報」および「座標」に置き換えられる。ステップＳ４８は、先行情報フィールドに登録されている全ての要素についてステップＳ４４〜Ｓ４７を実行するための処理である。
【００８４】
上記処理により、ユーザにより選択されたオブジェクトの後方に接続されているオブジェクトの表示位置を指定する情報が更新される。このとき、ユーザにより選択されたオブジェクトが削除される前の図形および削除された後の図形において、各オブジェクト同士の接続関係または前後関係が変わることはない。
【００８５】
図２３は、前方情報テーブルおよび後方情報テーブルを作成する処理のフローチャートであり、図２１のステップＳ３４の処理に相当する。ステップＳ５１では、オブジェクト情報テーブルにおいて特定されたオブジェクトを識別する「配列１」を取得する。ステップＳ５２では、ライン情報テーブルにおいて、ステップＳ５１で取得した「配列１」と一致する「前方情報」または「後方情報」があるか否かを調べる。そして、「配列１」と一致する「前方情報」または「後方情報」がある場合は、ステップＳ５３において、「配列１」と一致したのは「後方情報」があるのか否かを判断する。
【００８６】
「配列１」と「後方情報」とが互いに一致したのであれば、ステップＳ５４において、その「後方情報」が登録されているレコードから「配列２」および「前方情報」を取得する。そして、ステップＳ５５において、それらの「配列２」および「前方情報」を前方情報テーブルに登録する。一方、「配列１」と「後方情報」とが互いに一致していなかった場合には、ステップＳ５６において、「配列１」と一致した「前方情報」が登録されているレコードから「配列２」及び「後方情報」を取得する。そして、ステップＳ５７において、それらの「配列２」および「後方情報」を後方情報テーブルに登録する。ステップＳ５８は、特定されたオブジェクトに接続するすべてのラインについてステップＳ５２〜Ｓ５７を実行するための処理である。
【００８７】
上記処理により、ユーザにより選択されたオブジェクトに接続されているオブジェクトがリストアップされる。このとき、その選択されたオブジェクトの前方側に設けられているオブジェクトと後方側に設けられているオブジェクトとは互いに異なるグループに分類される。
【００８８】
図２４は、新規ラインのための情報を作成する処理のフローチャートであり、図２１のステップＳ３５の処理に相当する。ステップＳ６１では、前方情報テーブルの先頭から「前方情報」を１つ取得する。ステップＳ６２では、後方情報テーブルの先頭から「後方情報」を１つ取得する。ステップＳ６３では、取得した「前方情報」および「後方情報」を新規ライン情報テーブルに登録する。
【００８９】
ステップＳ６４は、ステップＳ６３の処理が実行されていない「後方情報」が残っていたときに、ステップＳ６２に戻って次の「後方情報」を取得するための処理である。ステップＳ６５は、ステップＳ６２〜Ｓ６３の処理が実行されていない「前方情報」が残っていた時に、ステップＳ６１に戻って次の「前方情報」を取得するための処理である。上記処理により、新たに表示すべきラインが決定される。
【００９０】
図２５は、ライン情報テーブルを更新する処理のフローチャートであり、図２１のステップＳ３６の処理に相当する。ステップＳ７１では、オブジェクト情報テーブルにおいて特定されたオブジェクトを識別する「配列１」を取得する。ステップＳ７２では、ライン情報テーブル内に、ステップＳ７１で取得した「配列１」と一致する「前方情報」または「後方情報」があるか否かを調べる。
【００９１】
「配列１」と一致する「前方情報」または「後方情報」がある場合は、ステップＳ７３において、新規ライン情報テーブルにデータが登録されているか否かを調べる。そして、新規ライン情報テーブルにデータが登録されているときは、ステップＳ７４において、「配列１」と一致する「前方情報」または「後方情報」が登録されているライン情報テーブル上のレコードのデータを、新規ライン情報テーブルのデータに置き換える。一方、新規ライン情報テーブルにデータが登録されていなかった時は、ステップＳ７５において、「配列１」と一致する「前方情報」または「後方情報」が登録されているライン情報テーブル上のレコードを削除する。
【００９２】
「配列１」と一致する「前方情報」または「後方情報」がなかった場合は、ステップＳ７６において、新規ライン情報テーブルにデータが登録されているか否かを調べる。そして、新規ライン情報テーブルにデータが登録されている時は、ステップＳ７７において、新規ライン情報テーブルのデータをライン情報テーブルに追加する。
【００９３】
上記処理により、新たに表示すべきラインがライン情報テーブルに登録されることになる。このとき、ユーザにより選択されたオブジェクトを削除することにより表示する必要がなくなるラインが、ライン情報テーブルから削除される。
【００９４】
図２６は、削除処理のフローチャートであり、図２１のステップＳ３７の処理に相当する。ステップＳ８１では、オブジェクト情報テーブルから、特定されたオブジェクトに対応するレコードを削除する。ステップＳ８２では、データテーブルから、特定されたオブジェクトに対応するレコードを削除する。ステップＳ８３では、新規ライン情報テーブルをクリア（すなわち、初期化）する。ステップＳ８４では、前方情報テーブルをクリアする。ステップＳ８５では、後方情報テーブルをクリアする。ステップＳ８６では、選択テーブルをクリアする。上記処理により、ユーザにより選択されたオブジェクトを表示するための情報が削除される。
第３の実施例
上述した第１および第２の実施例では、仮想座標系を利用して図形を表示し、各オブジェクトは、その仮想座標が提供する各桝の中に配置される。これに対して、第３の実施例では、図形編集ソフトウェアにより作成される図形を表示すべきスクリーンの構成に対応する座標系（以下、「絶対座標」と呼ぶ。）を利用して図形が表示される。
【００９５】
図２７は、絶対座標を利用して表示されている図形の例である。この図形は、オブジェクトＡ〜Ｃを含み、オブジェクトＡとオブジェクトＢとの間はラインＤにより接続され、オブジェクトＢとオブジェクトＣとの間はラインＥにより接続されている。各オブジェクトは、ここでは、ぞれぞれ長方形である。そして、オブジェクトを表示するための情報は、各オブジェクトの左上隅の座標データ、高さデータ、幅データを含む。なお、オブジェクトの位置を表す情報は、各オブジェクトの左上隅の座標に限定されるものではなく、例えば、各オブジェクトの中心の座標であってもよい。また、ラインを表示するための情報は、各ラインの開始点座標データ、終了点座標データ、長さデータを含んでいる。なお、図２７に示す例では、長さデータは、開始点のＹ座標と終了点のＹ座標との差により表されるが、オブジェクトが横方向に接続されていく図形においては、長さデータは開始点のＸ座標と終了点のＸ座標との差により表される。
【００９６】
上記図形において、オブジェクトＢを削除する場合を想定する。オブジェクトＢが削除される場合、第３の実施例の方法においては、ラインＤまたはラインＥのいずれか一方のみが削除される。例えば、ラインＤが削除される場合には、ラインＥおよびオブジェクトＣがオブジェクトＡが表示されている方向に移動することにより、オブジェクトＡとオブジェクトＣとがラインＥにより接続されることになる。一方、ラインＥが削除される場合には、オブジェクトＣがオブジェクトＡが表示されている方向に移動することにより、オブジェクトＡとオブジェクトＣとがラインＤにより接続されることになる。
【００９７】
図２８は、第３の実施例におけるオブジェクト削除処理の概略フローチャートである。このフローチャートの処理は、ユーザによりオブジェクトが選択されたときに実行される。
【００９８】
ステップＳ９１では、削除すべきラインを決定する。どのラインを削除すべきかは、例えば、ユーザにより選択されたオブジェクトに接続されているラインについて、「ラインの長さ」または「ラインの長さ＋削除されるオブジェクトに大きさ」に基づいて決定される。図２７に示した図形においてオブジェクトＢを削除する際、「ラインの長さ」に基づいて削除すべきラインを決定する場合には、「ＬDH」と「ＬEH」とを比較し、短い方のラインを削除する。一方、「ラインの長さ＋削除されるオブジェクトに大きさ」に基づいて削除すべきラインを決定する場合には、「ＬDH＋ＢH 」と「ＬEH＋ＢH 」とを比較し、その値が小さい方のラインを削除する。
【００９９】
ステップＳ９２では、ラインを表示すべき位置を表す位置情報を更新する。ここで、オブジェクトが縦方向に接続されていく図形においては、Ｙ座標が更新され、横方向に接続されていく図形においては、Ｘ座標が更新される。なお、位置座標を更新すべきラインは、基本的に、削除されるオブジェクトの下流側に設けられているラインである。
【０１００】
ステップＳ９３では、オブジェクトを表示すべき位置を表す位置情報を更新する。ここで、オブジェクトが縦方向に接続されていく図形においては、Ｙ座標が更新され、横方向に接続されていく図形においては、Ｘ座標が更新される。位置座標を更新すべきオブジェクトは、基本的に、削除されるオブジェクトの下流側に設けられているオブジェクトである。そして、ステップＳ９４において、ステップＳ９２およびステップＳ９３において更新された位置情報に従って図形が描画される。
【０１０１】
具体例を示す。
(1) 「ＬDH」＜「ＬEH」の場合
この場合、ラインＤが削除される。そして、ラインＥ及びオブジェクトＣが、「ラインＤの長さ＋オブジェクトＢの高さ」だけ移動する。すなわち、ラインＥについての表示情報は、以下のように更新される。
開始点：（ＬＥsx，ＬＥsy）→（ＬＥsx，ＬＥsy−ＬDH−ＢH ）
終了点：（ＬＥex，ＬＥey）→（ＬＥex，ＬＥey−ＬDH−ＢH ）
長さ  ：ＬEH→ＬEH
また、オブジェクトＣについての表示情報は、以下のように更新される。
左上座標：（ＣL ，ＣT ）→（ＣL ，ＣT −ＬDH−ＢH ）
高さ    ：ＣH →ＣH
幅      ：Ｃw →Ｃw
(2) 「ＬDH」＞「ＬEH」の場合
この場合、ラインＥが削除される。そして、オブジェクトＣが、「ラインＥの長さ＋オブジェクトＢの高さ」だけ移動する。すなわち、オブジェクトＣについての表示情報は、以下のように更新される。
左上座標：（ＣL ，ＣT ）→（ＣL ，ＣT −ＬEH−ＢH ）
高さ    ：ＣH →ＣH
幅      ：Ｃw →Ｃw
(3) 「ＬDH」＝「ＬEH」の場合
この場合は、予め決められたアルゴリズムに従って、(1) または(2) のいずれか一方を実行する。
【０１０２】
このように、第１および第２の実施例では、あるオブジェクトを削除すると、そのオブジェクトに接続していたすべてのラインが削除されると共に、残ったオブジェクト同士を接続するためのラインが新たに生成されていた。これに対して第３の実施例では、オブジェクトに削除に伴って削除されるラインは必要最小限である。
【０１０３】
なお、第１〜第３の実施例では、説明を簡単にするために描かなかったが、削除すべきオブジェクトの下流側に複数のオブジェクトが直列的に接続されている場合には、オブジェクトの削除に伴って、それら直列に接続されている複数のオブジェクトの表示位置は、一体的に移動する。
【０１０４】
例えば、図２９(a) に示す図形を想定する。この図形では、オブジェクトＡ〜Ｅが直列的に接続されている。ここで、図２９(b) に示すように、オブジェクトＢが削除されると、オブジェクトＣ〜Ｅはそれぞれ上流方向へ移動させられる。この場合、図形処理ソフトウェアは、オブジェクトＢが選択されたことを認識すると、以下の処理を実行する。
(1) データテーブルを参照し、オブジェクトＢが「先行情報」として登録されているオブジェクトを検出する。
(2) データテーブルを参照し、上記(1) により検出されたオブジェクトが「先行情報」として登録されているオブジェクトを探す。
(3) 上記(2) によりオブジェクトが検出されたときは、(2) に戻ってさらに次のオブジェクトを探す。
【０１０５】
図２９(b) に示す例においては、(1) によりオブジェクトＣが検出され、上記(2) および(3) を繰り返すことによりオブジェクトＤおよびＥが検出される。そして、オブジェクト情報テーブルからオブジェクトＢが削除されるとともに、データテーブルにおいて、オブジェクトＣ〜Ｅの「Ｙ座標」が更新される。このとき、ライン情報テーブルにおいて、オブジェクトＡとオブジェクトＣとを接続するラインが登録されているものとする。これにより、図２９(c) に示す図形が表示される。
【０１０６】
また、上述の例では、特に示さなかったが、複数のオブジェクトを同時に削除したい場合には、ユーザは、例えば、図３０(a) に示すように、マウス等を用いて複数のオブジェクトを取り囲む範囲を指定する。この実施例では、オブジェクトＣ、Ｅが同時に選択されている。このように、複数のオブジェクトがユーザにより同時に選択されると、図形編集ソフトウェアは、選択テーブルにそれら複数のオブジェクトを登録する。そして、各オブジェクト毎に上述した処理を実行する。すなわち、オブジェクトＣが削除されることにより、オブジェクトＢとオブジェクトＤとが接続され、オブジェクトＥが削除されることにより、オブジェクトＢとオブジェクトＦとが接続されれる。これにより、図３０(b) に示す図形が得られる。
第２の実施形態
上述した第１の実施形態の編集方法においては、ユーザは、オブジェクトを削除しようとする場合には、削除すべきオブジェクトを選択する操作、および削除処理の実行を指示する操作が必要であった。これに対して、第２の実施形態の編集方法においては、削除すべきオブジェクトを所定の位置に移動させることによりそのオブジェクトが削除される。このとき、残されたオブジェクトは、ユーザによって選択されたオブジェクトが削除される前の前後関係（接続順番）を維持する。
【０１０７】
図３１は、第２の実施形態の編集方法を説明する図である。この編集方法においては、図形編集ソフトウェアは、表示画面上に廃棄エリア３１を提供（表示）する。そして、図形編集ソフトウェアは、その廃棄エリア３１の上に図形を構成する部品（オブジェクトおよびラインを含む）が配置されると、その部品を削除する。
【０１０８】
図３１(a) に示す図形から、オブジェクトＢを削除する場合を想定する。この場合、ユーザは、例えば、そのオブジェクトＢをドラッグして廃棄エリア３１にドロップする。図形編集ソフトウェアは、廃棄エリア３１とオブジェクトＢとがオーバラップしたことを検出すると、図３１(c) に示すように、オブジェクトＢを削除すると共に、オブジェクトＡとオブジェクトＣとを接続する。
【０１０９】
なお、図形編集ソフトウェアは、あるオブジェクトを削除した後に残されたオブジェクト同士の間隔が必要以上に大きくなってしまう場合には、オブジェクトの位置を変更することにより、オブジェクト同士の間隔を適切に修正する。例えば、図３２(a) および図３２(b) に示すように、オブジェクトＢがドラッグされて廃棄エリア３１の上にドロップされたとき、オブジェクトＡとオブジェクトＣとの間隔ａが予め決められている値よりも大きかったときには、その間隔が適切な値（ａ−α）になるようにオブジェクトＣを移動させる。これにより、図３２(c) に示す図形が得られる。
【０１１０】
また、図３１および図３２に示した実施例では、オブジェクトが予め決められた所定の廃棄エリアにドロップされたことを検出して削除処理が実行されるが、第２の実施形態の編集方法は、この方法に限定されるものではない。例えば、図３３(a) 〜図３３(c) に示すように、図形中の任意のオブジェクトがその図形から所定距離Ｌよりも遠く離れた位置に移動させられたときに、そのオブジェクトが自動的に削除されるような構成であってもよい。
【０１１１】
図３４(a) は、第２の実施形態において使用されるオブジェクト情報テーブルの例である。オブジェクト情報テーブルには、各オブジェクトが表示されている位置の座標や、そのオブジェクトの形状を表す情報等が格納される。「座標」としては、例えば、各オブジェクトの左上隅の絶対座標または各オブジェクトの中心座標が格納される。また、「形状」としては、基本的に、アプリケーションソフトウェアが提供する図形部品を識別する情報が用いられる。アプリケーションソフトウェアは、例えば、長方形、菱形、円、などを提供する。さらに、各オブジェクトの形状を表す具体的な情報として、オブジェクトの「高さ」や「幅」などが格納される。
【０１１２】
図３４(b) は、第２の実施形態において使用されるライン情報テーブルの例である。ライン情報テーブルには、各ラインが表示されている位置、その形状を特定する情報、並びにオブジェクト間の接続関係を表す情報が格納される。「始点座標」および「終点座標」は、それぞれ各ラインの始点の座標および終点の座標である。また、「前方情報」および「後方情報」は、第１の実施形態において説明したものと同じであり、各ラインの前方に接続されているオブジェクトを特定する情報、および各ラインの後方に接続されているオブジェクトを特定する情報である。なお、各ラインと前方オブジェクトとの接続点が「始点座標」であり、また、各ラインと後方オブジェクトとの接続点が「終点座標」である。さらに、「高さ」は、各ラインの始点のＹ座標と終点のＹ座標との差を表す。
【０１１３】
なお、このライン情報テーブルにより、オブジェクト間の従属関係が管理される。たとえば、図３４(b) に示すテーブルでは、オブジェクトＢがオブジェクトＡに従属しており、オブジェクトＣがオブジェクトＢに従属していることが登録されている。
【０１１４】
図３５は、第２の実施形態の図形編集ソフトウェアの動作を説明するフローチャートである。このフローチャートの処理は、あるオブジェクトがユーザによりドラッグされたときに実行される。以下では、図３１または図３２を参照し、オブジェクトＢを削除する場合を例に採り上げて説明する。
【０１１５】
ステップＳ１０１では、ユーザによりドラッグされているオブジェクトの位置を追随しながら検出する。ステップＳ１０２では、そのオブジェクトがドロップされた位置を検出し、そのオブジェクトが廃棄エリアにオーバラップしているのか否かを調べる。なお、図形編集ソフトウェアは、廃棄エリアの表示位置を認識している。そして、そのオブジェクトが廃棄エリアにオーバラップしている場合には、ステップＳ１０３へ進み、そうでない場合には、ステップＳ１１０においてそのオブジェクトを描画する。ステップＳ１１０は、いわゆる「移動」処理に相当する。
【０１１６】
ステップＳ１０３では、オブジェクト情報テーブルを参照し、廃棄エリアにドロップされたオブジェクトの「高さ」を取得する。ステップＳ１０４では、ライン情報テーブルを参照し、廃棄エリアにドロップされたオブジェクトに接続されている各ラインの「高さ」を取得する。図３１または図３２に示す実施例においては、ステップＳ１０３の処理により「ＢＨ（オブジェクトＢの高さ）」が取得され、また、ステップＳ１０４の処理により「ＤＨ（ラインＤの高さ）」および「ＥＨ（ラインＥの高さ）」が取得される。
【０１１７】
ステップＳ１０５では、ステップＳ１０３及びＳ１０４で取得した各「高さ」の合計値を算出し、その合計値が予め設定されている閾値以下であるか否かを調べる。そして、もし、上記合計値が閾値よりも大きかった場合には、ステップＳ１０６において、廃棄エリアにドロップされたオブジェクトの下流側に接続されているオブジェクトの座標を更新する。この更新された座標は、オブジェクト情報テーブルに登録される。なお、上記合計値が閾値以下であった場合には、ステップＳ１０６はスキップされる。
【０１１８】
ステップＳ１０７では、廃棄エリアにドロップされたオブジェクトの上流側に設けられていたオブジェクトと下流側に設けられていたオブジェクトとを接続するラインのためのライン情報を生成する。これにより、実施例では、「前方情報＝オブジェクトＡ」および「後方情報＝オブジェクトＣ」を有するラインがライン情報テーブルに登録される。ステップＳ１０８では、オブジェクト情報テーブルにおいて、廃棄エリアにドロップされたオブジェクトに対応するレコードが削除される。この後、ステップＳ１０９において、オブジェクト情報テーブルおよびライン情報テーブルに従って図形を描画する。
【０１１９】
なお、図３５に示すフローチャートは、オブジェクトが廃棄エリアにドロップされたことを検出して削除処理が実行される場合を示しているが、オブジェクトが図形から所定距離よりも離れたことを検出して削除処理を実行する場合には、ステップＳ１０２の代わりに、移動させられたオブジェクトと図形との距離が所定値を越えているか否かを判断するステップを設ければよい。
【０１２０】
また、上記第１および第２の実施形態の各実施例では、編集される図形の例としてフローチャートを採り上げて説明したが、本発明は、これに限定されるものではなく、ラインまたはコネクタにより複数のオブジェクトが互いに接続または連携された図形等を編集する方法を含む。たとえば、回路図を作成および編集する方法にも適用される。この場合、回路を構成する各素子が「オブジェクト」であり、各素子間を互いに接続する信号線が「ライン」である。
【０１２１】
さらに、図３１または図３２においては、削除されるオブジェクトの上流側または下流側のそれぞれ１つのオブジェクトが連結されている状態を示したが、２以上のオブジェクトが連結されていてもよい。これは、フローチャートの場合はフローの分岐を、回路の場合は２以上の素子が連結していることを意味する。この連結関係は、上述の連結関係と同様に、図３４において例示したオブジェクト情報テーブル、ライン情報テーブルにより管理される。この場合の削除処理は、当該連結関係を保ったまま実行される。
【０１２２】
本発明の図形編集機能は、コンピュータを用いて上述のフローチャートに示した処理を記述したプログラムを実行することにより実現される。そのプログラムを実行するコンピュータ１００のブロック図を図３６に示す。
【０１２３】
ＣＰＵ１０１は、上述のフローチャートに示した処理を記述したプログラムを記憶装置１０２からメモリ１０３にロードして実行する。記憶装置１０２は、例えばハードディスクであり、上記プログラムを格納する。メモリ１０３は、例えば半導体メモリであり、ＣＰＵ１０１の作業領域として使用される。各種テーブルは、このメモリ１０３に作成される。
【０１２４】
記録媒体ドライバ１０４は、ＣＰＵ１０１の指示に従って可搬性記録媒体１０５にアクセスする。可搬性記録媒体１０５は、半導体デバイス（例えば、ＩＣカード等）、磁気的作用により情報が入出力される媒体（フロッピーディスク、磁気テープ等）、光学的作用により情報が入出力される媒体（光ディスク等）を含む。通信制御装置１０６は、ＣＰＵ１０１の指示に従って網との間でデータを送受信する。
【０１２５】
図３７は、本発明に係わるソフトウェアプログラムなどの提供方法を説明する図である。本発明に係わるプログラムは、例えば、以下の３つの方法の中の任意の方法により提供される。
【０１２６】
(a) コンピュータ１００にインストールされて提供される。この場合、プログラム等は、たとえば、出荷前にプレインストールされる。
(b) 可搬性記録媒体に格納されて提供される。この場合、可搬性記録媒体１０５に格納されているプログラム等は、基本的に、記録媒体ドライバ１０４を介して記憶装置１０２にインストールされる。
【０１２７】
(c) 網上のサーバから提供される。この場合、基本的には、コンピュータ１００がサーバに格納されているプログラム等をダウンロードすることによってそのプログラム等を取得する。
【０１２８】
【発明の効果】
コンピュータを用いて図形等を表示しながら作成・編集する処理において、互いに接続されているオブジェクトの中の一部のオブジェクトを削除する際の処理が簡単になったので、ユーザの負担が減少し、作業効率が向上する。また、図形等の編集に際してのミスが生じる可能性も減少する。
【図面の簡単な説明】
【図１】本発明が実施される環境の一例を説明する図である。
【図２】第１の実施形態における図形の編集方法を説明する図である。
【図３】第１の実施形態の図形編集ソフトウェアが提供するテーブルの例である。
【図４】表示されている図形が編集される際に一時的に利用される作業用テーブルの例である。
【図５】オブジェクト削除処理の概略シーケンス図である。
【図６】テーブルを更新する処理を説明する図（その１）である。
【図７】テーブルを更新する処理を説明する図（その２）である。
【図８】テーブルを更新する処理を説明する図（その３）である。
【図９】テーブルを更新する処理を説明する図（その４）である。
【図１０】更新されたテーブルの例である。
【図１１】第２の実施例における図形編集の例である。
【図１２】オブジェクトを削除する前の図形を表すテーブルの例である。
【図１３】テーブルを更新する処理を説明する図（その１）である。
【図１４】テーブルを更新する処理を説明する図（その２）である。
【図１５】テーブルを更新する処理を説明する図（その３）である。
【図１６】テーブルを更新する処理を説明する図（その４）である。
【図１７】更新されたテーブルの例である。
【図１８】ユーザの操作のフローチャートである。
【図１９】図形編集ソフトウェアの動作の概略フローチャートである。
【図２０】選択されたオブジェクトを検出する処理のフローチャートである。
【図２１】図形データを更新する処理のフローチャートである。
【図２２】データテーブルを更新する処理のフローチャートである。
【図２３】前方情報テーブルおよび後方情報テーブルを作成する処理のフローチャートである。
【図２４】新規ラインのための情報を作成するフローチャートである。
【図２５】ライン情報テーブルを更新する処理のフローチャートである。
【図２６】削除処理のフローチャートである。
【図２７】絶対座標を利用して表示されている図形の例である。
【図２８】第３の実施例におけるオブジェクト削除処理の概略フローチャートである。
【図２９】削除すべきオブジェクトの下流に複数のオブジェクトが直列的に接続されていた場合の削除処理の例である。
【図３０】複数のオブジェクトが同時に選択された場合の処理を説明する図である。
【図３１】第２の実施形態の編集方法を説明する図（その１）である。
【図３２】第２の実施形態の編集方法を説明する図（その２）である。
【図３３】第２の実施形態の編集方法を説明する図（その３）である。
【図３４】  (a) は、オブジェクト情報テーブルの一例を示す図であり、(b) は、ライン情報テーブルの一例を示す図である。
【図３５】第２の実施形態の図形編集ソフトウェアの動作を説明するフローチャートである。
【図３６】本発明の編集方法の処理を記述したプログラムを実行するコンピュータのブロックである。
【図３７】本発明に係わるソフトウェアプログラム等の提供方法を説明する図である。
【図３８】既存の方法により互いに接続されているオブジェクトの中の一部を削除する際の手順を説明する図である。
【符号の説明】
１      コンピュータ
２      マウス
１１    オブジェクト情報テーブル
１２    ライン情報テーブル
１３    データテーブル
２１    選択テーブル
２２    新規ライン情報テーブル
２３    前方情報テーブル
２４    後方情報テーブル
１００  コンピュータ
１０１  ＣＰＵ
１０２  記憶装置
１０３  メモリ
１０４  記録媒体ドライバ
１０５  可搬性記録媒体
１０６  通信制御装置
【図１】
0003953738.tif 000002
【図２】
0003953738.tif 000003
【図３】
0003953738.tif 000004
【図４】
0003953738.tif 000005
【図５】
0003953738.tif 000006
【図６】
0003953738.tif 000007
【図７】
0003953738.tif 000008
【図８】
0003953738.tif 000009
【図９】
0003953738.tif 000010
【図１０】
0003953738.tif 000011
【図１１】
0003953738.tif 000012
【図１２】
0003953738.tif 000013
【図１３】
0003953738.tif 000014
【図１４】
0003953738.tif 000015
【図１５】
0003953738.tif 000016
【図１６】
0003953738.tif 000017
【図１７】
0003953738.tif 000018
【図１８】
0003953738.tif 000019
【図１９】
0003953738.tif 000020
【図２０】
0003953738.tif 000021
【図２１】
0003953738.tif 000022
【図２２】
0003953738.tif 000023
【図２３】
0003953738.tif 000024
【図２４】
0003953738.tif 000025
【図２５】
0003953738.tif 000026
【図２６】
0003953738.tif 000027
【図２７】
0003953738.tif 000028
【図２８】
0003953738.tif 000029
【図２９】
0003953738.tif 000030
【図３０】
0003953738.tif 000031
【図３１】
0003953738.tif 000032
【図３２】
0003953738.tif 000033
【図３３】
0003953738.tif 000034
【図３４】
0003953738.tif 000035
【図３５】
0003953738.tif 000036
【図３６】
0003953738.tif 000037
【図３７】
0003953738.tif 000038
【図３８】
0003953738.tif 000039