(57)【特許請求の範囲】
【請求項１】
線分または曲線で構成されるストロークを表す輪郭と線分または曲線で構成されるストロークを表す輪郭とが交差する輪郭データを、線分または曲線で構成されるストロークを表す輪郭と線分または曲線で構成されるストロークを表す輪郭とが交差しない輪郭データに変更する輪郭データ変更装置であって、
基準側の線分または曲線の領域と対象側の線分または曲線の領域とに交差があるか判定する領域判定手段と、
前記領域判定手段により交差があると判定された場合、曲線を線分の集合に変換する変換手段と、
線分どうしに交点があるか調べ、交点があると判定された場合、交点を元に線分の連結を変更する変更手段と
を有することを特徴とする輪郭データ変更装置。
【請求項２】
基準側の線分または曲線の点列を取出す第１取出し手段と、
前記第１取出し手段により取出した基準側の線分または曲線の点列の領域をチェックする第１チェック手段と、
対象側の線分または曲線の点列を取出す第２取出し手段と、
前記第２取出し手段により取出した対象側の線分または曲線の点列の領域をチェックする第２チェック手段とを有し、
前記領域判定手段は、前記第１チェック手段と前記第２チェック手段とのチェックに基づき基準側の線分または曲線の領域と対象側の線分または曲線の領域とに交差があるか判定することを特徴とする請求項１記載の輪郭データ変更装置。
【請求項３】
基準輪郭データと対象輪郭データと交差しているか判定する交差判定手段を有し、
前記交差判定手段により交差していると判定された場合、前記領域判定手段による判定を行うことを特徴とする請求項１記載の輪郭データ変更装置。
【請求項４】
前記変更手段により変更されなかった曲線を抽出する抽出手段と、
前記抽出手段により抽出された曲線を曲線線分変換する処理手段とを有することを特徴とする請求項１記載の輪郭データ変更装置。
【請求項５】
前記交差する輪郭データは輪郭型のデータであることを特徴とする請求項１記載の輪郭データ変更装置。
【請求項６】
前記交差する輪郭データは芯線＋太さ型のデータから変換された輪郭型のデータであることを特徴とする請求項１記載の輪郭データ変更装置。
【請求項７】
前記変更手段により連結が変更された線分に基づく文字または図形を表示する表示手段を有することを特徴とする請求項１記載の輪郭データ変更装置。
【請求項８】
前記変更手段により連結が変更された線分に基づく文字または図形を印刷する印刷手段を有することを特徴とする請求項１記載の輪郭データ変更装置。
【請求項９】
線分または曲線で構成されるストロークを表す輪郭と線分または曲線で構成されるストロークを表す輪郭とが交差する輪郭データを、線分または曲線で構成されるストロークを表す輪郭と線分または曲線で構成されるストロークを表す輪郭とが交差しない輪郭データに変更するコンピュータで実行される輪郭データ変更方法であって、
基準側の線分または曲線の領域と対象側の線分または曲線の領域とに交差があるか判定する領域判定ステップと、
前記領域判定ステップにおいて交差があると判定された場合、曲線を線分の集合に変換する変換ステップと、
線分どうしに交点があるか調べ、交点があると判定された場合、交点を元に線分の連結を変更する変更ステップと
を有することを特徴とする輪郭データ変更方法。
【請求項１０】
基準側の線分または曲線の点列を取出す第１取出しステップと、
前記第１取出しステップにおいて取出した基準側の線分または曲線の点列の領域をチェックする第１チェックステップと、
対象側の線分または曲線の点列を取出す第２取出しステップと、
前記第２取出しステップにおいて取出した対象側の線分または曲線の点列の領域をチェックする第２チェックステップとを有し、
前記領域判定ステップは、前記第１チェックステップと第２チェックステップとのチェックに基づき基準側の線分または曲線の領域と対象側の線分または曲線の領域とに交差があるか判定することを特徴とする請求項９記載の輪郭データ変更方法。
【請求項１１】
基準輪郭データと対象輪郭データと交差しているか判定する交差判定ステップを有し、
前記交差判定ステップにおいて交差していると判定された場合、前記領域判定ステップによる判定を行うことを特徴とする請求項９記載の輪郭データ変更方法。
【請求項１２】
前記変更ステップにおいて変更されなかった曲線を抽出する抽出ステップと、
前記抽出ステップにおいて抽出された曲線を曲線線分変換する処理ステップとを有することを特徴とする請求項９記載の輪郭データ変更方法。
【請求項１３】
前記交差する輪郭データは輪郭型のデータであることを特徴とする請求項９記載の輪郭データ変更方法。
【請求項１４】
前記交差する輪郭データは芯線＋太さ型のデータから変換された輪郭型のデータであることを特徴とする請求項９記載の輪郭データ変更方法。
【請求項１５】
前記変更ステップにおいて連結が変更された線分に基づく文字または図形をディスプレイに表示する表示ステップを有することを特徴とする請求項９記載の輪郭データ変更方法。
【請求項１６】
前記変更ステップにおいて連結が変更された線分に基づく文字または図形をプリンタにより印刷する印刷ステップを有することを特徴とする請求項９記載の輪郭データ変更方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は輪郭データ変更装置および方法に関し、特に、曲線を含む文字や図形データにおいて交差を許すストローク単位のアウトライン型の座標データから交差を許さない全輪郭データへ変更し、処理するための文字・図形データを発生させる輪郭データ変更装置および方法に関する。
【０００２】
【従来の技術】
従来は、本出願人による特許出願（特願平８−２６９８４４号および特願平８−３５１５６７号）の明細書に記載されているように、ストロークとストロークの交差を発見するために「線分＋曲線」のデータのうち曲線データをショートベクトル化して、全てのデータをいったん線分データ化していた。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記のような従来の技術の場合、はじめに全ての曲線データをショートベクトルの集合に変換した後に交差判定を行っていたため、線分の数が膨大となってしまい、一対一で検索する方法では、検索数が大きいため、その処理時間がかかってしまうという問題点があった。
【０００４】
そこで、本発明は上述の点に鑑みて成されたもので、上記の課題を解決した輪郭データ変更装置および方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載の本発明の装置では、線分または曲線で構成されるストロークを表す輪郭と線分または曲線で構成されるストロークを表す輪郭とが交差する輪郭データを、線分または曲線で構成されるストロークを表す輪郭と線分または曲線で構成されるストロークを表す輪郭とが交差しない輪郭データに変更する輪郭データ変更装置であって、基準側の線分または曲線の領域と対象側の線分または曲線の領域とに交差があるか判定する領域判定手段と、前記領域判定手段により交差があると判定された場合、曲線を線分の集合に変換する変換手段と、線分どうしに交点があるか調べ、交点があると判定された場合、交点を元に線分の連結を変更する変更手段とを有することを特徴とする。
【０００６】
ここで、請求項２に記載の本発明の装置では、基準側の線分または曲線の点列を取出す第１取出し手段と、前記第１取出し手段により取出した基準側の線分または曲線の点列の領域をチェックする第１チェック手段と、対象側の線分または曲線の点列を取出す第２取出し手段と、前記第２取出し手段により取出した対象側の線分または曲線の点列の領域をチェックする第２チェック手段とを有し、前記領域判定手段は、前記第１チェック手段と前記第２チェック手段とのチェックに基づき基準側の線分または曲線の領域と対象側の線分または曲線の領域とに交差があるか判定することもできる。
【０００７】
ここで、請求項３に記載の本発明の装置では、基準輪郭データと対象輪郭データと交差しているか判定する交差判定手段を有し、前記交差判定手段により交差していると判定された場合、前記領域判定手段による判定を行うこともできる。
【０００８】
ここで、請求項４に記載の本発明の装置では、前記変更手段により変更されなかった曲線を抽出する抽出手段と、前記抽出手段により抽出された曲線を曲線線分変換する処理手段とを有することもできる。
【０００９】
ここで、請求項５に記載の本発明の装置では、前記交差する輪郭データは輪郭型のデータとすることもできる。
【００１０】
ここで、請求項６に記載の本発明の装置では、前記交差する輪郭データは芯線＋太さ型のデータから変換された輪郭型のデータとすることもできる。
【００１１】
ここで、請求項７に記載の本発明の装置では、前記変更手段により連結が変更された線分に基づく文字または図形を表示する表示手段を有することもできる。
【００１２】
ここで、請求項８に記載の本発明の装置では、前記変更手段により連結が変更された線分に基づく文字または図形を印刷する印刷手段を有することもできる。
【００１３】
上記目的を達成するために、請求項９に記載の本発明の方法では、線分または曲線で構成されるストロークを表す輪郭と線分または曲線で構成されるストロークを表す輪郭とが交差する輪郭データを、線分または曲線で構成されるストロークを表す輪郭と線分または曲線で構成されるストロークを表す輪郭とが交差しない輪郭データに変更するコンピュータで実行される輪郭データ変更方法であって、基準側の線分または曲線の領域と対象側の線分または曲線の領域とに交差があるか判定する領域判定ステップと、前記領域判定ステップにおいて交差があると判定された場合、曲線を線分の集合に変換する変換ステップと、線分どうしに交点があるか調べ、交点があると判定された場合、交点を元に線分の連結を変更する変更ステップとを有することを特徴とする。
【００１４】
ここで、請求項１０に記載の本発明の方法では、基準側の線分または曲線の点列を取出す第１取出しステップと、前記第１取出しステップにおいて取出した基準側の線分または曲線の点列の領域をチェックする第１チェックステップと、対象側の線分または曲線の点列を取出す第２取出しステップと、前記第２取出しステップにおいて取出した対象側の線分または曲線の点列の領域をチェックする第２チェックステップとを有し、前記領域判定ステップは、前記第１チェックステップと第２チェックステップとのチェックに基づき基準側の線分または曲線の領域と対象側の線分または曲線の領域とに交差があるか判定することもできる。
【００１５】
ここで、請求項１１に記載の本発明の方法では、基準輪郭データと対象輪郭データと交差しているか判定する交差判定ステップを有し、前記交差判定ステップにおいて交差していると判定された場合、前記領域判定ステップによる判定を行うこともできる。
【００１６】
ここで、請求項１２に記載の本発明の方法では、前記変更ステップにおいて変更されなかった曲線を抽出する抽出ステップと、前記抽出ステップにおいて抽出された曲線を曲線線分変換する処理ステップとを有することもできる。
【００１７】
ここで、請求項１３に記載の本発明の方法では、前記交差する輪郭データは輪郭型のデータとすることもできる。
【００１８】
ここで、請求項１４に記載の本発明の方法では、前記交差する輪郭データは芯線＋太さ型のデータから変換された輪郭型のデータとすることもできる。
【００１９】
ここで、請求項１５に記載の本発明の方法では、前記変更ステップにおいて連結が変更された線分に基づく文字または図形をディスプレイに表示する表示ステップを有することもできる。
【００２０】
ここで、請求項１６に記載の本発明の方法では、前記変更ステップにおいて連結が変更された線分に基づく文字または図形をプリンタにより印刷する印刷ステップを有することもできる。
【００２５】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を詳細に説明する。
【００２６】
（第１実施の形態）
図１は本発明を適用した情報処理システムの基本的な構成を示す。本システムは日本語ワードプロセッサであってもよいし、ワークステーションあるいはパーソナルコンピュータ等のシステムであってもよい。図１において１はＣＰＵ、すなわち中央処理装置であり、この装置全体の制御および演算処理等を行う。
【００２７】
２はＲＯＭ、すなわち読み出し専用メモリであり、システム起動プログラムおよび文字パターン・データ等を記憶する。
【００２８】
３はＲＡＭ、すなわちランダムアクセスメモリであり、ＣＰＵ１が演算に使用するデータ、ＣＰＵ１の演算結果を一時記憶する。
【００２９】
４はＫＢＣ、すなわち入力装置を制御するキーボード制御部であり、キーボード（ＫＢ）５よりキー入力データ（文字コードや制御コード）を受け取りＣＰＵ１へ伝達する。入力装置としては、ポインティングデバイスも使用される。
【００３０】
６はＣＲＴＣ、すなわちディスプレイ制御部であり、ＲＡＭ３に格納された表示情報、すなわち、文字コードから変換されたビットマップイメージを読み出し、ディスプレイ装置（ＣＲＴ）７に転送する。
【００３１】
出力装置であるディスプレイ装置７は、ディスプレイ制御部６から転送されたビットマップイメージを受け取り表示画面に表示する。
【００３２】
８はＤＫＣ、すなわちディスク制御部であり、外部記憶装置９のデータ伝送等の制御を行う。外部記憶装置９は、ＦＤ、すなわちフロッピー（登録商標）ディスク装置、ＨＤ、すなわちハードディスク装置、あるいはＣＤ−ＲＯＭ等を含んで構成される。外部記憶装置９にはプログラムおよびデータを記憶させておき、ＣＰＵ１は必要に応じて記憶データを参照したり、またはＲＡＭ３にロードする。
【００３３】
１０はＰＲＴＣ、すなわちプリンタ制御部であり、ＰＲＴ、すなわち出力装置であるプリンタ装置１１の動作制御を行う。
【００３４】
１２はシステムバスであり、上述の構成要素間のデータ転送を行う。
【００３５】
図２は、図１のシステム構成からなる本発明装置の全体の処理におけるメモリ構成を示した図である。
【００３６】
図２で示したように、本装置の全体処理に必要なメモリ構成は、基本Ｉ／Ｏプログラム２０、オペレーティングシステム２１、アプリケーション２２、関連データ２３およびワークエリア２４からなる。本装置は、これらのうち基本Ｉ／Ｏプログラム２０、ウインドウズ（マイクロソフト社登録商標）システム等のオペレーティングシステム２１、および本発明方法の処理である文字発生処理プログラムを含むアプリケーション２２が実行されることにより動作する。
【００３７】
なお、図２においてオペレーティングシステム２１は、ウインドウズシステム等のオペレーティングシステムがＲＡＭ３にロードされ実行可能となった状態を示している。
【００３８】
また、アプリケーション２２は、本発明の文字処理プログラムがＲＡＭ３にロードされ実行可能となった状態のメモリマップを示し、関連データ２３は関連データがＲＡＭ３にロードされ実行可能となった状態のメモリマップを示している。ワークエリア２４は、各々のプログラムが使用するワークメモリのメモリマップを示す。
【００３９】
また、図２に示した基本Ｉ／Ｏプログラム２０は、図１のＲＯＭ２に格納されている。オペレーティングシステム２１は、図１に示したＨＤ等の外部記憶装置９に格納されている。そして電源がＯＮされたときに、基本Ｉ／Ｏプログラム２０中のＩＰＬ（イニシャライズプログラムローディング）機能によりＨＤからオペレーティングシステムがＲＡＭ３に読み込まれ、本装置が起動する。
【００４０】
ここで、図３に文字発生処理プログラムおよび関連データを記録したＦＤ，ＣＤ−ＲＯＭ等における記録媒体の記録内容の構成例を示す。
【００４１】
図３に示したように、ＦＤ，ＣＤ−ＲＯＭ等の記録媒体は、ボリューム情報３１、ディレクトリ情報３２、文字発生処理プログラム実行ファイル３３および文字発生処理プログラム関連データファイル３４等の記録内容３０で構成される。
【００４２】
本発明のプログラムおよび関連データは、たとえば図４に示すように、ＦＤあるいはＣＤ−ＲＯＭ等の装置に着脱自在な記録媒体４３を、装置本体４１に装備された記録媒体挿入口４２に挿入することで供給される。そして、ＦＤあるいはＣＤ−ＲＯＭからのプログラムおよび関連データを一旦ＨＤへインストールすることにより、ＨＤからＲＡＭ３にロードし、本発明のプログラムを実行することが可能となる。なお、ＨＤへインストールせずにＦＤあるいはＣＤ−ＲＯＭからＲＡＭ３に直接ロードして実行することも可能である。
【００４３】
図５は本発明にかかる文字処理装置を適用可能な別のシステムの制御構成を示すブロック図である。
【００４４】
なお、本システムはレーザビームプリンタであってもよいし、インクジェットプリンタあるいは熱転写方式等の出力機であってもよい。図５において、５１はＣＰＵ、すなわち中央処理装置であり、この装置全体の制御および演算処理等を行うものである。
【００４５】
５２はＲＯＭ、すなわち読み出し専用メモリであり、システム起動プログラムおよび文字パターン・データ等の記憶領域である。５３はＲＡＭ、すなわちランダムアクセスメモリであり、さまざまな処理毎に各々のプログラムおよびデータがロードされ実行される領域である。
【００４６】
５１０はＰＲＴＣ、すなわちプリンタ制御部であり、５１１はＰＲＴ、すなわちプリンタ装置である。５１２はシステムバスであり、上述における構成要素間のデータの通路となるべきものである。
【００４７】
ここで、上記構成の装置を利用した本発明方法の詳細について図６のフローチャートを参照して説明する。
【００４８】
まず、図６におけるフローチャートのインターフェイスとして文字コード、出力装置に出力するときの出力サイズ、書体、変形情報等が渡される。そして、ステップＳ１０１において文字コード、書体から対象となる文字のデータを読み込む。このとき読み込むデータはストローク単位で登録された文字データであり、図７に示すようなそれぞれのストロークが芯線＋太さ型のデータであってもよいし、図８に示すようにそれぞれのストロークが輪郭型のデータであってもよい。
【００４９】
そして、ゲットしたデータが図７に示すような芯線＋太さ型のデータであれば、芯線＋太さ型のデータから図８に示すような１ストローク単位のアウトライン座標に変換する。
【００５０】
そしてステップＳ１０２において、あらかじめＲＯＭ２，５２あるいはＨＤ等の外部記憶装置９に格納されたデータが持つ文字の幅と高さと、インターフェイスで要求された出力サイズから、拡大縮小処理や変形処理等の座標変換を行って、読み込んだ文字の輪郭データを発生する。
【００５１】
ステップＳ１０３においては、１文字分の全てのストロークについて輪郭データ発生が終了したかどうかを判定する。１文字分の全てのストロークに対して座標変換を終了したらステップＳ１０４へ進み、まだ処理すべきストロークが存在していればステップＳ１０２へ戻って、ステップＳ１０２，Ｓ１０３を繰り返し行う。
【００５２】
ステップＳ１０４では、ベジェ曲線やＢスプライン曲線で定義されている点列と、線分として登録された点列の座標データを輪郭の順序を守るようにして登録する。
【００５３】
図９は登録された座標列の様子を示す説明図である。
【００５４】
図９（ａ）は、輪郭に点Ａ〜Ｈを含むストローク９１と輪郭に点Ｉ〜Ｌを含むストローク９２で構成される「ナ」の例を示す。この図および以下の図において、△（白抜き三角印）は曲線の中間点、○（白抜き丸印）はその他の点を表す。
【００５５】
登録内容は図９（ｂ）の輪郭データ管理情報部に、１輪郭毎のデータ９１０，９２０として登録される。この輪郭データのメンバとしては、各輪郭の回転方向（左回り、右回り）、スタート点番号、エンド点（終了点）番号、輪郭データの最大座標値、最小座標値が格納される。この最大座標値はストロークの最大ｘ座標と最大ｙ座標で、最小座標値はストロークの最小ｘ座標と最小ｙ座標である。
【００５６】
そして実際には、図９（ｃ）の輪郭座標データテーブルに輪郭情報が格納されている。この輪郭座標データテーブルには、輪郭データ管理情報部によって示されたスタート点番号からエンド点番号までの輪郭における点について、その座標値、点属性フラグ、一つ前の点番号、次の点番号が格納される。ここで点属性フラグには、曲線のスタート点であれば１を、曲線の中間点であれば２を、曲線のエンド点であれば３を付ける。そして、直線上の点等のその他の点のフラグの値には０を付ける。
【００５７】
したがって、図９（ａ）のストローク９１の曲線部分のスタート点Ｂには１が、中間点Ｃ，Ｄには２が、エンド点Ｅには３が付けられている。ここではストローク９２は直線であり、このすべての点Ｉ〜Ｌに０が付けられている。また、前の点番号と次の点番号の値から、ストローク９１の輪郭はＡＢＣＤＥＦＧＨＡの順に、ＩＪＫＬＩの順に登録されていることがわかる。
【００５８】
図６に戻って説明すると、ステップＳ１０５以降では、ステップＳ１０４までの処理で登録したストロークの輪郭データをチェックして、お互いの輪郭が交差していれば繋ぎ替えて新たな線分の集合で輪郭を発生させる処理を行う。
【００５９】
ステップＳ１０５においては、まず図９で示したように登録された最初の輪郭データを基準輪郭データとしてセットする。
【００６０】
ステップＳ１０６においては、ステップＳ１０５でセットした基準輪郭データの次の輪郭データを対象輪郭データとしてセットする。以上により、１つの文字の２つのストロークが抽出されたことになる。
【００６１】
ステップＳ１０７においては、基準輪郭データと対象輪郭データが交差しているかどうかの交差判定を行う。ここでの判定方法は、図９で示した各輪郭の情報から、基準輪郭データの最大座標値および最小座標値と対象輪郭データの最大座標値および最小座標値をチェックし、重なっているかどうかを判定するものである。重なっていたら交差ありと判定し、ステップＳ１０８へ進む。重なっていなかったら交差なしと判定し、ステップＳ１１０へ進む。
【００６２】
ステップＳ１０８においては基準輪郭データと対象輪郭データの交差する線分を検索し、交差がある場合には曲線を線分の集合に変換して線分の交点座標を算出し、この交点座標に基づき輪郭を繋ぎ替える連結変更処理を行う。この連結変更処理の詳細については、後で図１４乃至図１５のフローチャートを参照して詳述する。
【００６３】
そしてステップＳ１０９においては、ステップＳ１０８において連結を変更したことによって消滅した輪郭の登録削除や、新たに発生した輪郭の登録追加等の新しい輪郭データ登録処理を行う。
【００６４】
ステップＳ１１０においては、次の対象輪郭データの候補を検索する。検索の方法としては、輪郭情報データ管理部において、ステップＳ１０９で対象としていた対象輪郭データの後に別の輪郭データが存在するかどうかをチェックする。検索の結果まだ存在する場合は、ステップＳ１１１において対象輪郭データは終了していないと判断し、ステップＳ１１２へ進む。検索の結果もう対象輪郭データが存在しない場合には、ステップＳ１１１において対象輪郭データは終了したと判断し、ステップＳ１１３に進む。
【００６５】
ステップＳ１１２においては、ステップＳ１１０において検索した対象輪郭データを次の新たなチェックすべき輪郭データとして登録する。次の対象輪郭データを登録するとステップＳ１０７に戻り、基準輪郭データとの交差をチェックし、交差が存在すれば輪郭の繋ぎを変更する連結変更処理を行う。
【００６６】
ステップＳ１１３に進むと、これまでの処理で１つの基準輪郭データに対して処理を終了したことになるので、次の新たな基準輪郭データを検索する。検索方法としては、ステップＳ１１２までに対象としていた基準輪郭データの次のデータが存在するかどうかをチェックする。この結果、存在していればステップＳ１１４において基準データとなり得る輪郭はまだ存在すると判断しステップＳ１１５へ進む。しかし、基準輪郭データとなるべき輪郭が存在しない場合には、ステップＳ１１４で基準輪郭データはもう存在しないと判断し、ステップＳ１１６へ進む。
【００６７】
ところで、ステップＳ１１０やステップＳ１１３において対象輪郭データや基準輪郭データを検索する際には、輪郭情報データ管理部のスタート点およびエンド点の点番号を調べて、スタート点およびエンド点の値が「−１」になっていなければまだ存在すると判断する。「−１」となっていた場合には、消滅した輪郭データと判断し、次の輪郭データを検索しにいく。
【００６８】
ステップＳ１１５においては、ステップＳ１１３において検索した基準輪郭データを次の新たなチェックすべき基準輪郭データとして登録する。次の基準輪郭データを登録すると、ステップＳ１０６に戻って対象輪郭データとの交差をチェックし、交差が存在すれば輪郭の繋ぎを変更するステップＳ１０７以降の処理を行う。すなわち、登録された１文字分のすべてのストロークからストロークを２つずつ抽出して、抽出された各ストローク対に対して交差判定等の処理を行う。
【００６９】
そして、ステップＳ１１６においては、これまでに求めた輪郭データを交差を許さない全輪郭データとして出力する。このとき、輪郭データ管理情報部に登録された全ての輪郭データを出力するわけではなく必要とされる輪郭データの抽出を行う。さらに、線分への変換を１文字について漏れなく行うために必要とされるデータ、つまり、ステップＳ１０８の連結変更処理を行っても変換されなかった曲線データを検索し抽出する。上記のように生成出力されたデータに基づいて、ディスプレイ制御部６の制御によってディスプレイ７の表示画面に文字（および／または図形）パターンを表示出力する。また、プリンタ制御部１０，５１０の制御によってプリンタ装置１１，５１１が文字（および／または図形）パターンのプリント出力を行う。
【００７０】
必要な輪郭データの抽出においては、たとえば図１０（ａ）に示すストローク１０１〜１０４で構成される図形の例では、最初の輪郭数は４である。そして、この図１０（ｂ）の輪郭データ１１０，１２０，１３０，１４０を上記アルゴリズムで処理すると、輪郭データ管理情報部には最終的に図１１に示す輪郭データが得られ、このデータが表す輪郭は図１２が示すとおりになる。処理結果がこのようになることは、ステップＳ１０８の連結変更についての詳細な説明を参照すると容易に理解できる。
【００７１】
図１１において、輪郭データ１１０ａ，１２０ａ，１３０ａ，１４０ａは輪郭データ１１０，１２０，１３０，１４０が更新登録されたものであり、輪郭データ１５０〜１９０は新たに登録されたものである。輪郭データ１２０ａ，１３０ａ，１４０ａのスタート点およびエンド点の値は「−１」であり、輪郭データとしては消滅したものになっている。輪郭データ１１０ａは図１２の輪郭１０１ａを、輪郭データ１５０〜１９０はそれぞれ輪郭１０５〜１０９を表す。
【００７２】
この例の場合、最初の輪郭数が４であるので、それよりも小さいところに登録されていて輪郭の回転方向が逆転していないのは輪郭データ１１０ａが表す最初の輪郭のみである。また、最初の輪郭数４よりも多いところに登録されていて輪郭の回転方向が左回りに逆転しているのは輪郭データ１９０が表す最後の輪郭のみである。したがって、この２つの輪郭１０１ａ，１０９のみを抽出して最終的に登録することによって、図１３のような輪郭の交差を許さない全輪郭データを発生させることが可能となる。
【００７３】
ところで、上記の処理中にステップＳ１０８の段階で曲線に他の線分領域または曲線領域との交差があったと判定された場合には既に曲線から線分変換されているが、曲線に当該交差がなかった場合には、最後に曲線線分変換をする必要がある。そこで抽出された輪郭データに登録されていた全ての点属性の検索を行う。輪郭のスタート点から順に「次」の連結点をチェックしていき、点属性１（曲線開始点）がないかどうかをチェックする。点属性１があった場合には、その後に現れる点属性３（曲線終了点）の点までが曲線データであると登録する。この曲線検索を登録されている輪郭データの全ての点に対して行う。そしてステップＳ１１７では、ステップＳ１１６において抽出された曲線データがあれば、この曲線データを曲線線分変換する処理を行って全体の処理を終了する。ステップＳ１１７における処理は、後に図１４乃至図１５のフローチャートを参照して説明する処理と同様である。
【００７４】
このようにして、輪郭の交点を検索し、お互いの輪郭の連結を変更し、最後に必要なデータのみを抽出してさらに曲線線分変換することで、１文字のすべてのストロークに対して交差を許す輪郭データから交差を許さない全輪郭データの発生を行うことが可能となる。
【００７５】
ここで、図６におけるステップＳ１０８の連結変更の詳細について図１４乃至図１５のフローチャートを参照して説明する。
【００７６】
まずステップＳ２０１においては、基準輪郭側の線分か曲線かの点列を取り出すための判定を行う。ここでは図９（ｃ）の輪郭座標データテーブルで示した点属性を見て、その属性の値が０であれば曲線ではなく線分であると判定してステップＳ２０２へ進み、属性の値が１であれば曲線であると判定してステップＳ２０４へ進む。
【００７７】
ステップＳ２０２においては、現在の点とその次の点を取り出すことによって線分データの取り出し、すなわち直線点列の取り出しを行う。
【００７８】
そしてステップＳ２０３においては、取り出した直線点列の領域をチェックする。つまり、取り出した線分データのｘ座標およびｙ座標をチェックし、その線分が含まれる範囲の最大座標値および最小座標値を格納することによって、その線分の領域とする。
【００７９】
またステップＳ２０４においては、現在の点属性１の点から点属性が２である点を順次読み込み、点属性が３になる点まで読み込むことで曲線点列の取り出しを行う。
【００８０】
そしてステップＳ２０５においては、取り出した曲線点列の領域をチェックする。つまり、読み込んた点すべてのｘ座標およびｙ座標を調べ、それぞれの座標の最小値および最大値を格納することによって、その曲線が含まれる領域とする。ここまでで、線分部分、曲線部分がそれぞれ１つの領域として算出される。
【００８１】
以上の処理を基準輪郭データ側で行うと、同様の処理を続いて対象輪郭データ側でも行うことにより、その線分部分、曲線部分をそれぞれ１つの領域として算出する。具体的には、ステップＳ２０６ないしＳ２１０の処理を行う。
【００８２】
ステップＳ２０６においては、対象輪郭側の線分か曲線かの点列を取り出すための判定を行う。ここでは図９の輪郭座標データテーブルで示した点属性を見て、その属性の値が０であれば曲線ではなく線分であると判定してステップＳ２０７へ進み、属性の値が１であれば曲線であると判定してステップＳ２０９へ進む。
【００８３】
ステップＳ２０７においては、現在の点とその次の点を取り出すことによって線分データの取り出し、すなわち直線点列の取り出しを行う。
【００８４】
そしてステップＳ２０８においては、取り出した直線点列の領域をチェックする。つまり、取り出した線分データのｘ座標およびｙ座標をチェックし、その線分が含まれる範囲の最大座標値および最小座標値を格納することによって、その線分の領域とする。
【００８５】
ステップＳ２０９においては、現在の点属性１の点から点属性が２である点を順次読み込み、点属性が３になる点まで読み込むことで曲線点列の取り出しを行う。
【００８６】
そしてステップＳ２１０においては、取り出した曲線点列の領域をチェックする。つまり、読み込んた点すべてのｘ座標およびｙ座標を調べ、それぞれの座標の最小値および最大値を格納することによって、その曲線が含まれる領域とする。
【００８７】
基準輪郭側および対象輪郭側について領域を算出すると図１５のステップＳ２１１においては、基準輪郭側で算出した線分または曲線の領域と、対象輪郭側で算出した線分または曲線の領域に交差があるかどうかの交差判定（他の交差判定）を行う。ここでは、それぞれ算出した領域のｘ座標およびｙ座標の最小値と最大値を調べ、領域が重なる部分があるかどうかをチェックする。この結果、重なる部分がある場合は交差があると判断し、ステップＳ２１２へ進む。一方、重なる部分がない場合は交差がないと判断し、ステップＳ２１９へ進む。
【００８８】
図１６は線分領域と曲線領域の交差判定の様子を示す説明図である。
【００８９】
図１６（ａ）は線分領域１６００と曲線領域１６１０に実際に交差がある場合を示す。図１６（ｂ）は線分領域１６００と曲線領域１６１０に実際には交差はないが、領域として判断すると交差があると判断される場合を示す。ここでは、曲線１６１０が含まれる破線で示す範囲１６２０と線分領域１６００が交差している。図１６（ｃ）は線分領域１６００と曲線領域１６１０に実際に交差もないし、領域として判定した場合にも交差がない場合をそれぞれ示す。ここでは、曲線１６１０が含まれる破線で示す範囲１６２０と線分領域１６００は交差していない。
【００９０】
したがって、ステップＳ２１１による判定処理を行うと、図１６（ａ）および（ｂ）の場合には交差があると判定してステップＳ２１２へ進み、図１６（ｃ）の場合には領域に交差がないと判定してステップＳ２１９へ進む。線分領域と線分領域との判定、および曲線領域と曲線領域との判定も、このように同様な方法で行う。
【００９１】
領域に交差があるときにステップＳ２１２においては、基準輪郭側で取り出したデータが曲線かを判定し、曲線ではなく線分であればステップＳ２１４へ進み、曲線であればステップＳ２１３へ進む。
【００９２】
ステップＳ２１３では、曲線のデータを短い線分の集合（ショートベクトル）に変換する。ここで扱う曲線は、内包性の特性（制御点の最小値、最大値の領域を超えない）を持つベジェ曲線であってもＢスプライン曲線であってもよい。そして、規則にしたがってベジェ分解またはＢスプライン展開を行い、曲線をショートベクトル化する。
【００９３】
図１７は図９（ａ）で示した曲線の制御点のレベルの文字から曲線分解してショートベクトル化（線分変換）した文字の点列を示す説明図である。ここで、１７１と１７２は図９中のストローク９１，９２の曲線領域であり、これについては以下に詳しく説明する。
【００９４】
図１８は変換された線分の座標列の様子を示す説明図である。
【００９５】
輪郭データ管理情報部には、図９（ｂ）の場合と同様に１輪郭毎のデータ１７１０，１７２０として登録されているが、輪郭座標データテーブルの内容は図９（ｃ）の場合とは異なる。
【００９６】
すなわち、輪郭座標データテーブルには、図１８（ｃ）のように新たに点番号１４以降の点の線分のデータが加わり、元の点の点属性、繋ぎ情報（前の点番号、次の点番号）も更新される。点Ａ，Ｂ，Ｅ，Ｆは曲線の端点となるので、点属性フラグは０となる。追加された点によって点Ｂ，Ｆの次の点、点Ａ，Ｅの前の点が変わるので、これらの繋ぎ情報が更新される。図１８（ｃ）の前の点番号と次の点番号の値から、ストローク９１の輪郭情報は、連続する線分ＡＢ，線分Ｂａ，線分ａｂ，線分ｂｃ，線分ｃｄ，線分ｄＥ，線分ＥＦ，線分Ｆｅ，線分ｅｆ，線分ｆｇ，線分ｇｈ，線分ｈＡの集合に変換されて登録されていることがわかる。つまり、曲線が線分に変化されている。またストローク９２の輪郭情報は、連続する線分ＩＪ、線分ＪＫ、線分ＫＬ、線分ＬＩの集合に変換されて登録されていることがわかる。
【００９７】
図１５に戻って説明すると、ステップＳ２１４においては対象輪郭側で取り出したデータが曲線かを判定し、曲線ではなく線分であればステップＳ２１６へ進み、曲線であればステップＳ２１５へ進む。
【００９８】
ステップＳ２１５では、ステップＳ２１３と同様にして曲線のデータを短い線分の集合に変換（ショートベクトル化）する。
【００９９】
ステップＳ２１６においては、基準側の線分またはショートベクトル群と、対象側の線分またはショートベクトル群と実際に交差があるかどうかをチェックする。線分どうしの場合は、お互いの線分の領域内に交点があるかどうかを調べ、ある場合にはその交点を求める。線分のショートベクトル群の場合には、線分に対して全てのショートベクトルと交点があるかどうかを調べ、ある場合にはその線分と交点の登録行う。ショートベクトル群どうしの場合には、総ての組み合わせについて線分どうしに交点があるかどうかを調べ、ある場合にその交点があるそれぞれの線分と交点の登録を行う。例えば図１６に示した例では、図１６（ａ）の場合には、実際の交点が存在するのでこのステップにおいて計算により交点座標が算出される。図１６（ｂ），（ｃ）の場合には実際に交点がないので交点なしと判定され、座標算出は行わない。
【０１００】
ステップＳ２１７においては、ステップＳ２１６で調べた交点が存在したか（線分交差ありか）どうかを判定して、存在していればステップＳ２１８へ進み、存在していなければステップＳ２１９へ進む。
【０１０１】
ステップＳ２１８に進むのは２つの曲線領域１７１，１７２の中に交点があった場合であり、その交点を基にして２つの輪郭の連結を変更して連結を繋ぎ変える。図１７の片仮名「ナ」の例では、図１８（ａ）のようにα，β，γ，δの４点が２つの曲線領域１７１と１７２の交点となる。
【０１０２】
したがって連結変更のために、図１９のように輪郭座標データテーブルに、点番号２２〜２９としてこれらの交点座標を追加登録する。交点αについては２つの交点座標α１，α２を登録し、他の交点β，γ，δについても同様に２つずつ交点座標を登録する。
【０１０３】
まず交点αを利用した連結の繋ぎ変えについて説明すると、線分ＩＪと線分ｇｈの交点が交点αとなっているので、Ｉ→Ｊの順に連結していたのをＩ→α１→ｈの順になるように連結変更し、またｇ→ｈの順に連結していたのをｇ→α２→Ｊの順になるように連結変更する。交点βは線分ａｂと線分ＩＪの交点となっていたが、交点αを利用した前記の連結変更により、線分ａｂと線分α２Ｊの交点に変更されている。そこで、ａ→ｂの順に連結していたのをａ→β１→Ｊの順になるように連結変更する。また、α２→Ｊの連結はα２→β２→ｂの順になるように連結変更する。
【０１０４】
以下、交点γ，交点δについても同様な連結変更操作を行っていくと、図１８（ｃ）の輪郭座標データテーブルは図１９から図２０のように繋ぎ情報（前の番号と次の番号）を更新される。図２０は２つの輪郭を表している。一つは繋ぎ情報が示すように、点番号１の点Ａをスタート点とし点番号８の点Ｉをエンド点とするもので、連結順はＡ→Ｂ→ａ→Ｊ→Ｋ→γ１→ｃ→ｄ→Ｅ→Ｆ→ｅ→ｆ→δ１→Ｌ→Ｉとなっている。もう一つは、点番号９の点Ｉをスタート点とし点番号１３の点Ａをエンド点とするもので、連結順はＩ→α１→ｈ→Ａとなっている。これら２つの輪郭はスタート点とエンド点において互いに結合しているので、一方のスタート点とエンド点は消滅し、輪郭の一部となっている。
【０１０５】
すなわち、図１９におけるスタート点でありエンド点であった点Ｉは、通常の輪郭の一部として、Ｌ→Ｉ→α１と連続する連結になる。その様子を図２１に示す。図２１は、繋ぎ変えによって得られた２つの輪郭を表している。一つは繋ぎ情報が示すように、点番号１の点Ａをスタート点とし点番号８の点Ａをエンド点とするもので、連結順はＡ→Ｂ→ａ→Ｊ→Ｋ→γ１→ｃ→ｄ→Ｅ→Ｆ→ｅ→ｆ→δ１→Ｌ→Ｉ→α１→ｈ→Ａとなっている。もう一つは、点番号２３の点α２をスタート点とし点番号３０の点α２をエンド点とするもので、連結順はα２→β２→ｂ→γ２→δ２→ｇ→α２となっている。
【０１０６】
そして、輪郭データ管理部の情報もそれにしたがって更新され、図２２に示すようになる。
【０１０７】
図２０が示す２つめの輪郭（スタート点番号９，エンド点番号１３）は連結変更によって閉じられたので、輪郭データ管理部から削除する必要がある。ここでは、輪郭がなくなったという意味で輪郭データ２２２のスタート点番号およびエンド点番号に「−１」の値を代入する。そして、図２１が示す２つめの輪郭（スタート点番号２３，エンド点番号３０）の輪郭データ２２３が新たに生成されたので、その回転方向、スタート点番号、エンド点番号、輪郭データの最大座標値、最小座標値等、その輪郭の情報を輪郭データ管理情報部に登録する。２２１は図２１が示す１つめの輪郭（スタート点番号０，エンド点番号８）の輪郭データである。
【０１０８】
図１５に戻って説明すると、ステップＳ２１９においては、対象輪郭のすべての点列において、上記の交差判定が終了したかどうかを判定する。対象輪郭のすべての点列においてチェックが終了していればステップＳ２２１へ進み、まだチェックが終了していなければ図１４のステップＳ２２０へ進んで、次の新たな点列についてステップＳ２０６〜Ｓ２１８による処理を行う。
【０１０９】
ステップＳ２２１では、基準輪郭のすべての点列において、上記の交差判定が終了したかどうかを判定する。基準輪郭のすべての点列においてチェックが終了していれば、本フローチャートの２つの輪郭の交差判定および連結変更処理を終了する。まだチェックが終了していなければ図１４のステップＳ２２２へ進んで、次の新たな点列についてステップＳ２０１〜Ｓ２２０による処理を行う。
【０１１０】
上記のようにして図６および図１４乃至図１５のフローチャートに基づいて連結変更の処理を行う本実施の形態によれば、全ての曲線データをショートベクトルの集合に変換することなく、必要なときに曲線から線分群へ変更している。つまり、交差判定を行って線分または曲線領域に交差があるときだけ曲線から線分群へ変更することができるので、膨大な量のデータを扱うことなく処理を高速化し高品位画像を発生させることが可能となる。
【０１１１】
また、交差を許すストロークデータは、ストローク単位のアウトラインデータとすることも、芯線＋太さ型のデータとすることもできる。
【０１１２】
（第２実施の形態）
次に第２実施の形態について説明する。本実施の形態では、ユーザ定義可能なフォントエディタ画面あるいは図形編集画面に表示された文字や図形において交差があったストロークに対して、ユーザの指示により交差をなくす処理を行う例について説明する。
【０１１３】
図２３は本発明にかかるコンピュータあるいはワークステーション等の画面上で文字や図形を編集するときの文字データ編集画面の様子を示す説明図である。
【０１１４】
この画面上で、ユーザは好みのアウトラインフォントを周知の技術により編集し登録することができる。図２３は、「吉」という文字を輪郭を交差させて登録したときの表示例を示しており、７個のストローク２３１〜２３７のデータとして登録している。２３０，２３９はモード選択ボタンであり、ユーザがマウス等のポインティングデバイスを用いてクリックしたボタンに応じて、本実施の形態の機能が遂行される。
【０１１５】
モード選択ボタン２３０をクリックすると一括変換モードが選択され、図２４で後述するように、編集画面上の全てのデータに対して交差を許す輪郭データから交差を許さない全輪郭データへの変換が行われる。一方、モード選択ボタン２３９をクリックすると部分変換モードが選択され、図２５，図２６を例にとって後述するように、ユーザに任意に変換対象領域を指定させ、その領域に少なくとも一部が属するストロークに対してのみ交差を許す輪郭データから交差を許さない全輪郭データへの変換が行われる。
【０１１６】
図２４は、ユーザが一括変換モードを選択した場合の変換の様子を示す説明図である。
【０１１７】
編集画面上の全ての文字（および／または図形）のストローク２３１〜２３７に対して、第１実施の形態で説明したとおりに全てのデータの交差をチェックし、交差が存在すれば交差を許さない輪郭型への一括変換を行うと、交差しない２つの輪郭２４１，２４２が得られる。
【０１１８】
図２５は、ユーザが部分変換モードを選択した場合の変換の様子を示す説明図である。
【０１１９】
まずユーザがどの部分領域に対して変換処理を行うのかを指定する。この例では、点線２５０で示すように部分領域を囲むことによって指定する。
【０１２０】
変換処理を行う領域を指定すると、プログラムの処理では、まず点線２５０で示された部分領域内に少なくともその一部が含まれているストロークが存在するのかどうかをチェックし、存在するのであればそのストロークはどのストロークであるのかをチェックする。図２５の例では、太線で示したストローク２３１，２３２のそれぞれ一部が点線２５０で指定した部分領域に含まれており、その他のストローク２３３〜２３７は、点線２５０で指定した部分領域に全く含まれていない。
【０１２１】
したがって、この部分領域に少なくとも一部が含まれているストローク２３１，２３２には、含まれていることを示すフラグを１にセットする。一方、この部分領域に全く含まれていないストローク２３３〜２３７に対しては、含まれていないのでそのフラグをクリアして０とする。そしてフラグがセットされたストローク２３１，２３２のみを抽出し、それらのストローク２３１，２３２に対してのみ第１実施の形態で説明したのと同様の処理を施すことによって、ユーザが任意に指定した部分領域に少なくとも一部が含まれるストロークに対して、交差を許す輪郭データから交差を許さない２５１の全輪郭データへの変換を行うことができる。
【０１２２】
同様に図２６の例は、ユーザが部分変換モードを選択した場合の変換の様子を示す説明図である。
【０１２３】
まずユーザがどの部分領域に対して変換処理を行うのかを指定する。この例では、点線２６０で示すように部分領域を囲むことによって指定する。
【０１２４】
変換処理を行う領域を指定すると、プログラムの処理では、まず点線２６０で指定された部分領域に少なくとも一部が含まれているストロークが存在するのかどうかをチェックし、存在するのであればそのストロークはどのストロークであるのかをチェックする。図２６の例では、ストローク２３４の全部と、ストローク２３５，２３７の一部が部分領域２６０に含まれており、その他のストローク２３１〜２３３，２３６は、点線２６０で指定された部分領域に全く含まれていない。
【０１２５】
したがって、この部分領域に少なくとも一部が含まれているストローク２３４，２３５，２３７には、含まれていることを示すフラグを１にセットする。一方、この部分領域に全く含まれていないその他のストロークに対しては、含まれていないのでそのフラグをクリアして０とする。そしてフラグがセットされたストローク２３４，２３５，２３７のみを抽出し、それらのストローク２３４，２３５，２３７に対してのみ第１実施の形態で説明したのと同様の処理を施すことによって、ユーザが任意に指定した部分領域に少なくとも一部が含まれるストロークに対して、交差を許す輪郭データから交差を許さない２６１の全輪郭データへの変換を行うことができる。
【０１２６】
このように、ユーザが文字や図形の編集を行っていてストロークの交差を作って登録してしまった場合に、交差を取り除きたいストロークそれぞれの少なくとも一部を含む領域を画面上で指示することによって、ユーザの手間をかけずに自動的に２つ以上の輪郭の交差を取り除くことが可能となる。
【０１２７】
本発明方法は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用しても良い。また、本発明方法はシステム或いは装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。この場合、本発明方法を達成するためのソフトウエアによって表されるプログラムを格納した記憶媒体をシステム或いは装置に読み出すことによって、そのシステム或いは装置が、本発明方法の効果を享受することが可能になる。
【０１２８】
【発明の効果】
以上説明してきたように、本発明によれば、互いに交差するストローク対を含んで構成される画像データをストローク単位で登録し、当該ストローク対のデータから交差しない輪郭データを発生させる際において、登録されたストロークを２つずつ組み合わせてストローク対を抽出し、当該抽出されたストローク対に対し、両ストロークが互いに交差するかを判定し、交差すると判定されたときのみ両ストロークを線分の集合に変換し、両ストロークの各線分が交差しないように各線分を繋ぎ替えることで、両ストロークを表す交差のない輪郭線を発生させるので、処理する線分の数を必要最小限とすることができ、高速かつ高品位な輪郭データ変更を行うことができる効果が得られる。
【図面の簡単な説明】
【図１】本発明の第１実施の形態のシステム構成を示すブロック図である。
【図２】システムのメモリ構成を示す図である。
【図３】記録媒体のメモリ構成を示す図である。
【図４】システムの外観を示す図である。
【図５】本発明の他のシステム構成を示すブロック図である。
【図６】第１実施の形態の処理の全体の流れを示すフローチャートである。
【図７】芯線＋太さ型のストロークデータの例を示す説明図である。
【図８】ストローク単位のアウトライン型のデータの例を示す説明図である。
【図９】登録された座標列の様子を示す説明図である。
【図１０】交点を求める様子を示す説明図である。
【図１１】繋ぎ替えをした後の輪郭データ管理情報部を示す説明図である。
【図１２】繋ぎ替えをした後の図形を示す説明図である。
【図１３】必要なデータのみを抽出した様子を示す説明図である。
【図１４】本発明の詳細な流れを示すフローチャート（その１）である。
【図１５】本発明の詳細な流れを示すフローチャート（その２）である。
【図１６】線分領域と曲線領域の交差判定の様子を示す説明図である。
【図１７】曲線から線分変換した様子を示す図である。
【図１８】線分変換した後、交点を求める様子を示す説明図である。
【図１９】繋ぎ替えの様子を示す輪郭座標データテーブルの説明図（その１）である。
【図２０】繋ぎ替えの様子を示す輪郭座標データテーブルの説明図（その２）である。
【図２１】繋ぎ替えの様子を示す輪郭座標データテーブルの説明図（その３）である。
【図２２】輪郭の新規登録の様子を示す輪郭データ管理情報部の説明図である。
【図２３】第２実施形態による文字データ編集画面の様子を示す説明図である。
【図２４】一括変換の様子を示す説明図である。
【図２５】部分変換の様子を示す説明図（その１）である。
【図２６】部分変換の様子を示す説明図（その２）である。
【符号の説明】
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  キーボード制御部
６  ディスプレイ制御部
７  ディスプレイ装置
８  ディスク制御部
９  外部記憶装置
１０  プリンタ制御部
１１  プリンタ装置
１２  システムバス
【図１】
0003560310.tif 000002
【図２】
0003560310.tif 000003
【図３】
0003560310.tif 000004
【図４】
0003560310.tif 000005
【図５】
0003560310.tif 000006
【図６】
0003560310.tif 000007
【図７】
0003560310.tif 000008
【図８】
0003560310.tif 000009
【図９】
0003560310.tif 000010
【図１０】
0003560310.tif 000011
【図１１】
0003560310.tif 000012
【図１２】
0003560310.tif 000013
【図１３】
0003560310.tif 000014
【図１４】
0003560310.tif 000015
【図１５】
0003560310.tif 000016
【図１６】
0003560310.tif 000017
【図１７】
0003560310.tif 000018
【図１８】
0003560310.tif 000019
【図１９】
0003560310.tif 000020
【図２０】
0003560310.tif 000021
【図２１】
0003560310.tif 000022
【図２２】
0003560310.tif 000023
【図２３】
0003560310.tif 000024
【図２４】
0003560310.tif 000025
【図２５】
0003560310.tif 000026
【図２６】
0003560310.tif 000027