JP3569153B2 - 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体 - Google Patents
図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体 Download PDFInfo
- Publication number
- JP3569153B2 JP3569153B2 JP08558799A JP8558799A JP3569153B2 JP 3569153 B2 JP3569153 B2 JP 3569153B2 JP 08558799 A JP08558799 A JP 08558799A JP 8558799 A JP8558799 A JP 8558799A JP 3569153 B2 JP3569153 B2 JP 3569153B2
- Authority
- JP
- Japan
- Prior art keywords
- line
- connector
- objects
- information
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
互いに接続されているオブジェクトどうしの間に他のオブジェクトを挿入する装置および方法に係わる。
【0002】
【従来の技術】
近年、各種フローチャートは、しばしば、コンピュータを用いて作成される。図形等を作成する機能を持ったソフトウェアとしては、例えば、「Power Point (マイクロソフト社)」や「Visio (ビジオ社)」などが知られている。
【0003】
フローチャートは、たとえば、作業工程の手順やソフトウェアプログラムの処理の手順を表すために用いられており、通常、複数のオブジェクト、及びそれら複数のオブジェクトどうしの間を互いに接続するラインまたはコネクタを含んでいる。
【0004】
図47(a) は、コンピュータの表示画面に表示されているフローチャートの一例である。ここでは、3つのオブジェクト(オブジェクトA〜オブジェクトC)が順番に接続されたフローチャートが示されている。なお、破線の枡目は、仮想座標系における表示領域を表しているが、実際には表示されない。各枡目の内側の長方形は、オブジェクトを表す。実線で描かれているオブジェクトは、データが設定されている状態を表し、破線で描かれているオブジェクトは、データが設定されていない状態を表している。破線のオブジェクトは、実際には表示されない。オブジェクト内の文字は、そのオブジェクトにリンク付けられているデータの内容を表す。オブジェクトどうしを互いに接続するラインは、フローチャートにおけるそれらのオブジェクトの順番あるいは従属関係を表す。たとえば、ラインAB(オブジェクトAとオブジェクトBとを接続するライン)は、オブジェクトAの右上角を起点としているので、この場合、オブジェクトAがオブジェクトBに対する先行オブジェクトであり、オブジェクトBがオブジェクトAの後続オブジェクトであることを表している。
【0005】
ところで、フローチャートの作成に際しては、オブジェクトの追加や削除に加えて、先に互いに接続されているオブジェクトどうしの間に新たなオブジェクトを挿入するようなケースがしばしば発生する。例えば、オブジェクトAとオブジェクトBとの間に新たなオブジェクトDを挿入するようなケースが発生する。この場合、まず、図47(b) に示すように、オブジェクトAとオブジェクトBとを接続するラインABを消去する。ラインを消去する際には、たとえば、そのラインの両端の2つのオブジェクトを指定するか、或いは、メニューから消去処理を呼び出した後に消去すべきラインを指定する。
【0006】
続いて、図47(c) に示すように、新たなオブジェクトを生成し、その新規オブジェクトとデータDとをリンク付ける。オブジェクトを生成する処理は、例えば、メニューから呼び出される。そして、図47(d) に示すように、オブジェクトAとオブジェクトDとの間、およびオブジェクトDとオブジェクトBとの間をそれぞれ接続する。この後、フローチャートを見やすくするために、図47(e) に示すように、各オブジェクトを適切に移動させる。この結果、図47(f) に示す状態が得られる。
【0007】
【発明が解決しようとする課題】
上述のように、フローチャート等の作成に際して、互いに接続されているオブジェクトどうしの間に新たなオブジェクトを挿入する処理は既知の技術である。しかしながら、既存のアプリケーションソフトウェアでは、その操作に手間がかかり、ユーザは煩わしさを感じることが多かった。例えば、図47(a) 〜図47(f) を参照しながら説明した例においては、ユーザは、(a) 新たなオブジェクトを挿入すべき位置に表示されているラインを消去する操作、(b) 先に表示されているオブジェクトと新たに挿入すべきオブジェクトとを接続する操作、(c) オブジェクトを再配置する操作、を行わなければならない。
【0008】
この問題は、特に、オブジェクトどうしの間の接続関係が複雑な図形に対して新たなオブジェクトを挿入する場合に顕著になる。一例として、図48(a) に示す状態において、オブジェクトAとオブジェクトB〜Gとの間にオブジェクトHを挿入して図48(e) に示す状態を作成する場合の手順を説明する。この場合、まず、図48(b) に示すように、オブジェクトAとオブジェクトB〜Gとをそれぞれ接続するラインを一本ずつ消去する。続いて、図48(c) に示すように、オブジェクトHを生成し、オブジェクトAとオブジェクトHとを接続する。更に、図48(d) に示すように、オブジェクトHとオブジェクトB〜Gとの間を1つずつ接続していく。この後、図を見やすくするために各オブジェクトの座標を1つずつ適切に再配置することにより、図48(e) に示す状態が得られる。
【0009】
このように、消去すべきラインの数または新たに設定すべきラインの数が多くなると、それに伴ってユーザの手間や作業時間も増加する。また、ラインの消去や設定に際して、ミスが発生する確率も増加してしまう。
【0010】
なお、この問題は、フローチャートを作成するアプリケーションソフトウェアのみに係わるものではなく、たとえば、図形作成用のソフトウェアや、回路図等を作成するためのソフトウェアにおいても発生し得る。
【0011】
本発明の課題は、互いに接続されているオブジェクトどうしの間に他のオブジェクトを挿入する際の操作を簡単にすることである。
【0012】
【課題を解決するための手段】
本発明の図形編集装置は、第1のコネクタにより互いに接続された第1のオブジェクトおよび第2のオブジェクトを含む図形を表示する表示手段と、第3のオブジェクトが上記第1のコネクタに対して予め決められた位置に配置されたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタおよび上記第3のオブジェクトと上記第2のオブジェクトとを接続する第3のコネクタを生成する編集手段とを有する。
【0013】
表示手段は、たとえばコンピュータの表示画面に、第1および第2のオブジェクト、第1のコネクタを表示する。また、第3のオブジェクトは、たとえばユーザの操作により、上記表示画面上の所望の位置に移動される。
【0014】
編集手段により第2および第3のコネクタが生成されると、第1のオブジェクト、第3のオブジェクト、第2のオブジェクトが順番に接続された状態が生成されることになる。すなわち、第1のオブジェクトと第2のオブジェクトとの間に第3のオブジェクトが挿入された状態が得られる。
【0015】
したがって、第3のオブジェクトを上記第1のコネクタに対して予め決められた位置に配置することにより、その第3のオブジェクトは、自動的に、第1のオブジェクトと第2のオブジェクトとの間に挿入される。
【0016】
なお、第2および第3のコネクタは、第1のコネクタとは別に生成されるものであってもよいし、或いは、第1のコネクタを第2または第3のコネクタとして使用するようにしてもよい。
【0017】
本発明の他の実施形態の図形編集装置は、第1のコネクタにより互いに接続された第1のオブジェクトおよび第2のオブジェクトを含む図形を表示する表示手段と、上記第1のコネクタが選択されたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタおよび上記第3のオブジェクトと上記第2のオブジェクトとを接続する第3のコネクタを生成する編集手段とを有する。
【0018】
第1のコネクタが、たとえばユーザの操作により、選択されると、その第1のコネクタの両端に接続されている第1および第2のオブジェクトが認識される。そして、編集手段は、その認識結果に従って第2および第3のコネクタを生成する。したがって、上記第1のコネクタを選択することにより、その第3のオブジェクトは、自動的に、第1のオブジェクトと第2のオブジェクトとの間に挿入される。
【0019】
【発明の実施の形態】
本発明の図形編集方法は、図1に示すように、コンピュータ1の画面に表示された図形等を編集する方法に係わる。図形等は、基本的に、マウス2を用いたユーザによる操作により編集されるが、キーボードから入力する指示により編集することもできる。なお、以下の実施例では、本発明の方法により編集される図形の例としてフローチャートを採り上げて説明する。フローチャートにおいては、各ステップに対応する図形ユニットが、それぞれ1つの「オブジェクト」として扱われる。
第1の実施形態
図2(a) 〜図2(d) は、本発明の第1の実施形態における基本操作を説明する図である。ここでは、オブジェクトA、オブジェクトB、オブジェクトCが順番に接続された図形(フローチャート)が表示されている状態において、オブジェクトAとオブジェクトBとの間に新たに生成されたオブジェクトDを挿入する場合を説明する。なお、第1の実施形態の図形編集ソフトウェアは、オブジェクトを表示するための仮想座標系を提供し、各オブジェクトは、その座標系の枡目の中に表示されるものとする。
【0020】
図2(a) に示す状態において、オブジェクトAとオブジェクトBとの間にオブジェクトDを挿入する場合には、ユーザは、まず、図2(b) に示すように、ラインABを指定(または選択)する。ラインABは、オブジェクトAとオブジェクトBとを接続するラインである。ここで、ラインABは、オブジェクトAの右上角を起点としているので、この場合、オブジェクトAがオブジェクトBに対する先行オブジェクトであり、オブジェクトBがオブジェクトAの後続オブジェクトであることを表している。なお、「ライン」は「コネクタ」と呼ばれることもある。
【0021】
ラインの指定は、たとえば、マウスを用いて所望のラインを直接的にクリックすることにより行ってもよいし、或いは、マウスを用いた範囲指定により行ってもよい。範囲指定によりラインを指定する場合には、その指定された範囲内に存在するラインが指定されることになる。
【0022】
続いて、ユーザは、オブジェクトAとオブジェクトBとの間に挿入すべきオブジェクトを生成する。新たなオブジェクトを生成する処理は、例えば、図形編集ソフトウェアにより提供されている機能を利用する。図形編集ソフトウェアは、通常、ユーザの指示に従って新たなオブジェクトを生成する機能をメニューの中に持っている。
【0023】
ラインABが指定された状態において新たなオブジェクトが生成されると、そのオブジェクトは、図2(c) に示すように、オブジェクトAとオブジェクトBとの間に自動的に挿入される。このとき、ラインABが消去されると共に、オブジェクトAとその新規オブジェクトとを接続するラインおよびその新規オブジェクトとオブジェクトBとを接続するラインが自動的に生成される。これにより、オブジェクトA、新規オブジェクト、オブジェクトB、オブジェクトCが順番に接続される。また、新規オブジェクトを含む4つのオブジェクトがそれぞれ仮想座標系の各枡目の中に配置されるように、オブジェクトB及びオブジェクトCは、それぞれ、図中、右方向に移動させられる。
【0024】
この後、ユーザは、新規オブジェクトに対して情報Dを設定する。この結果、図2(d) に示す状態が得られる。
このように、第1の実施形態の編集方法によれば、互いに接続された第1のオブジェクトと第2のオブジェクトとの間に新たなオブジェクトを挿入しようとする場合には、第1および第2のオブジェクトを互いに接続するラインを指定する操作、および挿入すべきオブジェクトを生成する操作を行うだけでよい。これらの操作により、オブジェクト間の接続が自動的に再設定され、また、各オブジェクトの再配置も自動的に行われる。
【0025】
次に、第1の実施形態の編集方法を詳しく説明する。以下では、オブジェクトAとオブジェクトBとの間に新たなオブジェクトを挿入する例を説明する。オブジェクトA及びオブジェクトBは、図3(a) に示すように、それぞれ(X,Y)=(000,000)、および(X,Y)=(001,000)に表示されているものとする。また、オブジェクトAおよびオブジェクトBは、ラインABにより互いに接続されている。
【0026】
図4(a) 〜図4(d) は、第1の実施形態の図形編集ソフトウェアが提供するテーブルの例である。図4(a) に示すオブジェクト情報テーブル、図4(b) に示すライン情報テーブル、図4(d) に示すデータテーブルは、第1の実施形態の図形編集ソフトウェアにより描かれている図形の表示状態を表す。換言すれば、図形編集ソフトウェアにより作成される図形は、これらのテーブルに格納されている情報に従って表示される。また、図4(c) に示す選択インデックステーブルは、作業用のテーブルであり、先に表示されているオブジェクトどうしの間に新たなオブジェクトを挿入する処理に際して使用される。
【0027】
図4(a) は、オブジェクト情報テーブルの一例を模式的に示す図である。「配列1」は、表示されているオブジェクトを識別するための識別番号である。「表示情報」は、各オブジェクト内に表示される情報である。「位置情報」は、後述するデータテーブルから各オブジェクトに係わる詳細情報を呼び出すための情報である。なお、オブジェクト情報テーブルにおいては、オブジェクトが生成されたときに対応するレコードが追加され、オブジェクトが消去されたときに対応するレコードが削除される。
【0028】
図4(b) は、ライン情報テーブルの一例を模式的に示す図である。「配列2」は、表示されているオブジェクトどうしを接続するラインを識別する識別番号である。「前方情報」は、各ラインの前方に配置されているオブジェクトを指示する情報である。また、「後方情報」は、各ラインの後方に配置されているオブジェクトを指示する情報である。なお、「前方情報」および「後方情報」は、オブジェクト情報テーブルの「配列1」の値を用いてオブジェクトを指示する。
【0029】
図4(c) は、選択インデックステーブルの一例を模式的に示す図である。「配列3」は、先に表示されているオブジェクト間に新たなオブジェクトを挿入する処理に際して、ユーザにより指定されたラインを識別する識別番号である。「選択情報」は、ユーザにより指定されたラインに係わる情報を呼び出すための情報である。なお、「選択情報」は、ライン情報テーブルの「配列2」の値を用いてラインを識別する。
【0030】
図4(d) は、データテーブルの一例を模式的に示す図である。「配列4」は、オブジェクト情報テーブルから各オブジェクトに係わる詳細情報を呼び出すために利用される識別子である。「データ名」は、各オブジェクト内に表示される情報である。「先行情報」は、各オブジェクトに先行するオブジェクトを表す情報である。「X座標」および「Y座標」は、各オブジェクトが表示される位置の座標であり、この実施例では、仮想座標系を用いて表される。
【0031】
図4(a) 、図4(b) および図4(d) に示す各テーブルの内容は、図3(a) に示す図形の表示状態に対応している。すなわち、図4(a) に示すオブジェクト情報テーブルにおいて、「配列1=00」のレコードには、オブジェクトAが登録されている。また、このレコードに登録されているオブジェクトの詳細情報は、データテーブルの「配列4=31」のレコードに登録されている。したがって、オブジェクトAを表示すべき座標として、(X,Y)=(000,000)が得られる。また、オブジェクトBを表示すべき座標として、(X,Y)=(001,000)が得られる。
【0032】
図4(b) に示すライン情報テーブルには、「配列1=00」のレコードに登録されているオブジェクトと「配列1=01」のレコードに登録されているオブジェクトとを接続するラインが登録されている。ここで、「配列1=00」のレコードにはオブジェクトAが登録されており、「配列1=01」のレコードにはオブジェクトBが登録されている。したがって、図4(b) に示すライン情報テーブルには、オブジェクトAとオブジェクトBとを接続するライン(すなわち、ラインAB)が登録されていることになる。なお、図4(b) に示す「前方情報」および「後方情報」により、オブジェクトAがオブジェクトBに対する先行オブジェクトであり、オブジェクトBがオブジェクトAの後続オブジェクトであることが表わされている。
【0033】
次に、図3(a) に示す状態においてオブジェクトAとオブジェクトBとの間に新たなオブジェクトを挿入することにより図3(b) に示す状態を得る際の処理を説明する。
【0034】
オブジェクトAとオブジェクトBとの間に新たなオブジェクトを挿入する場合には、ユーザは、まず、オブジェクトAとオブジェクトBとを接続するラインABを指定する。ラインの指定方法について図5を参照しながら説明する。
【0035】
ユーザは、マウス等を用いて所望の2点(点Pおよび点Q)を指示することにより、長方形を指定する。この長方形の各辺は、それぞれ、下記の式により表される。
【0036】
x=x1 ・・・(1)
x=x2 ・・・(2)
y=y1 ・・・(3)
y=y2 ・・・(4)
なお、所望の2点を指示することにより長方形を指定する処理は、例えば、ウィンドウズシステム(マイクロソフト社のOS)などにより提供される範囲指定機能を利用する。
【0037】
上記長方形(以下、この長方形のことを「選択範囲PQ」と呼ぶ。)が指定されると、図形編集ソフトウェアは、その選択範囲PQを通過するラインが存在するか否かを調べる。各ラインを特定する方程式は、たとえば、ユーザにより選択範囲PQが入力されたときに算出してもよいし、或いはライン情報テーブルにおいて付加情報として予め登録しておいてもよい。各ラインの方程式は、一般に、下式で表される。
【0038】
y=ax+b ・・・(5)
図形編集ソフトウェアは、ライン情報テーブルに登録されている各ラインについて、そのラインと上記(1) 〜(4) によって表される各直線との交点が存在するか否かを調べる。交点が存在する場合には、その交点のy座標の値が、点Pのy座標の値(y1 )と点Qのy座標の値(y2 )との間であるか否かを調べる。そして、その交点のy座標の値が点Pのy座標の値と点Qのy座標の値との間であった場合には、当該ラインが選択範囲PQを通過するものとみなし、そのラインを選択インデックステーブルに登録する。したがって、図5に示す例の場合、ラインABが選択インデックステーブルに登録される。なお、図4(c) に示す選択インデックステーブルは、図3(a) に示す状態においてラインABが指定されたときの状態を示している。
【0039】
このように、図形編集ソフトウェアは、ユーザにより選択範囲PQが入力されると、その選択範囲PQを通過するラインを検出して選択インデックステーブルに登録する。
【0040】
続いて、ユーザは、オブジェクトAとオブジェクトBとの間に挿入すべきオブジェクトを生成する旨の指示を入力する。この指示が入力されると、図形編集ソフトウェアは、オブジェクト情報テーブルおよびデータテーブルにおいて、新たに生成されるオブジェクトに対応するレコードを追加する。図4に示す例では、オブジェクト情報テーブルにおいて「配列1=02」が追加され、データテーブルにおいては「配列4=32」が追加されている。
【0041】
このレコードの追加に続いて、図形編集ソフトウェアは、オブジェクトBが表示されている位置に新たに生成したオブジェクトが表示されるように、テーブルを更新する。まず、以下の手順によりオブジェクトBの表示位置を取得する。
【0042】
選択インデックステーブルの「選択情報=10」
↓
ライン情報テーブルの「配列2=10」の「後方情報=01」
↓
オブジェクト情報テーブルの「配列1=01」の「位置情報=30」
↓
データテーブルの「配列4=30」の「X座標」および「Y座標」
この手順により、「X座標=001」および「Y座標=000」が得られる。そして、この取得した「X座標」および「Y座標」をデータテーブルの「配列4=32」のレコードに書き込む。この結果、データテーブルは、図6(a) に示す状態に更新される。
【0043】
続いて、図形編集ソフトウェアは、データテーブルにおいて「X座標」の値が「配列4=32」に新たに登録されたレコードの「X座標」の値よりも大きく、且つ、「Y座標」の値が「配列4=32」に新たに登録されたレコードの「Y座標」の値と同じであるレコードを抽出する。そして、抽出した各レコードの「X座標」の値にそれぞれ「1」を加算する。なお、図3に示す例においては、このようなレコードは抽出されない。
【0044】
続いて、図形編集ソフトウェアは、オブジェクト間を接続するラインを再設定するためにテーブルを更新する。すなわち、まず、新たに生成するラインのためのレコード(配列2=11)をライン情報テーブルに追加する。そして、選択インデックステーブルに登録されているラインの「選択情報(=10)」をキーとしてライン情報テーブルにアクセスし、そのアクセスにより得られるレコードの「後方情報(=01)」を、ライン情報テーブルにおいて、その新たに追加されたレコードの「後方情報」として書き込む。また、そのアクセスにより得られるレコードの「後方情報」として、オブジェクト情報テーブルに新たに追加されたレコードの「配列1(=02)」を書き込む。さらに、ライン情報テーブルに新たに追加されたレコードの「前方情報」として、オブジェクト情報テーブルに新たに追加されたレコードの「配列1(=02)」を書き込む。上記処理により、ライン情報テーブルは、図6(b) に示す状態になる。
【0045】
上記処理に続いて、オブジェクトBを右方向に移動させるためにテーブルを更新する。まず、以下の手順により、オブジェクトBの座標を取得する。
ライン情報テーブルの「配列2=11」の「後続情報=01」
↓
オブジェクト情報テーブルの「配列1=01」の「位置情報=30」
↓
データテーブルの「配列4=30」の「X座標」および「Y座標」
この手順により、「X座標=001」および「Y座標=000」が得られる。そして、この取得した「X座標」に「1」を加算する。
【0046】
上記処理の結果、オブジェクト情報テーブル、ライン情報テーブル、及びデータテーブルは、ぞれぞれ図7(a) 、図7(b) 、及び図7(c) に示す状態になる。そして、これらのテーブルに従ってデータを表示することにより、図3(b) に示す図形が得られる。なお、選択インデックステーブルは、上記処理が終了したときに削除される。
【0047】
図8は、オブジェクトどうしの間に新たなオブジェクトを挿入する処理におけるユーザの操作のフローチャートである。ステップS1では、ユーザは、ラインを指定(または、選択)する。ステップS2では、ユーザは、新規オブジェクトを生成する。ラインを指定する方法、およびオブジェクトを生成する方法については、上述した通りである。ステップS3では、ステップS2において生成した新規オブジェクトに所望の情報を設定する。この操作は、たとえば、キーボードを用いた文字列等の入力、あるいは予め作成されたデータの貼付けである。
【0048】
図9は、図形編集ソフトウェアの動作の概略フローチャートである。このフローチャートの処理は、ユーザによりラインが指定されたときに実行される。
ステップS11では、ユーザにより指定されたラインを検出する。ステップS12では、図形データを更新する。図形データとは、少なくとも図4に示したテーブルに登録されている情報を含む。なお、ステップS12は、ユーザにより新たなオブジェクトを生成する旨の指示が入力されたときに実行される。ステップS13では、ステップS12において更新された図形データに従って図形を表示する。
【0049】
図10は、「指定されたラインの検出」の詳細フローチャートであり、図9のステップS11の処理に対応する。このフローチャートの処理は、ライン情報テーブルに登録されている各ラインについて順番に実行される。すなわち、この処理は、表示されている各ラインについて実行される。
【0050】
ステップS21では、ライン情報テーブルに登録されているラインを取得し、そのラインを表す方程式を求める。ラインの方程式を求める方法は、既知の技術により容易に実現される。
【0051】
ステップS22では、ステップS21で取得したラインがユーザにより入力された選択範囲を通過するか否かを調べる。この判断のための方法は、図5を参照しながら説明した通りである。上記ラインが選択範囲を通過する場合にはステップS23の処理が実行され、そうでない場合にはステップS23はスキップされる。
【0052】
ステップS23では、上記選択範囲を通過するラインを選択インデックステーブルに登録する。具体的には、選択インデックステーブルに新たなレコードを追加し、そのレコードの「選択情報」として、ステップS21で取得したラインに対応する「配列2」の値を書き込む。ステップS24は、ライン情報テーブル内に未処理のラインが残っていた場合に、ステップS21に戻って次のラインを取得するための処理である。
【0053】
上記処理により、ユーザにより指定されたラインが選択インデックステーブルに登録される。なお、ユーザが複数のラインを指定したときには、複数のラインが選択インデックステーブルに登録されることになる。
【0054】
図11は、「図形データの更新」の詳細フローチャートであり、図9のステップS12の処理に対応する。このフローチャートの処理は、選択インデックステーブルに登録されている各レコードについて順番に実行される。すなわち、この処理は、ユーザにより指定された各ラインについて実行される。
【0055】
ステップS31では、ユーザの指示により新たに生成されるべきオブジェクトを描画するためのデータをメモリ上の所定の領域にロードする。ステップS32では、新規オブジェクトのためのレコードをオブジェクト情報テーブルおよびデータテーブルに追加する。ステップS33では、選択インデックステーブルからレコードを抽出する。
【0056】
ステップS34では、ステップS33で抽出したレコードが選択インデックステーブルにおける第1番目のレコードであるか否かを調べる。第1番目のレコードであった場合には、ステップS35の処理が実行され、そうでなかった場合にはステップS35はスキップされる。
【0057】
ステップS35では、新規オブジェクトを表示するための座標が設定される。ステップS36では、新規オブジェクトを挿入することにより表示位置が変更されるオブジェクトの座標が更新される。ステップS37では、新規オブジェクトを挿入することにより接続関係が変化するラインに係わる情報が変更される。なお、ステップS35〜S37の各処理については後述詳しく説明する。ステップS38は、選択インデックステーブルに未処理のレコードが残っていた場合に、ステップS33に戻って次のレコードを取得するための処理である。
【0058】
上記処理により、新規オブジェクトを表示するためのデータが設定される。また、ユーザにより指定されたラインの後方に接続されているオブジェクトの表示位置の座標が更新される。さらに、オブジェクト間を接続するラインが再設定される。
【0059】
図12は、新規オブジェクトを表示する座標を設定する処理の詳細フローチャートであり、図11のステップS35の処理に対応する。なお、図12に示すフローチャートの処理は、選択インデックステーブルの第1番目のレコードのみについて実行される。
【0060】
ステップS41では、選択インデックステーブルの第1番目のレコードの「選択情報」が抽出される。ステップS42では、ステップS41において抽出された「選択情報」をキーとしてライン情報テーブルがアクセスされ、「後方情報」が抽出される。ステップS43では、ステップS42で抽出された「後方情報」をキーとしてオブジェクト情報テーブルがアクセスされ、「位置情報」が抽出される。ステップS44では、ステップS43で抽出された「位置情報」をキーとしてデータテーブルがアクセスされ、「X座標」及び「Y座標」が抽出される。ステップS45では、データテーブルにおいて、新規オブジェクトの「X座標」及び「Y座標」として、ステップS44で抽出した「X座標」及び「Y座標」が設定される。
【0061】
図13は、先に表示されているオブジェクトを表示するための座標を必要に応じて変更する処理の詳細フローチャートであり、図11のステップS36の処理に対応する。なお、図13に示すフローチャートの処理は、選択インデックステーブルに登録されている各レコードについて実行される。
【0062】
ステップS41〜S44は、図12を参照しながら説明した通りである。ただし、図13のフローチャートについての説明においては、ステップS41〜S44の処理により得られる「X座標」および「Y座標」をそれぞれ「Xa 」および「Ya 」と呼ぶことにする。
【0063】
ステップS51〜S54の処理は、データテーブルの各レコードについて実行される。ステップS51では、データテーブルからレコードを取得し、そのレコードから「X座標」および「Y座標」を抽出する。なお、ステップS51で抽出した「X座標」および「Y座標」をそれぞれ「Xi 」および「Yi 」と呼ぶことにする。
【0064】
ステップS52では、ステップS44で抽出した「Y座標(Ya )」とステップS51で抽出した「Y座標(Yi )」が互いに一致しているか否かを調べる。互いに一致していればステップS53が実行され、そうでない場合にはステップS53およびS54はスキップされる。ステップS53では、ステップS51で抽出した「X座標(Xi )」がステップS44で抽出した「X座標(Xa )」よりも大きいか否かを調べる。「X座標(Xi )」が「X座標(Xa )」よりも大きい場合にはステップS54が実行され、そうでない場合にはステップS54はスキップされる。
【0065】
ステップS54では、ステップS51で抽出した「X座標(Xi )」に「1」が加算される。ステップS55は、データテーブルに未処理のレコードが残っていた場合に、ステップS51に戻って次のレコードを取得させるための処理である。
【0066】
上記処理により、ユーザにより選択されたラインの後方に接続されているオブジェクトを表示するためのX座標が変更される。この結果、この更新されたデータテーブルに従って図形が描かれる際には、それらのオブジェクトの表示位置がX方向にシフトされる。
【0067】
図14は、接続関係が変更されるラインに係わる設定を変更する処理の詳細フローチャートであり、図11のステップS37の処理に対応する。なお、図14に示すフローチャートの処理は、選択インデックステーブルに登録されている各レコードについて実行される。
【0068】
図14のフローチャートの説明においては、図15に示す例を参照する。図15に示す例では、図15(a) に示す状態においてラインABが選択され、オブジェクトAとオブジェクトBとの間に新規オブジェクトが挿入される。そして、この結果、図15(b) に示す表示状態が得られる。この場合、選択ラインの「後方情報」は、「オブジェクトB」から「新規オブジェクト」に変更される。また、新規ラインの「前方情報」および「後方情報」として、それぞれ「新規オブジェクト」および「オブジェクトB」が設定される。さらに、オブジェクトBの表示位置が右方向(X方向)にシフトされる。
【0069】
ステップS61では、新規ラインを描画するためのデータをメモリ上の所定の領域にロードする。このとき、ライン情報テーブルにその新規ラインのためのレコードが追加される。
【0070】
ステップS62では、新規ラインの「後方情報」として選択ラインの「後方情報」を設定する。たとえば、図15(a) では、選択ラインの後方に「オブジェクトB」が接続されている。したがって、この場合、新規ラインの「後方情報」として「オブジェクトB」が設定されることになる。
【0071】
ステップS63では、選択ラインの「後方情報」として新規オブジェクトのインデックスを設定する。また、ステップS64では、新規ラインの「前方情報」として新規オブジェクトのインデックスを設定する。ここで、「インデックス」とは、たとえば、オブジェクトを識別するための識別番号であり、オブジェクト情報テーブルの「配列1」に相当する。
【0072】
ステップS65〜S67は、新規オブジェクトが表示されるべき位置に存在しているオブジェクトを、X方向に移動させるための処理である。すなわち、ステップS65〜S67は、図15(a) に示す例においては、オブジェクトBを右方向に移動させるための処理である。
【0073】
ステップS65では、ライン情報テーブルから新規ラインの「後方情報」が抽出される。ステップS66では、ステップS65で抽出された「後方情報」をキーとしてオブジェクト情報テーブルがアクセスされ、対応する「位置情報」が抽出される。ステップS67では、ステップS66で抽出された「位置情報」をキーとしてデータテーブルがアクセスされ、「X座標」が抽出される。そして、その抽出した「X座標」に「1」が加算される。
【0074】
次に、第1の実施形態の編集方法について他の具体例を説明する。以下では、図16(a) に示す状態において、オブジェクトAとオブジェクトBとの間であって且つオブジェクトAとオブジェクトCとの間に新規オブジェクトを挿入することにより、図16(b) に示す状態を得る場合の編集方法について説明する。
【0075】
図17は、表示画面の説明図であり、図16(a) に示す状態に対応している。この実施例では、仮想座標系が用いられている。すなわち、図形を構成する各オブジェクトの表示位置は、仮想座標系を用いて表される。たとえば、オブジェクトAの表示位置は、仮想座標系において、(X,Y)=(0,0)として表される。
【0076】
図18(a) は、オブジェクト情報テーブルの一例を示す図である。オブジェクト情報テーブルは、表示されている各オブジェクトに係わる情報を格納する。なお、図18(a) に示すオブジェクト情報テーブルは、図17に示す表示状態を表している。すなわち、オブジェクトA〜オブジェクトGは、それぞれオブジェクト番号「1」〜「7」が割り当てられている。また、各オブジェクトの表示位置の座標が格納されている。なお、「配列1(インデックス)」がオブジェクト情報テーブルの各レコードを特定する番号であるのに対し、「オブジェクト番号」は表示されているオブジェクトを識別するための番号であるので、それらは必ずしも互いに一致しない。
【0077】
図18(b) は、ライン情報テーブルの一例を示す図である。ライン情報テーブルは、表示されている各ラインに係わる情報を格納する。なお、図18(b) に示すライン情報テーブルは、図17に示す表示状態を表している。すなわち、各ラインに対して、それぞれライン番号(連結線番号)として「1」〜「6」が割り当てられている。また、各ラインの前方に接続されているオブジェクトを特定するための「前方情報」及び各ラインの後方に接続されているオブジェクトを特定するための「後方情報」が格納されている。なお、「配列2(インデックス)」がライン情報テーブルの各レコードを特定する番号であるのに対し、「ライン番号」は表示されているラインを識別するための番号であるので、それらは必ずしも互いに一致しない。
【0078】
図17に示す状態において、オブジェクトAとオブジェクトBとの間であって且つオブジェクトAとオブジェクトCとの間に新規オブジェクトを挿入する場合には、ユーザは、図19(a) に示すように、マウス等を用いた範囲指定により、オブジェクトAとオブジェクトBとを接続するラインおよびオブジェクトAとオブジェクトCとを接続するラインを選択する。すなわち、ライン1およびライン3を選択する。
【0079】
図形編集ソフトウェアは、ユーザにより選択されたラインを検出する。ラインを検出する方法は、図5を参照しながら上述した通りである。そして、ユーザにより選択されたラインは、図19(b) に示すように、選択インデックステーブルに登録される。なお、選択インデックステーブルに登録される「登録位置」は、ライン情報テーブルから該当するラインに係わる情報を取り出すための「インデックス(配列2)」である。
【0080】
続いて、ユーザは、上記の位置に挿入すべき新規オブジェクトを生成する。この指示を受け取ると、図形編集ソフトウェアは、まず、その新規オブジェクトを描くためのデータ、およびその新規オブジェクトの挿入に伴って新たに必要となるラインを描くためのデータをメモリ上の所定の領域にロードする。そして、図20(a) に示すように、オブジェクト情報テーブルに新規オブジェクトのためのレコードが追加され、また、図20(b) に示すように、ライン情報テーブルに新規ラインのためのレコードが追加される。
【0081】
図形編集ソフトウェアは、選択インデックステーブルの第1番目のレコードに登録されているラインについて以下の処理を行う。
まず、図21に示すように、選択インデックステーブルの第1番目のレコードから「選択位置」を抽出し、その「選択位置」をキーとしてライン情報テーブルにアクセスする。「選択位置」は、ライン情報テーブルの「インデックス」を表す。したがって、上記アクセスにより、ライン1に係わる情報が得られる。続いて、ライン情報テーブルから、ライン1の「後方情報」を抽出し、その「後方情報」をキーとしてオブジェクト情報テーブルにアクセスする。「後方情報」は、オブジェクト情報テーブルの「インデックス」を表す。したがって、このアクセスにより、オブジェクトBに係わる情報が得られる。そして、このオブジェクトBの「X座標」および「Y座標」が抽出され、新規オブジェクトのためのレコードに書き込まれる。
【0082】
上記処理により、新規オブジェクトを表示するための座標として、オブジェクトBの現在の表示位置の座標が得られる。
続いて、図22に示すように、オブジェクト情報テーブルにおいて、オブジェクトBおよびオブジェクトCの「X座標」にそれぞれ「1」を加算する。オブジェクトBおよびオブジェクトCは、ユーザにより選択されたライン1の後方(図17においては、ライン1の右側)に接続されているオブジェクトである。
【0083】
この加算処理は、具体的には、まず、ライン情報テーブルに格納されているライン1の「後方情報」として特定されるオブジェクトの「X座標」および「Y座標」をオブジェクト情報テーブルから抽出する。ここでは、オブジェクトBの座標として(X,Y)=(001,000)が得られる。そして、オブジェクト情報テーブルにおいて、「X座標≧001」かつ「Y座標=000」であるレコードを検索し、抽出されたレコードの「X座標」に「1」を加算する。この結果、オブジェクトBの座標が(X,Y)=(002,000)に変更され、また、オブジェクトCの座標が(X,Y)=(003,000)に変更される。なお、新規オブジェクトのためのレコードは、検索対象から外される。
【0084】
上記処理により、オブジェクトBおよびオブジェクトCを表示すべき座標がそれぞれ玉突き的に変更される。
この加算処理の後、オブジェクト情報テーブルにおいて新規オブジェクトのためのレコードを指示するインデックスが、ライン情報テーブルにおいて新規ラインの「後方情報」として書き込まれる。すなわち、新規ラインの「後方情報」として、新規オブジェクトを表すインデックスが設定される。
【0085】
続いて、図23(a) に示すように、選択インデックステーブルの第1番目のレコードの「選択位置」により指定されるライン情報テーブルのレコードから「前方情報」を抽出し、それを新規ラインの「前方情報」に書き込む。すなわち、ライン情報テーブルにおいて、ライン1の「前方情報」である「1」が新規ラインの「前方情報」に書き込まれる。
【0086】
さらに、図23(b) に示すように、選択インデックステーブルの第1番目のレコードの「選択位置」により指定されるライン情報テーブルのレコードの「前方情報」として、新規ラインの「後方情報」を書き込む。すなわち、ライン情報テーブルにおいて、新規ラインの「後方情報」である「8」が、ライン1の「前方情報」に書き込まれる。
【0087】
上記処理により、ライン情報テーブルにおいて、新規ラインの前方にオブジェクトAが接続される旨の情報、およびユーザにより選択されたライン1の前方に新規オブジェクトが接続される旨の情報が登録される。
【0088】
次に、図形編集ソフトウェアは、選択インデックステーブルの第2番目以降の各レコードに登録されているラインについて以下の処理を行う。ここでは、第2番目のレコードについての処理を説明する。
【0089】
まず、図24に示すように、選択インデックステーブルの第2番目のレコードから「選択位置」を抽出し、その「選択位置」をキーとしてライン情報テーブルにアクセスする。このアクセスにより、ライン3に係わる情報が得られる。続いて、ライン情報テーブルから、ライン3の「後方情報」を抽出し、その「後方情報」をキーとしてオブジェクト情報テーブルにアクセスする。このアクセスにより、オブジェクトDに係わる情報が得られる。そして、このオブジェクトDおよびオブジェクトEの「X座標」にそれぞれ「1」を加算する。オブジェクトDおよびオブジェクトEは、ユーザにより選択されたライン3の後方に接続されているオブジェクトである。
【0090】
この加算処理は、基本的には、図22を参照しながら説明した手順と同じであり、具体的には、まず、ライン情報テーブルに格納されているライン3の「後方情報」として特定されるオブジェクトの「X座標」および「Y座標」をオブジェクト情報テーブルから抽出する。ここでは、オブジェクトDの座標として(X,Y)=(001,001)が得られる。そして、オブジェクト情報テーブルにおいて、「X座標≧001」かつ「Y座標=001」であるレコードを検索し、抽出されたレコードの「X座標」に「1」を加算する。この結果、オブジェクトDの座標が(X,Y)=(002,001)に変更され、また、オブジェクトEの座標が(X,Y)=(003,001)に変更される。なお、新規オブジェクトのためのレコードは、検索対象から外される。
【0091】
更に、図25に示すように、選択インデックステーブルの第2番目のレコードの「選択位置」により指定されるライン情報テーブルのレコードの「前方情報」として、新規ラインの「後方情報」を書き込む。すなわち、ライン情報テーブルにおいて、新規ラインの「後方情報」である「8」がライン3の「前方情報」に書き込まれる。
【0092】
上記図20〜図25を参照しながら説明した処理により、オブジェクト情報テーブルは、図26(a) に示す状態に更新され、また、ライン情報テーブルは、図26(b) に示す状態に更新される。なお、選択インデックステーブルは、上記処理が終了したときに削除される。
【0093】
図27は、図26(a) および図26(b) に示す更新後のテーブルに従って描画される図形を示す図である。
オブジェクトAは、オブジェクト情報テーブルの第1番目のレコードが更新されていないので、(X,Y)=(000,000)に表示される。また、新規オブジェクトは、オブジェクト情報テーブルの第8番目のレコードに格納されている情報に従って、(X,Y)=(001,000)に表示される。さらに、ライン情報テーブルの第7番目のレコードに格納されている情報に従って、オブジェクトAと新規オブジェクトとを接続する新規ラインが表示される。
【0094】
オブジェクトB〜Eは、それぞれオブジェクト情報テーブルにおいて対応する「X座標」が「1」ずつ増加させられたので、図17に示した状態と比べて、それぞれ右方向に「1」だけシフトした位置に表示されている。また、ライン情報テーブルにおいて、ライン1およびライン3の「前方情報」がそれぞれ「1」から「8」に更新されたので、ライン1は、新規オブジェクトとオブジェクトBとを接続するように表示され、ライン3は、新規オブジェクトとオブジェクトDとを接続するように表示される。この結果、図16(b) に示す図形が得られる。
【0095】
図28は、表示画面における絶対座標系と図形編集ソフトウェアが使用する仮想座標系との変換関係を説明する図である。仮想座標系の「各枡の高さ」および「各枡の幅」は、それぞれ絶対座標系においては「a」および「b」に変換される。また、「各枡の原点からその枡の中に表示されるオブジェクトの左端までのオフセット」および「各枡の原点からその枡の中に表示されるオブジェクトの上端までのオフセット」は、それぞれ絶対座標系においては「c」および「d」に変換される。さらに、「各オブジェクトの幅」は、絶対座標系においては「e」に変換される。
【0096】
上記変換関係が設定されている場合、仮想座標系における座標が(X,Y)=(n,m)であるオブジェクトの表示位置は、絶対座標系においては以下の式で表される。
【0097】
オブジェクトの左端のx座標 = n×b+c
オブジェクトの上端のy座標 = m×a+d
また、ラインの始点は、絶対座標系においては以下の式で表される。
【0098】
ラインの始点のx座標 = n×b+c+e
ラインの始点のy座標 = m×a+d
次に、フローチャートを参照しながら、図16〜図27に示した編集方法についてさらに詳しく説明する。なお、ユーザの操作は、図8に示した手順と同じである。また、概略フローチャートは、図9に示した通りであるので省略する。更に、ユーザにより選択されたラインを検出して選択インデックステーブルに登録する処理は、基本的に、図10に示したフローチャートの手順と同じである。
【0099】
図29は、「図形データの更新」の詳細フローチャートであり、図9のステップS12の処理に対応する。このフローチャートの処理は、選択インデックステーブルに登録されている各レコードについて順番に実行される。すなわち、この処理は、ユーザにより指定された各ラインについて実行される。
【0100】
ステップS71では、新規オブジェクトおよび新規ラインを描画するためのデータがメモリ上の所定の領域にロードされる。ステップS72では、新規オブジェクトのためのレコードがオブジェクト情報テーブルに追加され、新規ラインのためのレコードがライン情報テーブルに追加される。
【0101】
ステップS73およびS77は、選択インデックステーブルから1つずつ順番にレコードを抽出する処理である。ステップS74では、ステップS73で抽出したレコードが選択インデックステーブルにおける第1番目のレコードであるか否かを調べる。第1番目のレコードであった場合には、ステップS75の処理が実行され、そうでなかった場合にはステップS75はスキップされる。
【0102】
ステップS75は、新規オブジェクトを表示するためのデータを設定する処理である。ステップS76は、新規オブジェクトを挿入することにより発生する座標変換処理である。なお、ステップS75およびS76の各処理については、後述詳しく説明する。
【0103】
上記処理により、新規オブジェクトを表示するためのデータが設定される。また、ユーザにより指定されたラインの後方に接続されているオブジェクトの表示位置の座標が更新される。さらに、オブジェクト間を接続するラインが再設定される。
【0104】
図30は、新規オブジェクトを表示するためのデータを設定する処理の詳細フローチャートであり、図29のステップS75の処理に対応する。このフローチャートの処理は、選択インデックステーブルの第1番目のレコードのみについて実行される。
【0105】
ステップS81は、オブジェクト情報テーブルにおいて、新規オブジェクトの「X座標」および「Y座標」を設定する。この処理は、図12に示したフローチャートのステップS41〜S45の処理と同じである。
【0106】
ステップS82では、新規ラインの「後方情報」として新規オブジェクトを設定する。具体的には、オブジェクト情報テーブルにおいて新規オブジェクトのためのレコードを識別する「インデックス」を、ライン情報テーブルにおいて、新規ラインの「後方情報」として書き込む。
【0107】
ステップS83では、新規ラインの「前方情報」として、ユーザにより選択されたラインの前方に接続されているオブジェクトを設定する。具体的には、ライン情報テーブルにおいて、選択インデックステーブルの第1番目のレコードに格納されている「選択位置」により特定されるラインの「前方情報」を、新規ラインの「前方情報」に書き込む。
【0108】
ステップS84では、選択インデックステーブルの第1番目のデータに対応するラインの「前方情報」として、新規ラインの「後方情報」を設定する。具体的には、ライン情報テーブルにおいて、選択インデックステーブルの第1番目のレコードに格納されている「選択位置」により特定されるラインの「前方情報」として、新規ラインの「後方情報」に書き込む。
【0109】
図31は、先に表示されているオブジェクトを表示するための座標を必要に応じて変更する処理の詳細フローチャートであり、図29のステップS76の処理に対応する。なお、このフローチャートの処理は、選択インデックステーブルに登録されている各レコードについてそれぞれ実行される。
【0110】
ステップS91では、処理すべきレコードが選択インデックステーブルの第1番目のレコードであるか否かを調べる。第1番目のレコードであれば、ステップS92において、オブジェクト情報テーブルから新規オブジェクトの座標を抽出する。一方、第1番目のレコードでなかった場合は、ステップS93において、当該ラインの後方に接続されているオブジェクトの座標を抽出する。なお、以下では、ステップS92またはS93において抽出した座標を(Xa ,Ya )とする。
【0111】
ステップS94およびS99は、オブジェクト情報テーブルに登録されているレコード(新規オブジェクトのためのレコードを除く)を1つずつ取り出してステップS95〜S98を実行させるための処理である。
【0112】
ステップS95は、ステップS94において取り出されたレコードのオブジェクトの座標を抽出する。以下では、この座標を(Xi ,Yi )とする。ステップS96では、「Ya =Yi 」であるか否かを調べ、条件が満たされていればステップS97が実行され、満たされていなければステップS97およびS98はスキップされる。ステップS97では、「Xi ≧Xa 」であるか否かを調べ、条件が満たされていればステップS98が実行され、満たされていなければステップS98はスキップされる。そして、ステップS98では、ステップS95で抽出された「X座標」に「1」が加算される。
【0113】
すべてのレコード(新規オブジェクトのためのレコードを除く)についてステップS95〜S98が実行されると、ステップS100へ進む。ステップS100では、選択インデックステーブルにより特定されるラインの「前方情報」として、新規ラインの「後方情報」を設定する。
【0114】
なお、上記実施例では、第2のオブジェクトが第1のオブジェクトに従属する場合に、その第2のオブジェクトが第1のオブジェクトの右側に接続されるというルールで描かれた図形を採り上げたので、第1のオブジェクトと第2のオブジェクトとの間に第3のオブジェクトを挿入した際には、第2のオブジェクトが横方向にシフトさせられた。しかしながら、本発明は、この構成に限定されるものではない。たとえば、第2のオブジェクトが第1のオブジェクトに従属する場合に、その第2のオブジェクトが第1のオブジェクトの下側に接続されるというルールで描かれた図形においては、第1のオブジェクトと第2のオブジェクトとの間に第3のオブジェクトを挿入した際に、第2のオブジェクトを下方向にシフトさせてもよい。
【0115】
この場合、オブジェクトを移動させる方向は、ユーザにより選択されたラインの前方および後方にそれぞれ接続されているオブジェクトの座標を比較することにより判定される。たとえば、ユーザにより選択されたラインの前方および後方にそれぞれ接続されているオブジェクトのY座標が互いに同じであれば、そのラインの後方に接続されているオブジェクトを横方向にシフトし、それらのX座標が互いに同じであれば、そのラインの後方に接続されているオブジェクトを下方向にシフトさせる。なお、オブジェクトを縦方向に移動させる処理は、オブジェクト情報テーブルにおいてその「Y座標」を変更すればよい。
第2の実施形態
上述した第1の実施形態の編集方法においては、ユーザは、オブジェクトを挿入しようとする位置に表示されているラインを直接的に指定する手順が必要であった。これに対して、第2の実施形態の編集方法においては、ユーザは、ラインを直接的に指定する必要はなく、挿入しようとするオブジェクトを所定の目標位置に移動させることにより、そのオブジェクトを所望のオブジェクト間に挿入できる。
【0116】
図32(a) 〜図32(c) は、第2の実施形態の図形編集方法の動作を説明するための図である。ここでは、オブジェクトA〜Cが直列的に接続されたフローチャートにおいて、オブジェクトAとオブジェクトBとの間にオブジェクトDを挿入する場合の動作を説明する。
【0117】
ユーザは、まず、図32(a) に示すように、マウス等を用いてオブジェクトDをドラッグし、図32(b) に示すように、オブジェクトAとオブジェクトBとを接続するラインABに重なるようにそのオブジェクトDをドロップする。ラインABとオブジェクトDとが互いに重なり合ったことを検出すると、図形編集ソフトウェアは、図32(c) に示すように、オブジェクトAとオブジェクトDとを接続するとともに、オブジェクトDとオブジェクトBとを接続する。
【0118】
接続は、コネクタ・オブジェクトを用いて行われる。この挿入処理は、ラインB(コネクタ・オブジェクト)を削除して新たな2つのコネクタ・オブジェクト(オブジェクトAとオブジェクトDを接続するコネクタ・オブジェクト、オブジェクトDとオブジェクトBを接続するコネクタ・オブジェクト)を生成する。なお、ラインBを削除せずに、ラインBを、これら2つのコネクタ・オブジェクトの一に変更してもよい。この場合、コネクタ・オブジェクトは、オブジェクトの外周上のいずれの点を接続するものであってもよい。
【0119】
なお、各オブジェクトは、それぞれラインが接続されるべき点が予め決められていることが望ましい。例えば、オブジェクトAのような長方形のオブジェクトは、ラインは長方形の長辺の中点に接続される。また、オブジェクトDのような菱形のオブジェクトは、ラインは任意の頂点に接続され得る。
【0120】
図33(a) 〜図33(c) は、第2の実施形態の図形編集方法の他の動作を説明するための図である。ここでは、図33(a) に示すように、オブジェクトAとオブジェクトBとの間の距離(縦方向の長さ)aがオブジェクトDの高さhに対して十分でないものとする。この場合、図33(b) に示すように、オブジェクトAとオブジェクトBとを接続するラインABに重なるようにオブジェクトDがドロップされると、図形編集ソフトウェアは、オブジェクトAとオブジェクトBとの間の距離を自動的に大きくし、その間にオブジェクトDを挿入する。ここでは、オブジェクトBを下方に移動させることにより、オブジェクトAとオブジェクトBとの間の距離が大きくされている。なお、オブジェクトAとオブジェクトDとを接続すると共にオブジェクトDとオブジェクトBとを接続する処理は、図32に示した例と同じである。この結果、図33(c) に示す状態が得られる。
【0121】
このように、第2の実施形態の編集方法においては、互いに接続された第1のオブジェクトと第2のオブジェクトとの間に新たなオブジェクトを挿入しようとする場合には、第1および第2のオブジェクトを互いに接続するラインに重なるように挿入すべきオブジェクトを移動させる操作を行うだけでよい。この操作により、オブジェクト間のラインが自動的に再設定され、また、必要に応じて各オブジェクトは再配置される。
【0122】
なお、既存の図形編集ソフトウェアを用いて図32(a) 〜図32(c) に示した編集作業と同等の作業を行う場合は、たとえば、図34(a) 〜図34(d) に示すように(Microsoft 社のPower Point 97の例)、ラインABを削除する作業、オブジェクトDを移動する作業、およびオブジェクト間を接続する作業が必要になり、ユーザの負担が大きい。もっとも、既存の図形編集ソフトウェアの中には、図35(a) 及び図35(b) に示すように(Visio 社のVisio Professional 5.0 for Microsoft Windows の例)、オブジェクトに移動に伴ってラインが変形させられるものも知られている。しかしながら、この場合においても、結局は、ユーザ自身がラインを再設定しなければならず、ユーザの負担が軽減されたとは言えない。
【0123】
図36(a) は、オブジェクト情報テーブルの一例を示す図である。オブジェクト情報テーブルには、各オブジェクトが表示されている位置の座標や、そのオブジェクトの形状を表す情報等が格納される。「座標」としては、たとえば、図37に示すように、各オブジェクトの左上隅の絶対座標が格納される。また、「形状」としては、基本的に、アプリケーションソフトウェアが提供する図形部品を識別する情報が用いられる。アプリケーションソフトウェアは、たとえば、長方形、菱形、円、などを提供する。さらに、各オブジェクトの形状を表す具体的な情報として、オブジェクトの「高さ」や「幅」などが格納される。
【0124】
図36(b) は、ライン情報テーブルの一例を示す図である。ライン情報テーブルには、各ラインが表示されている位置およびその形状を特定する情報、並びにオブジェクト間の接続関係を表す情報が格納される。「始点座標」および「終点座標」は、それぞれ各ラインの始点の座標および終点の座標である。また、「前方情報」および「後方情報」は、第1の実施形態において説明したものと同じであり、各ラインの前方に接続されているオブジェクトを特定する情報、および各ラインの後方に接続されているオブジェクトを特定する情報である。なお、各ラインと前方オブジェクトとの接続点が「始点座標」であり、また、各ラインと後方オブジェクトとの接続点が「終点座標」である。さらに、「高さ」は、各ラインの始点のY座標と終点のY座標との差を表す。
【0125】
なお、このライン情報テーブルにより、オブジェクト間の従属関係が管理される。たとえば、図36(b) に示すテーブルでは、オブジェクトBがオブジェクトAに従属していることが登録されている。
【0126】
図38は、第2の実施形態の編集方法におけるユーザの操作手順を説明するフローチャートである。ステップS201では、挿入すべき新規オブジェクトを生成する。オブジェクトの生成方法は、たとえば、第1の実施形態において説明した方法と同じである。ステップS202では、マウス等を用いて、ステップS201で生成した新規オブジェクトを所望の位置に移動させる。具体的には、たとえば、図32(b) に示したように、新規オブジェクトを所望の位置にドロップする。このように、第2の実施形態の編集方法においては、ユーザの負担はさらに軽減されている。
【0127】
図39は、第2の実施形態の図形編集ソフトウェアの動作を説明するフローチャートである。このフローチャートの処理は、ユーザにより新規オブジェクトが生成されたときに実行される。すなわち、この処理は、図38に示したフローチャートにおけるステップS201が実行されたときに開始される。以下では、図36および図37を参照し、ラインDにより互いに接続されているオブジェクトAとオブジェクトBとの間にオブジェクトCを挿入する処理を例に採り上げて説明する。
【0128】
ステップS211では、オブジェクト情報テーブルにおいて、ユーザにより生成されたオブジェクトCのためのレコードを追加する。ステップS212では、オブジェクトCに係わる情報をステップS211において追加したレコードに書き込む。図36(a) に示す例では、「インデックス=3」のレコードに「座標=(Mx ,My )」「形状=長方形」「高さ=MH」および「幅=MW」が書き込まれている。
【0129】
ステップS213では、ユーザがオブジェクトCを移動させたときに、その移動指示に従ってオブジェクトCの座標を更新する。ステップS214では、ユーザにより移動させられたオブジェクトCとオーバーラップするラインが存在するか否かを調べる。この判断では、オブジェクトCの「座標」「高さ」「幅」、及びライン情報テーブルに格納されている各ラインについての「始点座標」「終点座標」「高さ」が使用される。
【0130】
オブジェクトCとオーバーラップするラインが存在する場合には、ステップS215においてオブジェクト挿入処理が実行され、存在しない場合には、ステップS216において、更新された座標に従ってオブジェクトCが描画される。
【0131】
図40は、オブジェクト挿入処理の詳細フローチャートである。この処理は、図39のステップS215に対応する。
ステップS221では、ユーザの操作によりオブジェクトCとオーバーラップすることとなったラインの「高さ」を取得する。実施例では、ライン情報テーブルから「ラインの高さ=LH」が得られる。ステップS222では、オブジェクトCの「高さ」を取得する。実施例では、オブジェクト情報テーブルから「オブジェクトの高さ=MH」が得られる。
【0132】
ステップS223では、ステップS221で取得したラインの「高さ」がステップS222で取得したオブジェクトの「高さ」に対して十分に大きいか否かを調べる。具体的には、下式の条件が満たされるか否かを調べる。
【0133】
LH > MH+2×α
ここで、「α」は、ラインの長さの最低値であり、予め決められた値である。
この条件が満たされていないときには、オブジェクトCを挿入するために十分なスペースが存在しないものとみなし、ステップS224の処理が実行される。上記条件が満たされている場合には、ステップS224はスキップされる。
【0134】
ステップS224では、オブジェクトCを挿入するためのスペースを生成するために、周辺のオブジェクトを移動する。実施例では、オブジェクトBを表示するための座標が変更される。ステップS225では、オブジェクトCに係る情報を更新する。具体的には、オブジェクト情報テーブルにおいてオブジェクトCのためのレコードを更新する。
【0135】
ステップS226では、新規ラインを生成する。具体的には、まず、ライン情報テーブルに新規ライン(実施例では、オブジェクトAとオブジェクトCとを接続するラインE)のためのレコードを追加し、そのレコードに各種情報を設定する。ステップS227では、周辺のラインの設定を更新する。実施例では、オブジェクトAとオブジェクトBとを接続していたラインDを、オブジェクトCとオブジェクトBとを接続するように設定を変更する。具体的には、ライン情報テーブルにおいて、「接続情報(前方情報および/または後方情報)」「座標(始点座標および/または終点座標)」および「高さ」を必要に応じて変更する。
【0136】
ステップS228では、ステップS224〜S227の処理により更新されたオブジェクト情報テーブル及びライン情報テーブルに従って図形を描画する。
次に、図37に示した表示状態を例として取り上げ、ステップS224〜S227の処理を具体的に示す。
(1)オブジェクトBの設定
新Qx =Qx
新Qy =LSy +MH+2×α
(2a)オブジェクトCの設定(オブジェクトBを移動していない場合)
Mx =Px +((Qx −Px)÷2)
My =LSy +(LH÷2)−(MH÷2)
(2b)オブジェクトCの設定(オブジェクトBを移動した場合)
Mx =Px +((Qx −Px)÷2)
My =LSy +α
(3a)新規ラインEの設定(オブジェクトBを移動していない場合)
NSx =LSx
NSy =LSy
NH =(LH÷2)−(MH÷2)
NEx =Mx +(MW÷2)
NEy =My
(3b)新規ラインEの設定(オブジェクトBを移動した場合)
NSx =LSx
NSy =LSy
NH =α
NEx =Mx +(MW÷2)
NEy =My
(4a)新規ラインDの設定(オブジェクトBを移動していない場合)
新LSx =Mx +(MW÷2)
新LSy =My +MH
新LH =(LH÷2)−(MH÷2)
新LEx =LEx
新LEy =LEy
(4b)新規ラインDの設定(オブジェクトBを移動した場合)
新LSx =Mx +(MW÷2)
新LSy =My +MH
新LH =α
新LEx =LEx
新LEy =新Qy
上記演算により更新されたオブジェクト情報テーブルおよびライン情報テーブルに従って表示される図形を図41に示す。
【0137】
なお、図36〜図41に示した実施例では、各オブジェクトの位置はそのオブジェクトの左上隅の座標を用いて表されているが、本発明はこの構成に限定されるものではない。たとえば、図42に示すように、各オブジェクトの位置をそのオブジェクトの中心の座標を用いて表してもよい。この場合、図40に示したステップS224〜S227の演算は、以下のようになる。なお、点P、点Qおよび点Mは、それぞれオブジェクトA、オブジェクトBオブジェクトCの中心点である。
(1)オブジェクトBの設定
新Qx =Qx
新Qy =LSy +MH+2×α
(2a)オブジェクトCの設定(オブジェクトBを移動していない場合)
Mx =Px +((Qx −Px)÷2)
My =LSy +(LH÷2)
(2b)オブジェクトCの設定(オブジェクトBを移動した場合)
Mx =Px +((Qx −Px)÷2)
My =LSy +α
(3a)新規ラインEの設定(オブジェクトBを移動していない場合)
NSx =LSx
NSy =LSy
NH =(LH÷2)−(MH÷2)
NEx =Mx
NEy =My −(MH÷2)
(3b)新規ラインEの設定(オブジェクトBを移動した場合)
NSx =LSx
NSy =LSy
NH =α
NEx =Mx
NEy =My −(MH÷2)
(4a)新規ラインDの設定(オブジェクトBを移動していない場合)
新LSx =Mx
新LSy =My +(MH÷2)
新LH =(LH÷2)−(MH÷2)
新LEx =LEx
新LEy =LEy
(4b)新規ラインDの設定(オブジェクトBを移動した場合)
新LSx =Mx
新LSy =My +(MH÷2)
新LH =α
新LEx =LEx
新LEy =新Qy
上記演算により更新されたオブジェクト情報テーブルおよびライン情報テーブルに従って表示される図形を図43に示す。
【0138】
なお、上記図32(a) 〜図32(c) および図33(a) 〜図33(c) に示した実施例では、ライン上にオブジェクトがドロップされたことを検出して、挿入処理が実行されるが、第2の実施形態は、この方法に限定されるものではない。たとえば、図44(a) 〜図44(c) に示すように、新規オブジェクト(オブジェクトD)がラインABの近傍にドロップされたことを検出したときに、その新規オブジェクトをオブジェクトAとオブジェクトBとの間に挿入するような構成であってもよい。また、オブジェクトがライン上またはライン近傍にドラッグされていること(すなわち、オブジェクトはドロップされていない)を検出したときに、上述の挿入処理を実行してもよい。この場合、オブジェクトがライン上またはライン近傍にある間、新たに生成されるライン・オブジェクトの形は、当該オブジェクトの位置に応じて変化する。
【0139】
また、上記第1および第2の実施形態の各実施例では、基本的に、先に表示されている図形に対して新たなオブジェクトを挿入する場合を説明したが、本発明はこれに限定されるものではない。例えば、オブジェクトA、B、Cが順番に接続された図形において、オブジェクトCをオブジェクトAとオブジェクトBとの間に移動させるような操作も本発明の編集方法に含まれる。
【0140】
さらに、上記の実施例では、編集される図形の例としてフローチャートを採り上げて説明したが、本発明は、これに限定されるものではなく、ラインまたはコネクタにより複数のオブジェクトが互いに接続または連携された図形等を編集する方法を含む。たとえば、回路図を作成および編集する方法にも適用される。この場合、回路を構成する各素子が「オブジェクト」であり、各素子間を互いに接続する信号線が「ライン」である。
【0141】
また、図32または図33においては、挿入されるオブジェクトの前方(オブジェクトAの前方)または後方(オブジェクトBの後方)のオブジェクトに一のオブジェクトが連結されている状態を示したが、二以上のオブジェクトが連結されていてもよい。これは、フローチャートの場合はフローの分岐を、回路の場合は2以上の素子が連結していることを意味する。この連結関係は、上述の連結関係と同様に、図36において例示したオブジェクト情報テーブル、ライン情報テーブルにより管理される。この場合の挿入処理は、当該連結関係を保ったまま実行される。
【0142】
本発明の図形編集機能は、コンピュータを用いて上述のフローチャートに示した処理を記述したプログラムを実行することにより実現される。そのプログラムを実行するコンピュータ10のブロック図を図45に示す。
【0143】
CPU11は、上述のフローチャートに示した処理を記述したプログラムを記憶装置12からメモリ13にロードして実行する。記憶装置12は、例えばハードディスクであり、上記プログラムを格納する。一方、メモリ13は、例えば半導体メモリであり、CPU11の作業領域として使用される。各種テーブルは、このメモリ13に作成される。
【0144】
記憶媒体ドライバ14は、CPU11の指示に従って可搬性記憶媒体15にアクセスする。可搬性記憶媒体15は、半導体デバイス(ICカード等)、磁気的作用により情報が入出力される媒体(フロッピーディスク、磁気テープなど)、光学的作用により情報が入出力される媒体(光ディスクなど)を含む。通信制御装置16は、CPU11の指示に従って網との間でデータを送受信する。
【0145】
図46は、本発明に係わるソフトウェアプログラムなどの提供方法を説明する図である。本発明に係わるプログラムは、例えば、以下の3つの方法の中の任意の方法により提供される。
【0146】
(a) コンピュータ10にインストールされて提供される。この場合、プログラム等は、たとえば、出荷前にプレインストールされる。
(b) 可搬性記憶媒体に格納されて提供される。この場合、可搬性記憶媒体15に格納されているプログラム等は、基本的に、記憶媒体ドライバ14を介して記憶装置12にインストールされる。
【0147】
(c) 網上のサーバから提供される。この場合、基本的には、コンピュータ10がサーバに格納されているプログラム等をダウンロードすることによってそのプログラム等を取得する。
【0148】
【発明の効果】
コンピュータを用いて図形等を表示しながら作成・編集する処理において、互いに接続されているオブジェクト間に他のオブジェクトを挿入する際の処理が簡単になったので、ユーザの負担が減少し、作業効率が向上する。また、図形等の編集に際してのミスが生じる可能性も減少する。
【図面の簡単な説明】
【図1】本発明が実施される環境の一例を説明する図である。
【図2】第1の実施形態における基本操作を説明する図である。
【図3】第1の実施形態における図形の編集方法を説明するための図である。
【図4】第1の実施形態の図形編集ソフトウェアが提供するテーブルの例である。
【図5】ラインを指定する方法を説明する図である。
【図6】(a) は、更新されたデータテーブルの状態を示す図である。(b) は、更新されたライン情報テーブルの状態を示す図である。
【図7】オブジェクトを挿入する処理に際して更新されたテーブルの状態を示す図である。
【図8】第1の実施形態におけるユーザの操作のフローチャートである。
【図9】第1の実施形態の図形編集ソフトウェアの動作の概略を説明するフローチャートである。
【図10】指定されたラインを検出する処理の詳細フローチャートである。
【図11】図形データを更新する処理のフローチャートである。
【図12】新規オブジェクトを表示するための座標を設定する処理の詳細フローチャートである。
【図13】先に表示されているオブジェクトを表示するための座標を変更する処理の詳細フローチャートである。
【図14】ライン情報テーブルを更新する処理の詳細フローチャートである。
【図15】図14に示すフローチャートを説明するための参考図である。
【図16】第1の実施形態の編集方法の他の具体例を説明するための図である。
【図17】表示画面の説明図である。
【図18】(a) は、オブジェクト情報テーブルの一例を示す図であり、(b) は、ライン情報テーブルの一例を示す図である。
【図19】(a) は、ラインを選択する方法を説明する図であり、(b) は、選択インデックステーブルの一例を示す図である。
【図20】テーブルにレコードを追加する処理を説明する図である。
【図21】オブジェクト情報テーブルを更新する処理を説明する図(その1)である。
【図22】オブジェクト情報テーブルを更新する処理を説明する図(その2)である。
【図23】ライン情報テーブルを更新する処理を説明する図(その1)である。
【図24】オブジェクト情報テーブルを更新する処理を説明する図(その3)である。
【図25】ライン情報テーブルを更新する処理を説明する図(その2)である。
【図26】更新された後のテーブルの状態を示す図である。
【図27】図26(a) および図26(b) に示す更新後のテーブルに従って描画される図形を示す図である。
【図28】表示画面における絶対座標系と図形編集ソフトウェアが使用する仮想座標系との関係を説明する図である。
【図29】図形データを更新する処理のフローチャートである。
【図30】新規オブジェクトを表示するためのデータを設定する処理のフローチャートである。
【図31】先に表示されているオブジェクトを表示するための座標を必要に応じて変更する処理の詳細フローチャートである。
【図32】第2の実施形態の図形編集方法の動作を説明するための図である。
【図33】第2の実施形態の図形編集方法の他の動作を説明するための図である。
【図34】既存の編集方法におけるユーザの作業を説明する図(その1)である。
【図35】既存の編集方法におけるユーザの作業を説明する図(その2)である。
【図36】(a) は、オブジェクト情報テーブルの一例を示す図であり、(b) は、ライン情報テーブルの一例を示す図である。
【図37】オブジェクトおよびラインの表示座標等を説明する図である。
【図38】第2の実施形態の編集方法におけるユーザの操作手順を説明するフローチャートである。
【図39】第2の実施形態の図形編集ソフトウェアの動作を説明するフローチャートである。
【図40】オブジェクト挿入処理の詳細フローチャートであり、
【図41】オブジェクト挿入処理の結果を示す図である。
【図42】他の表示方法を説明する図である。
【図43】他の表示方法におけるオブジェクト挿入処理の結果を示す図である。
【図44】第2の実施形態の変形例を示す図である。
【図45】本発明の編集方法の処理を記述したプログラムを実行するコンピュータのブロックである。
【図46】本発明に係わるソフトウェアプログラム等の提供方法を説明する図である。
【図47】既存の方法により予め互いに接続されているオブジェクトの間に新たなオブジェクトを挿入する際の手順を説明する図である。
【図48】従来技術の問題点を説明するための図である。
【符号の説明】
1 コンピュータ
2 マウス
10 コンピュータ
11 CPU
12 記憶装置
13 メモリ
14 記憶媒体ドライバ
15 可搬性記憶媒体
16 通信制御装置
Claims (11)
- 第1のコネクタにより互いに接続された第1のオブジェクトおよび第2のオブジェクトを含む図形を表示する表示手段と、
ユーザ操作により上記表示手段の画面上で第3のオブジェクトがドラッグされて上記第1のコネクタに対して予め決められた位置にドロップされたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタおよび上記第3のオブジェクトと上記第2のオブジェクトとを接続する第3のコネクタを生成する編集手段と、
上記第1のオブジェクトと上記第2のオブジェクトとの間の距離が、それらの間に上記第3のオブジェクトを収容するために十分であるか否かを判断する判断手段と、
上記距離が十分であった場合は、上記第1および第2のオブジェクトの位置を移動させず、上記距離が十分でなかった場合に限り、上記第1および第2のオブジェクトの少なくとも一方を移動させる移動手段、
を有する図形編集装置。 - 上記編集手段は、上記第1のコネクタと上記第3のオブジェクトとが互いに重なりあったときに、上記第2および第3のコネクタを生成する請求項1に記載の図形編集装置。
- オブジェクトどうしの間の従属関係を管理する管理手段をさらに有し、
その管理手段は、上記第3のオブジェクトが上記第1のオブジェクトと上記第2のオブジェクトとの間に挿入される前に上記第2のオブジェクトが上記第1のオブジェクトに従属していた場合には、上記第3のオブジェクトを上記第1のオブジェクトに従属させ、上記第2のオブジェクトを上記第3のオブジェクトに従属させる請求項1に記載の図形編集装置。 - 上記表示手段は、第1のコネクタにより互いに接続された第1のオブジェクトおよび第2のオブジェクトを含む図形を表示し、
上記編集手段は、ユーザ操作により指定された上記表示手段の画面上における領域が上記第1のコネクタと重なることにより上記第1のコネクタが選択されたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタおよび上記第3のオブジェクトと上記第2のオブジェクトとを接続する第3のコネクタを生成する、
ことを特徴とする請求項1に記載の図形編集装置。 - 上記編集手段は、上記第1のコネクタが選択される前に上記第2のオブジェクトが表示されていた位置に上記第3のオブジェクトを表示し、上記第2のオブジェクトをシフトする請求項4に記載の図形編集装置。
- 各枡目がそれぞれ1つのオブジェクトを表示するための領域として定義された仮想座標系を提供する座標系提供手段をさらに有し、
上記表示手段は、上記仮想座標系を用いて各オブジェクトを表示し、上記編集手段は、上記仮想座標系を用いて各オブジェクトを配置する請求項4に記載の図形編集装置。 - 上記表示手段は、第1のオブジェクト、複数の第2のオブジェクト、および上記第1のオブジェクトと上記複数の第2のオブジェクトとをそれぞれ接続する複数の第1のコネクタを表示し、
上記編集手段は、上記複数の第1のコネクタのなかの2以上のコネクタが選択されたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタを生成するとともに、上記選択された2以上の第1のコネクタに接続されていた2以上の第2のオブジェクトがそれぞれ上記第1のオブジェクトに接続することなく上記第3のオブジェクトとそれぞれ接続するための2以上の第3のコネクタを生成する、
ことを特徴とする請求項1に記載の図形編集装置。 - 表示手段が、第1のコネクタにより互いに接続された第1のオブジェクトおよび第2のオブジェクトを含む図形を表示し、
編集手段が、ユーザ操作により上記表示手段の画面上で第3のオブジェクトがドラッグされて上記第1のコネクタに対して予め決められた位置にドロップされたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタおよび上記第3のオブジェクトと上記第2のオブジェクトとを接続する第3のコネクタを生成し、
判断手段が、上記第1のオブジェクトと上記第2のオブジェクトとの間の距離が、それらの間に上記第3のオブジェクトを収容するために十分であるか否かを判断し、
移動手段が、上記距離が十分であった場合は、上記第1および第2のオブジェクトの位置を移動させず、上記距離が十分でなかった場合に限り、上記第1および第2のオブジェクトの少なくとも一方を移動させる、
図形編集方法。 - 上記表示手段が、第1のコネクタにより互いに接続された第1のオブジェクトおよび第2のオブジェクトを含む図形を表示し、
上記編集手段が、ユーザ操作により指定された上記表示手段の画面上における領域が上記第1のコネクタと重なることにより上記第1のコネクタが選択されたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタおよび上記第3のオブジェクトと上記第2のオブジェクトとを接続する第3のコネクタを生成する
ことを特徴とする請求項8に記載の図形編集方法。 - コンピュータにより実行されたときに、
表示手段が、第1のコネクタにより互いに接続された第1のオブジェクトおよび第2のオブジェクトを含む図形を表示する手順と、
編集手段が、ユーザ操作により上記表示手段の画面上で第3のオブジェクトがドラッグされて上記第1のコネクタに対して予め決められた位置にドロップされたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタおよび上記第3のオブジェクトと上記第2のオブジェクトとを接続する第3のコネクタを生成する手順と、
判断手段が、上記第1のオブジェクトと上記第2のオブジェクトとの間の距離が、それらの間に上記第3のオブジェクトを収容するために十分であるか否かを判断する手順と、
移動手段が、上記距離が十分であった場合は、上記第1および第2のオブジェクトの位置を移動させず、上記距離が十分でなかった場合に限り、上記第1および第2のオブジェクトの少なくとも一方を移動させる手順、
が提供されるプログラムを格納した記憶媒体。 - 上記表示手段が、第1のコネクタにより互いに接続された第1のオブジェクトおよび第2のオブジェクトを含む図形を表示する手順と、
上記編集手段が、ユーザ操作により指定された上記表示手段の画面上における領域が上記第1のコネクタと重なることにより上記第1のコネクタが選択されたときに、上記第1のオブジェクトと上記第3のオブジェクトとを接続する第2のコネクタおよび上記第3のオブジェクトと上記第2のオブジェクトとを接続する第3のコネクタを生成する手順と、
をさらに提供するプログラムを格納した請求項10に記載の記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08558799A JP3569153B2 (ja) | 1999-03-29 | 1999-03-29 | 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体 |
US09/432,113 US7046246B2 (en) | 1999-03-29 | 1999-11-02 | Graphic editing apparatus graphic editing method and storage medium on which is recorded a program for graphic editing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08558799A JP3569153B2 (ja) | 1999-03-29 | 1999-03-29 | 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000276608A JP2000276608A (ja) | 2000-10-06 |
JP3569153B2 true JP3569153B2 (ja) | 2004-09-22 |
Family
ID=13862955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08558799A Expired - Fee Related JP3569153B2 (ja) | 1999-03-29 | 1999-03-29 | 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7046246B2 (ja) |
JP (1) | JP3569153B2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114831A1 (en) * | 2001-04-18 | 2005-05-26 | Andres Callegari | Volume body renderer |
US7412363B2 (en) | 2001-04-18 | 2008-08-12 | Landmark Graphics Corporation | Volume body renderer |
US7434162B2 (en) * | 2002-06-06 | 2008-10-07 | Speechcyle, Inc. | Visual knowledge publisher system |
CA2390506C (en) * | 2002-06-12 | 2013-04-02 | Smart Technologies Inc. | System and method for recognizing connector gestures |
JP4095592B2 (ja) * | 2004-08-06 | 2008-06-04 | キヤノン株式会社 | 情報処理装置、情報処理方法ならびにプログラム |
CA2583273C (en) * | 2004-10-13 | 2016-01-05 | Mcmaster University | Operating environment analysis techniques for wireless communication systems |
JP4176741B2 (ja) * | 2005-05-25 | 2008-11-05 | 株式会社スクウェア・エニックス | 移動先情報設定装置及び方法、プログラム、並びに記録媒体 |
JP4732029B2 (ja) * | 2005-06-29 | 2011-07-27 | キヤノン株式会社 | レイアウト決定方法および情報処理装置およびレイアウト決定プログラム |
JP4771831B2 (ja) * | 2006-03-02 | 2011-09-14 | 富士通株式会社 | 図形表示プログラム及び図形表示方法 |
JP2007233772A (ja) * | 2006-03-02 | 2007-09-13 | Fujitsu Ltd | 図形編集プログラム及び図形編集装置 |
US20080070217A1 (en) * | 2006-08-21 | 2008-03-20 | Universidad De Santiago De Chile | Software tool for creating an interactive graphic organizer |
US8479218B2 (en) * | 2007-07-09 | 2013-07-02 | National Instruments Corporation | Automatically arranging objects in a graphical program block diagram |
US8539367B2 (en) * | 2007-09-27 | 2013-09-17 | National Instruments Corporation | Automatic re-positioning of graphical program nodes during node placement or node movement |
JP4702386B2 (ja) * | 2008-03-28 | 2011-06-15 | 株式会社安川電機 | プログラマブルコントローラのプログラミング装置 |
US20090319948A1 (en) * | 2008-06-20 | 2009-12-24 | Smartdraw.Com | Automated editing of graphics charts |
US8698807B2 (en) * | 2008-09-26 | 2014-04-15 | International Business Machines Corporation | Intuitively connecting graphical shapes |
JP5012887B2 (ja) * | 2009-12-28 | 2012-08-29 | 富士通株式会社 | プログラム、編集方法、およびコンピュータ |
US9552661B2 (en) | 2010-08-09 | 2017-01-24 | International Business Machines Corporation | Distinguishing superimposed links to a node by spreading connection points of links to node according to coordinates of bend point or opposite end point of links |
WO2012096001A1 (ja) * | 2011-01-14 | 2012-07-19 | 株式会社日立製作所 | フローチャート描画装置、フローチャート描画方法およびプログラム |
JP5263417B2 (ja) * | 2012-03-06 | 2013-08-14 | 富士通株式会社 | プログラム、編集方法、およびコンピュータ |
US9665875B2 (en) * | 2013-10-18 | 2017-05-30 | Sap Se | Automated software tools for improving sales |
JP2016115017A (ja) * | 2014-12-12 | 2016-06-23 | 日本電信電話株式会社 | フローチャート作成方法及びプログラム |
US11205249B2 (en) * | 2019-11-14 | 2021-12-21 | Adobe Inc. | Table shifting and skewing |
WO2023117074A1 (en) * | 2021-12-22 | 2023-06-29 | Mendix Technology B.V. | Managing an app, especially developing an app comprising updating a workflow of the app, method and system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3299259B2 (ja) | 1990-05-15 | 2002-07-08 | 富士通株式会社 | プログラムの構造図編集処理方式 |
JPH04267482A (ja) | 1991-02-22 | 1992-09-24 | Nec Corp | フローチャート編集方式 |
FR2675606B1 (fr) * | 1991-04-22 | 1993-07-16 | France Telecom | Procede de decompilation pour la realisation de graphes au moyen d'un ordinateur. |
JP3372563B2 (ja) * | 1992-04-30 | 2003-02-04 | 新日鉄ソリューションズ株式会社 | 木構造表示編集装置 |
JP3394275B2 (ja) | 1992-07-29 | 2003-04-07 | 松下電器産業株式会社 | 電子ファイル装置 |
US5596691A (en) * | 1994-06-15 | 1997-01-21 | Claris Corporation | Computer system and method for manipulating the display of drawings |
US5515488A (en) * | 1994-08-30 | 1996-05-07 | Xerox Corporation | Method and apparatus for concurrent graphical visualization of a database search and its search history |
US5680530A (en) * | 1994-09-19 | 1997-10-21 | Lucent Technologies Inc. | Graphical environment for interactively specifying a target system |
JPH08272842A (ja) | 1995-03-30 | 1996-10-18 | Hitachi Software Eng Co Ltd | フロー図編集装置 |
JP3204044B2 (ja) | 1995-06-23 | 2001-09-04 | カシオ計算機株式会社 | 組織図処理装置 |
US5829003A (en) * | 1995-05-23 | 1998-10-27 | Casio Computer Co., Ltd. | Record processing apparatus, method and computer readable storage having attribute information representing a hierarchical connection for display of data |
US5745113A (en) * | 1996-04-03 | 1998-04-28 | Institute For Research On Learning | Representing work practices |
US5999192A (en) * | 1996-04-30 | 1999-12-07 | Lucent Technologies Inc. | Interactive data exploration apparatus and methods |
JPH11296357A (ja) | 1998-04-08 | 1999-10-29 | Oki Electric Ind Co Ltd | フローチャート入力装置 |
US6377259B2 (en) * | 1998-07-29 | 2002-04-23 | Inxight Software, Inc. | Presenting node-link structures with modification |
US6154220A (en) * | 1998-10-19 | 2000-11-28 | Microsoft Corporation | Rectilinear layout |
-
1999
- 1999-03-29 JP JP08558799A patent/JP3569153B2/ja not_active Expired - Fee Related
- 1999-11-02 US US09/432,113 patent/US7046246B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000276608A (ja) | 2000-10-06 |
US7046246B2 (en) | 2006-05-16 |
US20020154117A1 (en) | 2002-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3569153B2 (ja) | 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体 | |
US7017118B1 (en) | Method and apparatus for reordering data items | |
US5710896A (en) | Object-oriented graphic system with extensible damage repair and drawing constraints | |
US8910064B2 (en) | GUI program creation supporting apparatus, GUI program creation support method, computer-readable recording medium and integrated circuit | |
US20140176566A1 (en) | Apparatus for simultaneously storing area selected in image and apparatus for creating an image file by automatically recording image information | |
JP2009508227A (ja) | ブラウズモードデザイナ | |
US20070030286A1 (en) | Method, system, and program product for controlling a display on a data editing screen | |
CN112947923A (zh) | 对象编辑方法、装置和电子设备 | |
CN1117328C (zh) | 帮助软件应用程序中的导航和改进屏幕观察的方法和系统 | |
JP2012064207A (ja) | ホスト装置及びホスト装置のコンテンツ表示方法 | |
CN114741071A (zh) | 一种应用构建方法及装置 | |
CN112138380B (zh) | 一种游戏中数据编辑的方法和装置 | |
US6417865B1 (en) | Affinitive placement by proximity in a computer-implemented graphics system | |
JPH10154070A (ja) | ユーザインタフェース設計装置及び方法 | |
US6782528B1 (en) | Method and system for visual programming using a relational diagram | |
JP3953738B2 (ja) | 図形編集装置、および図形編集装置として機能させるためのプログラムを格納した記録媒体 | |
US20020154149A1 (en) | System, method and computer program product for associative region generation and modification | |
US7053914B2 (en) | Graphic editing device, graphic editing method and storage medium for storing a program | |
CN111694627B (zh) | 桌面编辑方法及装置 | |
JPH10312407A (ja) | 図面表示装置 | |
JPH07129355A (ja) | 画面表示装置および方法 | |
CN112817508B (zh) | 资源素材的手势操控指令的管理方法、装置及其设备 | |
WO2007069742A1 (ja) | 検索情報表示システム | |
JPH07253864A (ja) | 画面制御装置 | |
CN117311567A (zh) | 基于导航树的对象数据展示方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040319 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040617 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140625 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |