(57)【特許請求の範囲】
【請求項１】
図形と文字の混在中で指示点から最短距離の文字を検索する図形処理装置において、
文字および該文字の高さと幅と傾き角度を得る取得手段と、
得た文字をベクトル化して検索ベクトルを得る検索ベクトル作成手段と、
得た高さと幅と傾き角度となるように、得た検索ベクトルを拡大または縮小または回転させて文字検索ベクトルを得る文字検索ベクトル作成手段と、
指示点と得た文字検索ベクトルとが最短距離にある文字を検索する検索手段と
を備えたことを特徴とする図形処理装置。
【請求項２】
前記検索ベクトル作成手段は、得た文字をセグメント化し、該セグメントを直線近似して前記検索ベクトルを得ることを特徴とする請求項１記載の図形処理装置。
【請求項３】
前記検索手段は、前記指示点から所定の範囲にある前記文字検索ベクトルに対して、検索することを特徴とする請求項１あるいは請求項２記載の図形処理装置。
【請求項４】
図形と文字の混在中で指示点から最短距離の文字を検索する図形処理方法において、
取得手段が、文字および該文字の高さと幅と傾き角度を得る取得ステップと、
検索ベクトル作成手段が、得た文字をベクトル化して検索ベクトルを得る検索ベクトル作成ステップと、
文字検索ベクトル作成手段が、得た高さと幅と傾き角度となるように、得た検索ベクトルを拡大または縮小または回転させて文字検索ベクトルを得る文字検索ベクトル作成ステップと、
検索手段が、指示点と得た文字検索ベクトルとが最短距離にある文字を検索する検索ステップと
を備えたことを特徴とする図形処理方法。
【請求項５】
前記検索ベクトル作成ステップは、検索ベクトル作成手段が、得た文字をセグメント化し該セグメントを直線近似して前記検索ベクトルを得ることを特徴とする請求項４記載の図形処理方法。
【請求項６】
前記検索ステップは、検索手段が、前記指示点から所定の範囲にある前記文字検索ベクトルに対して検索することを特徴とする請求項４あるいは請求項５記載の図形処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、図形と文字の混在中で指示点から最短距離の文字を検索する図形処理装置および図形処理方法に関するものである。
【０００２】
【従来の技術】
近年、Ｘウィンドウシステム、Ｗｉｎｄｏｗｓ  ＮＴなどのウィンドウシステムの進歩に伴いビットマップ文字フォントの種類が充実し、文字がディスプレイに精密に表示できるようになってきたため、図形処理においてもストローク文字ではなくビットマップ文字による精密な表示が要求されている。
【０００３】
このため、一部の装置では、水平方向の文字ではディスプレイ上の表示文字サイズとビットマップ文字サイズが同程度ならばビットマップ文字で精密に表示する試みがなされている。この場合には、文字の作画位置、高さ、幅から決まる矩形と、マウスクリック点の包含関係で検索していた。
【０００４】
【発明が解決しようとする課題】
しかし、ビットマップ文字が単なる矩形内のドットの集まりのため、当該矩形との包含関係より検索を行うことになり、図形と文字、文字と文字が交差する場合には、実際に利用者が検索したい図形や文字の姿図をマウスでクリックした状態になっても、図１２に示すように、利用者が意図した図形や文字を正しく検索できたか不確定な状態となってしまう問題があった。例えば図１２のｐ１、ｐ２をクリックしても、文字Ｏの領域内に含まれるために文字Ｏが検索される。一方、ｐ３をクリックすると、文字Ｏの領域外であるため、最も近い文字ＯではなくてラインＬが検索される。
【０００５】
また、ＣＡＤシステムなどの図形処理では、図面中に任意角の傾きを持つ文字列が多数存在するという事情があり、これらに対応したマウスクリック点に最も近い文字あるいは図形を検索することが困難となってしまう問題もある。
【０００６】
この場合、検索を正確に行うために、文字の姿図を示すビットマップ構成点を図形の点と見なして検索することも考えられるが、これではデータ量が極めて多くなってしまい、実用性に欠けてしまう問題があった。
【０００７】
本発明は、これらの問題を解決するため、精密な表示が可能なビットマップ文字の他に当該ビットマップ文字の検索用ベクトルデータを用い、画面上に任意に拡大・縮小・回転されたビットマップ文字と図形が混在しても文字の検索用ベクトルデータを図形のベクトルデータと同様に扱い、マウスクリック点から最短距離の文字あるいは図形を正確かつ迅速に検索することを目的としている。
【０００８】
【課題を解決するための手段】
図１、図３、図７および図９を参照して課題を解決するための手段を説明する。
【０００９】
図１、図３、図７および図９において、検索用ベクトルデータ作成手段１は、ビットマップ文字データから検索用ベクトルデータ２を作成するものである。
文字検索ベクトルテーブル１２は、ビットマップ文字データに対応する検索用ベクトルデータ２を拡大・縮小・回転させて格納したものである。
【００１０】
表示手段３は、ビットマップ文字を拡大・縮小・回転させて表示するものである。
テーブル作成手段４は、表示したビットマップ文字に対応する検索用ベクトルデータ２を拡大・縮小・回転させて文字検索ベクトルテーブル１２に格納するものである。
【００１１】
検索手段５は、文字検索ベクトルテーブル１２を参照してマウスでクリックされた点との距離が最短の文字を検索したり、図形を検索したりするものである。
次に、動作を説明する。
【００１２】
表示指示された文字のサイズおよび回転角に対応して、表示手段３がビットマップ文字データを拡大・縮小・回転させて表示し、検索用ベクトルデータ作成手段１がビットマップ文字データから検索用ベクトルデータを作成し、テーブル作成手段４が拡大・縮小・回転させて文字検索ベクトルテーブル１２に格納した後、検索手段５が文字検索ベクトルテーブル１２を参照してマウスでクリックされた点との距離が最短の文字を検索あるいは図形を検索するようにしている。
【００１３】
また、表示指示された文字のサイズおよび回転角に対応して、表示手段３がビットマップ文字データを拡大・縮小・回転させて表示し、テーブル作成手段４が予め作成された該当する検索用ベクトルデータ２を拡大・縮小・回転させて文字検索ベクトルテーブル１２に格納した後、検索手段５が文字検索ベクトルテーブル１２を参照してマウスでクリックされた点との距離が最短の文字を検索あるいは図形を検索するようにしている。
【００１４】
これらの際に、マウスでクリックされた点を含む所定領域内の文字あるいは図形についてのみ検索対象とするようにしている。
従って、精密な表示が可能なビットマップ文字の他に当該ビットマップ文字の検索用ベクトルデータ２を用い、画面上に任意に拡大・縮小・回転されたビットマップ文字と図形が混在しても文字の検索用ベクトルデータ２を図形のベクトルデータと同様に扱って検索することにより、マウスクリック点から最短距離の文字あるいは図形を正確かつ迅速に検索することが可能となった。
【００１５】
【発明の実施の形態】
次に、図１から図１１を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１６】
図１は、本発明の検索用ベクトルデータの作成フローチャートを示す。
図１において、Ｓ１は、文字フォントを読み込む。
Ｓ２は、文字フォントのビットマップをイメージデータと見て細線化する。これは、Ｓ１で読み込んだ文字フォントのビットマップデータを、イメージデータと見なして公知の細線化（例えば幅広い複数ドットの線を中央の１ドットの線に細線化など）する。
【００１７】
Ｓ３は、Ｓ２の細線化データを端点、交差点、分岐点でセグメント化する。これは、後述する図２の（ａ）に示すように、セグメント化する。
Ｓ４は、各セグメントの許容誤差による直線近似により線分を得る。これは、後述する図２の（ｂ）に示すように、セグメントを直線近似して線分を得る。
【００１８】
Ｓ５は、各セグメントの直線近似線分を外部ファイルに書き出す。これにより、ビットマップ文字データから検索用ベクトルデータ２が作成できたこととなる。
【００１９】
Ｓ６は、ベクトル化を終了する。
以上によって、ビットマップ文字データが全てベクトル化され、検索用ベクトルデータ２が作成されることとなる。
【００２０】
図２は、本発明のベクトル化説明図を示す。
図２の（ａ）は、細線化データのセグメント化を示す。
図２の（ａ−１）は、入力イメージを示す。この入力イメージは、図１のＳ１で読み込まれたビットマップ文字データである。
【００２１】
図２の（ａ−２）は、細線化を示す。これは、（ａ−１）の入力イメージ（ビットマップ文字データ）を公知の細線化を施したものである。
図２の（ａ−３）は、セグメント化を施したものである。ここでは、（ａ−２）の細線化した結果を、端点、交差点、分岐点によりセグメントに分離したものである。
【００２２】
図２の（ａ−４）は、細線化の結果が単一ループの場合には、２つに分けてセグメント化する様子を示す。
図２の（ｂ）は、セグメントの直線近似の様子を示す。
【００２３】
図２の（ｂ−１）は、セグメントの始点と終点を直線で結び、各構成点との最大距離を求め、許容範囲外ならば、その点でセグメントを分割する様子を示す。ここでは、点線の距離が許容範囲外であるので、この点で分割し、（ｂ−２）に示すようにする。
【００２４】
図２の（ｂ−２）は、同様に、分割後の各始点と終点を直線でそれぞれ結び、各構成点との最大距離を求め、許容範囲外ならば、その点でセグメントを分割する様子を示す。ここでは、点線の距離が許容範囲外であるので、この点で分割し、（ｂ−３）に示すようにする。
【００２５】
図２の（ｂ−３）は、同様に、分割後の各始点と終点を直線でそれぞれ結び、各構成点との最大距離を求め、許容範囲外ならば、その点でセグメントを分割する様子を示す。ここでは、点線の距離が許容範囲外であるので、この点で分割し、（ｂ−４）に示すようにする。
【００２６】
図２の（ｂ−４）は、分割後の各始点と終点を直線でそれぞれ結び、各構成点との最大距離を求め、許容範囲内であるので、終了する様子を示す。
以上の図２の（ｂ−１）から（ｂ−４）によって、セグメントについて距離が許容範囲内になるように分割し、そのときの各始点と終点の座標を求めてベクトル化が終了し、既述したビットマップ文字データから検索用ベクトルデータ２が作成できたこととなる。
【００２７】
図３は、本発明の表示および文字検索ベクトルテーブル作成のフローチャートを示す。
図３において、Ｓ１１は、処理対象文字列を得る（構成文字のコード、高さ、幅、傾き角度、作画基準点）。これは、後述する図４の（ｂ）に示すように、処理対象文字列例えば“ＯＡＢ”のコード、高さ、幅、傾き角度、作画基準点を得る。
【００２８】
Ｓ１２は、文字コードよりビットマップ文字のイメージデータを読み込み、そのランレングスイメージを求め、拡大・縮小・回転して表示用ベクトルデータを作成し、表示する。これは、後述する図５の（ａ）に示すように、文字コードよりビットマップ文字のイメージデータを読み込み、次に、図５の（ｂ）に示すように、ランレングスベクトルを求め、このランレングスベクトルについて、Ｓ１１で得た、高さ、幅、傾き角度となるように、拡大・縮小・回転させ、後述する図５の（ｃ）に示すような表示用ベクトルデータを作成する。
【００２９】
Ｓ１３は、文字コードよりビットマップ文字の検索用ベクトルデータを読み込み、拡大・縮小・回転・移動の座標変換により文字検索ベクトルテーブル１２を作成する。これは、後述する図６の（ａ）に示すように、文字コードよりビットマップ文字の検索用ベクトルデータ２を読み込み、次に、図６の（ｂ）に示すように、この検索用ベクトルデータ２について、Ｓ１１で得た、高さ、幅、傾き角度となるように、拡大・縮小・回転させ、図示の検索ベクトルデータを作成し、図７の文字検索ベクトルテーブル１２に格納する。そして、文字列構成文字分だけ、Ｓ１２、Ｓ１３を繰り返す。
【００３０】
以上によって、表示対象の文字列について、文字コードよりビットマップ文字のイメージデータを読み込んで拡大・縮小・回転させてディスプレイ上に表示すると共に、文字コードより検索用ベクトルデータ２を読み込んで拡大・縮小・回転させて文字検索ベクトルテーブル１２に格納する。これにより、文字列がディスプレイ上に図形と一緒に表示されると共に、文字列について図７の文字検索ベクトルテーブル１２に格納され、検索の準備が完了したこととなる。
【００３１】
図４は、本発明の構成文字のコード、高さ、幅、傾き角度、作画基準点の例を示す。
図４の（ａ）は表示例を示し、図４の（ｂ）は表示する構成文字の高さ、幅、傾き角度、作画基準点の例を示す。ここでは、文字“ＯＡＢ”について図４の（ｂ）に示す下記のような場合、図４の（ａ）に示すようにディスプレイ上に作画基準点（５０、１００）を基点として表示されることとなる。
【００３２】
・文字ＯＡＢの作画基準点（５０、１００）、傾き角度３０°
・文字コードＯの高さ３０、幅２０
・文字コードＡの高さ４０、幅３０
・文字コードＢの高さ２５、幅１５
図５は、本発明の表示例を示す。
【００３３】
図５の（ａ）は、構成文字のビットマップ文字例（ＯＡＢ）を示す。
図５の（ｂ）は、構成文字のビットマップ文字のランレングスベクトル例（ＯＡＢ）を示す。このランレングスベクトル例は、図示のように、ｘ方向の幅を長さとし、ベクトル表現したものである。
【００３４】
図５の（ｃ）は、表示用ベクトルデータ例（ＯＡＢ）を示す。これは、図５の（ｂ）のランレングスベクトルについて、指定された拡大・縮小・回転・原点移動という座標変換を行った後のものである。
【００３５】
図６は、本発明の文字検索ベクトルテーブル作成説明図を示す。
図６の（ａ）は、検索用ベクトルデータ例（ＯＡＢ）を示す。これは、既述した図１および図２に示すようにして得た、ビットマップ文字から生成した当該ビットマップ文字の検索用ベクトルデータ２である。
【００３６】
図６の（ｂ）は、文字検索ベクトルデータ例（ＯＡＢ）を示す。これは、図６の（ａ）の検索用ベクトルデータ２について、図５の（ｃ）と同一の拡大・縮小・回転・原点移動を行った後の文字検索ベクトルデータ（ＯＡＢ）である。この文字検索ベクトルデータは、図８に示す文字検索ベクトルテーブル１２に図示のように格納する。
【００３７】
図７は、本発明のテーブル例を示す。
図７において、文字テーブル１１は、図示の下記の項目を登録するものである。
【００３８】
0003836181.tif 000002
文字検索ベクトルテーブル１２は、ビットマップ文字から求めた検索用ベクトルデータ２を格納するテーブルであって、図示の下記の項目を格納するものである。
【００３９】
・文字検索ベクトル始点のＸ座標
・文字検索ベクトル始点のＹ座標
・文字検索ベクトル終点のＸ座標
・文字検索ベクトル終点のＹ座標
図８は、本発明のテーブルの具体例を示す。これは、既述した図６の（ｂ）の文字検索ベクトルデータ（ＯＡＢ）を模式的に格納した文字列テーブル１１および文字検索ベクトルテーブル１２である。文字列テーブル１１には、文字列の構成文字数“３”となり、その下に文字“Ｏ”、“Ａ”、“Ｂ”についてそれぞれ高さ、幅、文字コード系、文字コード、検索ベクトルテーブルポインタ、検索ベクトル数をそれぞれ図示のよう設定する。文字検索ベクトルテーブル１２には、図示のように、文字“Ｏ”、“Ａ”、“Ｂ”について、それぞれ拡大・縮小・回転・原点移動後の値を模式的に示した図示のようにそれぞれ格納する。
【００４０】
図９は、本発明の検索フローチャートを示す。
図９において、Ｓ２１は、マウスクリックする。これは、既述した図５の（ｃ）に示すように、ディスプレイ上に図形と混在して、図示のようにビットマップ文字が拡大・縮小・回転して表示されている状態で、オペレータがマウスカーソルを任意の場所に移動させて、文字あるいは図形を選択するためにクリックする。
【００４１】
Ｓ２２は、マウスクリック点を作画座標系に座標変換する。これは、ディスプレイ上でマウスクリックされた点を、既述した図５の（ｃ）の表示用ベクトルデータの表示されていると同じ作画座標系に座標変換する。
【００４２】
Ｓ２３は、文字列に対する構成ベクトル、または図形を構成するベクトルを取り出す。
Ｓ２４は、トラップ領域外のベクトルを対象外とし、対象となるベクトルについて以下の距離計算を行う。これらＳ２３、Ｓ２４は、後述する図１０で説明するように、表示されている文字列および図形のうち、マウスクリックされた点を中心に所定領域（トラップ領域）外のものを対象外とし、所定領域内の文字列および図形のみを取り出し、以下の距離計算の対象とする。
【００４３】
Ｓ２５は、距離計算のパターン分けを行う。これは、後述する図１１の（ｂ）に示すパターン１、パターン２のいずれかのパターン分けを行う（後述する）。Ｓ２６は、パターン１と判明した場合、マウスクリック点とベクトルとの距離を求める（図１１の（ｃ）を用いて後述する）。
【００４４】
Ｓ２７は、パターン２と判明した場合、マウスクリック点と始点、終点の近い方の距離を求める（図１１の（ｄ）を用いて後述する）。
Ｓ２８は、最短距離のベクトルを採用し、検索結果としてベクトルを含む図形または文字列を選択する。そして、Ｓ２３に戻り繰り返し、取り出し終了した場合には終了し、取り出し終了しない場合にはＳ２４以降を繰り返し行う。
【００４５】
以上によって、ディスプレイ上に文字列と図形とが混在して表示されても、文字列については当該文字列と同一の拡大・縮小・回転させた図６の（ｂ）の文字検索ベクトルデータとの距離を求め、一方、図形について当該図形のベクトルデータとの距離を求め、最短距離のベクトルがマウスクリックによって選択されたと検索することにより、表示はビットマップ文字で細緻に表示し、マウスクリック点との距離は同一の拡大・縮小・回転させた文字検索ベクトルデータを用いて正確に最短距離を求めることが可能となった。
【００４６】
図１０は、本発明の対象判定説明図を示す。これは、マウスクリック点から所定範囲（トラップ領域）以外の文字および図形を検索対象から除外するときの説明図である。
【００４７】
図１０の（ａ）は、構成ベクトルの例を示す。ここでは、構成ベクトルＬは、文字検索ベクトルデータの１つの構成ベクトルあるいは図形の１つの構成ベクトルであって、始点Ｓ（Ｘｓ，Ｙｓ）、終点Ｅ（Ｘｅ，Ｙｅ）とする。
【００４８】
図１０の（ｂ）は、判定テーブルを示す。このＮｏ１ないし４のいずれかに該当する条件を満たす場合には、トラップ領域外となり、検索対象外の構成ベクトルと判定される。ここで、Ｘｍｉｎ、Ｙｍｉｎは、マウスクリック点を中心とした正方形の領域のうちのＸ座標、Ｙ座標の最小値を表し、Ｘｍａｘ、Ｙｍａｘは、マウスクリック点を中心にした正方形の領域のうちのＸ座標、Ｙ座標の最大値を表す。
【００４９】
以上の判定テーブルのＮｏ１ないしＮｏ４に該当しない構成ベクトルについて、図１１で説明する距離計算の対象とする。
図１１は、本発明の距離計算説明図を示す。
【００５０】
図１１の（ａ）は、構成ベクトルＬの例を示す。構成ベクトルＬは、始点Ｓ（Ｘｓ、Ｙｓ）、終点Ｅ（Ｘｅ、Ｙｅ）の座標値をそれぞれ持つとする。
図１１の（ｂ）は、パターン１、２の例を示す。図１１の（ｂ−１）のパターン１は、マウスクリック点Ｐから始点Ｓと終点Ｅの線分への垂線の長さを距離とするパターンである。図１１の（ｂ−２）のパターン２は、マウスクリック点Ｐから始点Ｓと終点Ｅへの距離のうち近い方を距離とするパターンである。
【００５１】
ここでは、パターン２を判別する手法を以下に記述する。パターン２でない場合には、パターン１となる。
・パターン２を判別する手法：
図１１の（ａ）において、
ベクトルＳＥ＝（Ｘｅ−Ｘｓ、Ｙｅ−Ｙｓ）
ベクトルＳＰ＝（Ｘｐ−Ｘｓ、Ｙｐ−Ｙｓ）
ベクトルＥＰ＝（Ｘｐ−Ｘｅ、Ｙｐ−Ｙｅ）
とから
0003836181.tif 000003
を求める。
【００５２】
内積（ベクトルＳＥ、ベクトルＳＰ）≦０または
内積（ベクトルＳＥ、ベクトルＥＰ）≧０ならば、パターン２である。
・パターン１を判別する手法：パターン２以外をパターン１とする。
【００５３】
図１１の（ｃ）は、パターン１の場合の距離計算説明図を示す。このパターン１の場合には、マウスクリック点Ｐを通る構成ベクトルＬに直交する点Ｈとすると、距離ＰＨは下式によって求められる。
【００５４】
距離ＰＨ＝（（Ｘｈ−Ｘｐ）2＋（Ｙｈ−Ｙｐ）2）1/2
また、点Ｐから構成ベクトルＬへの垂線の足Ｈ（Ｘｈ、Ｙｈ）は、以下の計算式で求める。
【００５５】
Ａ＝Ｙｓ−Ｙｅ
Ｂ＝Ｘｅ−Ｘｓ
とすると、構成ベクトルＬの直線は、
Ａ・Ｘ＋Ｂ・Ｙ＝Ａ・Ｘｓ＋Ｂ・Ｙｓ                ▲１▼
になる。点Ｐを通る構成ベクトルＬに直交する直線は、
−Ｂ・Ｘ＋Ａ・Ｙ＝−Ｂ・Ｘｐ＋Ａ・Ｙｐ              ▲２▼
になる。▲１▼と▲２▼の解は、（Ｘｈ、Ｙｈ）を示す。
【００５６】
Ｘｈ＝（Ａ2・Ｘｓ＋Ｂ2・Ｙｐ＋Ａ・Ｂ・（Ｙｓ−Ｙｐ））／Ａ2＋Ｂ2Ｙｈ＝（Ａ2・Ｙｐ＋Ｂ2・Ｙｓ＋Ａ・Ｂ・（Ｙｓ−Ｙｐ））／Ａ2＋Ｂ2図１１の（ｄ）は、パターン２の場合の距離計算説明図を示す。このパターン２の場合には、マウスクリック点Ｐと始点Ｓあるいは終点Ｅとの距離のうちの短い方として、下式によって求められる。
【００５７】
0003836181.tif 000004
【００５８】
【発明の効果】
以上説明したように、本発明によれば、精密な表示が可能なビットマップ文字の他に当該ビットマップ文字の検索用ベクトルデータ２を用い、画面上に任意に拡大・縮小・回転されたビットマップ文字と図形が混在しても文字の検索用ベクトルデータ２を図形のベクトルデータと同様に扱って検索する構成を採用しているため、マウスクリック点から最短距離の文字あるいは図形を正確かつ迅速に検索することができる。これらにより、ＣＡＤシステムのような図形処理において、ビットマップによる精緻な文字を表示しても検索時に図形のベクトルデータと同様に文字についてもベクトルデータによってマウスクリック点から正確に最短距離を求めて選択された文字あるいは図形を検索することが可能となった。
【図面の簡単な説明】
【図１】本発明の検索用ベクトルデータの作成フローチャートである。
【図２】本発明のベクトル化説明図である。
【図３】本発明の表示および文字検索ベクトルテーブル作成のフローチャートである。
【図４】本発明の構成文字のコード、高さ、幅、傾き角度、作画基準点の例である。
【図５】本発明の表示説明図である。
【図６】本発明の文字検索ベクトルテーブル作成説明図である。
【図７】本発明のテーブル例である。
【図８】本発明のテーブルの具体例である。
【図９】本発明の検索フローチャートである。
【図１０】本発明の対象判定説明図である。
【図１１】本発明の距離計算説明図である。
【図１２】従来技術の説明図である。
【符号の説明】
１：検索用ベクトルデータ作成手段
２：検索用ベクトルデータ
３：表示手段
４：テーブル作成手段
５：検索手段
１１：文字列テーブル
１２：文字検索ベクトルテーブル
【図１】
0003836181.tif 000005
【図２】
0003836181.tif 000006
【図３】
0003836181.tif 000007
【図４】
0003836181.tif 000008
【図５】
0003836181.tif 000009
【図６】
0003836181.tif 000010
【図７】
0003836181.tif 000011
【図８】
0003836181.tif 000012
【図９】
0003836181.tif 000013
【図１０】
0003836181.tif 000014
【図１１】
0003836181.tif 000015
【図１２】
0003836181.tif 000016