(57)【特許請求の範囲】
【請求項１】
複数の配置可能点を一意に識別する識別子と各配置可能点の２次元平面上の位置とを対応づけて保持する配置可能点保持手段と、
前記配置可能点の識別子と要素の色を表す情報を含む要素の各属性情報を位置の属性として保持する要素保持手段と、
前記配置可能点の２次元平面上での位置を決定する位置規則を保持する位置規則保持手段と、
前記位置規則を選択する位置規則選択手段と、
選択された位置規則に基づいて前記配置可能点保持手段に保持された各配置可能点の２次元平面上での位置を変更する配置変更手段と、
前記配置変更手段により変更された後の配置可能点の位置関係に基づいて、各配置可能点について、それぞれ隣接する配置可能点の２次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定して前記要素保持手段に保持する配色変更手段と、
前記要素保持手段に保持された情報に基づいて要素の画像を配置可能点に配置した画像を生成する画像生成手段と
を有することを特徴とする作図装置。
【請求項２】
複数の配置可能点を一意に識別する識別子と各配置可能点の２次元平面上の位置とを対応づけて保持する配置可能点保持手段と、
前記配置可能点の識別子と要素の色を表す情報を含む要素の各属性情報を位置の属性として保持する要素保持手段と、
前記配置可能点の２次元平面上での位置を決定する位置規則を保持する位置規則保持手段と、
前記位置規則を選択する位置規則選択手段と、
選択された位置規則に基づいて前記配置可能点保持手段に保持された各配置可能点の２次元平面上での位置を変更する配置変更手段と、
前記配置変更手段により変更された後の配置可能点の位置関係に基づいて、各配置可能点について、任意に指定した配置可能点の２次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定して前記要素保持手段に保持する配色変更手段と、
前記要素保持手段に保持された情報に基づいて要素の画像を配置可能点に配置した画像を生成する画像生成手段と
を有することを特徴とする作図装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、図形を扱うことのできるワードプロセッサなどにおいて、対話的操作により電子的に作図を行う作図装置に関するものである。
【０００２】
【従来の技術】
近年、簡単な作図機能を含むワードプロセッサなどにおいて、グラフィカルユーザインタフェースを利用して、エンドユーザが電子的に作図をすることが一般的になっている。
【０００３】
また、カラースキャナやカラープリンタを含むコンピュータシステムの普及により、グラフィックデザイナだけではなく、一般のエンドユーザでもカラーの図を簡単に作成できる環境ができつつある。カラーの図は、文書中に用いると、白黒の図に較べて訴求力が高いので、顧客への提案書やプレゼンテーションのために、美しく分かりやすい図を容易に作成したいというニーズは高い。
【０００４】
美しく分かりやすい図を作成するには、例えば、「同心円状に図の要素を並べて、広がっていく印象を与える」ように図を構成することや「右上がりにして、発展しつづける印象を与える」ように図を構成することなど、目的に応じて構図を選択し、その構図に従って作図をする必要がある。構図はその図で最も主張したいことに合わせる必要があるので、作図の際にさまざまな構図で要素の配置を試行できることが望まれる。
【０００５】
特に、一般ユーザが最適な構図を選択するため、出来上がりイメージを図の作成の前に想像することは難しいので、実際に変更して確かめながら作図できることが望まれる。また、一度、作成した図を簡単な操作により、その構図を変えることができれば、相手に合わせてその場にふさわしい表現にするなど、図の再利用性を高めることができる。
【０００６】
しかし、従来のワードプロセッサやグラフィックツールのソフトウエアなど、対話的操作による電子的な作図方法に関する従来の技術では、構図を作成することや、また、構図を変えてみることは非常に手間がかかるものであった。
【０００７】
つまり、従来の技術において、ユーザが作図作業を行う場合、ユーザが直線や多角形や楕円形などの図形の要素を生成し、これを２次元平面上に配置するという操作を繰り返すことで行われる。複数の図形の要素の位置を揃えて作図作業を行う場合は、例えば、図形の要素の配置に制約をかけて作図作業を行う。これは、グリッドやガイドと呼ばれる予め設定された規制位置（格子点，直線）によって、図の要素が取りうる位置を規制して配置を行う方法である。
【０００８】
グリッド方式は、２次元平面上に等間隔の直交する格子を引いておき、図の要素の位置を格子の点に制約するものであり、また、ガイド方式は、２次元平面上にユーザがガイドとなる線を引いておき、図の要素の位置がその線上に制約されるようにするものである。
【０００９】
構図を作成するために、このようなグリッド方式またはガイド方式を利用する場合は、例えば、グリッド方式では直交する格子を表示し、位置規制を行うだけなので、構図を直接的に表現するものではない。このため、ユーザは頭の中に描いた構図を格子点に写像して、全体の格子点から描画する構図で使う格子点を選んで記憶する必要がある。したがって、構図を変える場合は、頭の中に描いた新しい構図に従って使える格子点を選び直し、今までに生成した図の要素の位置を選び直した格子点に移動させるという作業を、ユーザ自身が自らの操作で行わなければならない。
【００１０】
一方、ガイド方式によると、ユーザが任意にガイドとなる線を引けるので、構図を直接的に表現できるが、これは一つの構図だけを表現したものとなる。しかし、構図を変えるには、新しい構図に従って線を引き直し、今までに生成した図の要素の位置をこの線上に移動させる作業をユーザが行わなければならない。
【００１１】
このような煩雑な作業を必要としないようにするための提案もなされている。例えば、特開平６−２６６３２８号公報に記載の提案によると、位置を入力し、その位置を入力点として扱うシステムにおいて、所定の補正規則を複数個備え、利用者が入力する位置データを、利用者が指定した補正規則により補正して入力点とすることができる。また、そこで用いた規則を識別する情報を付加して、その入力点を記憶しておくことにより、補正規則を変更すると、変更による新たな補正規則に従って入力点を一括して変化させることができる。すなわち、例えば、グリッドを利用して作成した入力点を構成点として持つ図形を、再び、グリッドを用いて変更しようとする場合、グリッドの指定を変えるだけで、補正規則に従って、入力点の位置データを自動的に変更できる。
【００１２】
【発明が解決しようとする課題】
上記の技術を用いれば、補正規則に従って入力点を一括して変化させることができるので、複数の図の要素を２次元平面に配置して構図を決める場合に適用できる。例えば、構図に関する規則を用意し、その中から所望の規則を選択することにより様々な構図を簡単に得ることが可能となる。しかしながら、ここでの技術は、点の配置に関するものであるので、具体的には、広がりや色を持つ図の要素を対象とする高度な構図の作成に関しては、有効に利用することができないものであった。
【００１３】
本発明は、上述した事情に鑑みてなされたものであり、本発明の目的は、ユーザが対話的操作により電子的に作図する際に、ユーザが容易に構図の設定や変更ができる作図装置を提供することにある。
【００１４】
【課題を解決するための手段】
上記の目的を達成するため、本発明の作図装置は、基本的な構成として、複数の配置可能点を一意に識別する識別子と各配置可能点の２次元平面上の位置とを対応づけて保持する配置可能点保持手段と、前記配置可能点の識別子と要素の色を表す情報を含む要素の各属性情報を位置の属性として保持する要素保持手段と、前記配置可能点の２次元平面上での位置を決定する位置規則を保持する位置規則保持手段と、前記位置規則を選択する位置規則選択手段と、選択された位置規則に基づいて前記配置可能点保持手段に保持された各配置可能点の２次元平面上での位置を変更する配置変更手段と、前記配置変更手段により変更された後の配置可能点の位置関係に基づいて要素の色を決定して前記要素保持手段に保持する配色変更手段と、前記要素保持手段に保持された情報に基づいて要素の画像を配置可能点に配置した画像を生成する画像生成手段とを備える。
【００１５】
すなわち、本発明による作図装置は、前記配色変更手段が、各配置可能点について、それぞれ隣接する配置可能点の２次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定することを特徴とする。
【００１６】
また、本発明による作図装置において、前記配色変更手段は、各配置可能点について、任意に指定した配置可能点の２次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定することを特徴とする。
【００１７】
このような特徴を有する本発明の作図装置においては、配置可能点保持手段が、複数の配置可能点を一意に識別する識別子と各配置可能点の２次元平面上の位置とを対応づけて保持し、要素保持手段が、前記配置可能点の識別子と要素の色を表す情報を含む要素の各属性情報を位置の属性として保持する。また、位置規則保持手段が、前記配置可能点の２次元平面上での位置を決定する位置規則を保持する。そして、位置規則選択手段により前記位置規則を選択すると、配置変更手段が、選択された位置規則に基づいて前記配置可能点保持手段に保持された各配置可能点の２次元平面上での位置を変更する。また、同時に、配色変更手段が、前記配置変更手段により変更された後の配置可能点の位置関係に基づいて要素の色を決定して前記要素保持手段に保持するので、画像生成手段が、前記要素保持手段に保持された情報に基づいて要素の画像を配置可能点に配置した画像を生成する。
【００１８】
また、この場合において、前記配色変更手段が、各配置可能点について、それぞれ隣接する配置可能点の２次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定し、または、前記配色変更手段が、各配置可能点について、任意に指定した配置可能点の２次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定する。
【００１９】
すなわち、配置可能点保持手段には、配置可能点の識別子と、それに対応する配置可能点の位置（例えば座標で表す）が保持され、要素保持手段が、図の要素の各種の属性情報を保持している。この属性情報としては、例えば、図の要素の位置，色，形状，方位などが保持される。図の要素の位置は、配置可能点の識別子として保持している。識別子により、配置可能点保持手段を探索することによって配置可能点の２次元平面上の位置を知る。位置規則保持手段は、配置可能点の位置の設定に関する複数の規則を保持している。
【００２０】
配置変更手段は、位置規則保持手段に保持された図の要素の配置設定に関する規則群から、位置規則選択手段により任意の規則をユーザが選択するので、その選択された規則に従った配置となるように、配置可能点保持手段に保持されている配置可能点の位置を変更する。その際に、配色変更手段は、配置可能点の位置関係に基づいて、図の要素の色を決定する。その決定した情報は要素保持手段に保持する。そして、画像生成手段が、要素保持手段に保持された情報を基づいて、画像を生成する。その画像においては、図の要素が前記識別子によって特定される２次元平面上の位置に描く。その際、要素の色は配色変更手段によって得られた色に従う。このようにして、作図を行うので、要素の配置関係に応じて要素の色を適切に変更した高度な構図が得られる。また、構図の設定や変更に対するユーザの負担を大幅に軽減することができる。
【００２１】
【発明の実施の形態】
以下、本発明を実施する場合の形態について、図面を参照して具体的に説明する。図１は、本発明の実施例の作図装置の全体の構成を示すブロック図である。図１において、１は要素データ保持部、２は要素データ変更部、３は要素雛型保持部、４は要素生成指示部、５は要素配置指示部、６は要素削除指示部、７は座標データ保持部、８は位置ルール保持部、９は位置ルール選択部、１０は座標データ変更部、１１は配色ルール保持部、１２は配色ルール選択部、１３は要素配色変更部、１４は画面表示部、１５は図印刷部、１６は処理制御部、１７はそれぞれの機能処理部を接続するバスである。
【００２２】
本実施例の作図装置は、図１に示すように、バス１７により、要素データ保持部１，要素データ変更部２，要素雛型保持部３，要素生成指示部４，要素配置指示部５，要素削除指示部６，座標データ保持部７，位置ルール保持部８，配色ルール選択部９，座標データ変更部１０，配色ルール保持部１１，配色ルール選択部１２，要素配色変更部１３，画面表示部１４，図印刷部１５，および処理制御部１６のそれぞれの機能処理部が接続されて、ここでの作図処理が行われる。
【００２３】
処理制御部１６は、ユーザからの指示を受け付け、システム全体の起動と終了の処理を行い、また、各々の機能処理部（１〜１５）の制御を行って、全体の処理の流れを統括する処理を行う。この場合に、ユーザからの指示を個別に受け付けて処理を行う各々の機能処理部（要素生成指示部４，要素配置指示部５，要素削除指示部６，配色ルール選択部９，配色ルール選択部１２）に対して、指示入力受け付けの時間を順次割り当て、時間が割り当てられた各々機能部において、ユーザからの入力があった場合に、その要求による処理が終了するまで他の機能処理部への時間割り当てを中断する。
【００２４】
図２は、本実施例の作図装置の全体の処理の制御を行う処理制御部の処理の流れを示すフローチャートである。図２を参照して、作図装置の全体の処理の制御の流れについて説明する。ここでの作図装置は、その処理を開始すると、まず、ステップ２１において、処理制御部１６で処理終了がユーザから指示されたか否かを判定する。処理終了がユーザから指示されていれば、処理を終了とする。処理終了が指示されていない場合、次に、ステップ２２に進み、要素生成指示部４で図の要素の生成がユーザから指示されたか否かを判定する。図の要素の生成がユーザから指示されている場合、ステップ２３に進み、新規の要素データの生成の処理を行い、次にステップ３２に進む。そして、ステップ３２において、処理の結果を表示画面に反映させるため、画面の再描画の処理を行う。次に、ステップ２１に戻り、ステップ２１からの処理を繰り返す。
【００２５】
また、ステップ２２の判定において、図の要素の生成がユーザから指示されていない場合は、ステップ２４に進み、要素削除指示部６で図の要素の削除がユーザから指示されたか否かを判定する。図の要素の削除がユーザから指示された場合、次のステップ２５において、指定された要素に対応する要素データの削除を行う。次に、ステップ３２に進み、処理の結果を表示画面に反映させるため、画面の再描画を行う。そして、ステップ２１に戻り、ステップ２１からの処理を繰り返す。また、ステップ２４の判定において、図の要素の削除がユーザから指示されていない場合には、ステップ２６に進む。
【００２６】
ステップ２６においては、要素配置指示部５で図の要素の配置変更がユーザから指示されたか否かを判定する。配置変更の指示がなされた場合、ステップ２７に進み、要素データの位置属性値を変更する処理を行う。次にステップ３２に進み、処理の結果を表示画面に反映させるため、画面の再描画を行う。そして、ステップ２１に戻り、ステップ２１からの処理を繰り返す。また、ステップ２６の判定処理において、配置変更の指示がなされていない場合には、次に、ステップ２８に進む。そして、ステップ２８において、位置ルール選択部９でルールが選択されたか否かを判定する。ルールが選択された場合、ステップ２９において、選択されたルールに基づいて要素データの変更処理を行う。次に、ステップ３２に進み、処理の結果を表示画面に反映させるため、画面の再描画を行い、そして、ステップ２１に戻り、ステップ２１からの処理を繰り返す。
【００２７】
また、ステップ２８の判定処理において、ルールの選択が判定されない場合には、ステップ３０に進み、ステップ３０において、配色ルール選択部１２でルールが選択されたか否かを判定し、ルールが選択された場合、次のステップ３１において、選択されたルールに基づいて要素データの配色の変更処理を行う。そして、次のステップ３２に進み、処理の結果を表示画面に反映させるため、画面の再描画を行う。そして、ステップ２１に戻り、ステップ２１からの処理を繰り返す。一方、ステップ３０の判定処理において、ルールの選択が判定されない場合には、ステップ３３に進み、図印刷部１５において図の印刷が指示されたか否かを判定する。図の印刷が指示された場合、次のステップ３４において、図の印刷の処理を行う。そして、ステップ２１に戻る。また、図の印刷が指示されない場合は、そのままステップ２１に戻り、これらの処理を繰り返し行う。
【００２８】
このようにして、処理制御部１６による処理の制御では、ユーザからの指示を受け付け、各々の機能処理部（１〜１５）の制御を行って、処理全体の流れを統括する処理を行う。この場合に各々処理ステップにおいて各機能処理部によりユーザからの指示を個別に受け付けて、そのぞれの機能処理部による処理を制御することを繰り返し行う。
【００２９】
次に、各々の機能処理部（１〜１５）による個々の処理について具体的に説明する。なお、ここでの説明の理解を容易とするため、一部については、箇条書スタイルで各々の機能処理部の動作およびその特徴について説明する。
【００３０】
（要素データ保持部１）
要素データ保持部１は、図の要素ごとに、その形状、色、および配置に関する情報を保持する。すなわち、図の要素に関する属性データを表形式で保持する。表形式で保持する属性データは、属性と属性値の組を対応づけたものであり、各々の図の要素毎に一つの表の属性データが作られる。属性情報のデータとして、ここでは「位置」属性，「色」属性，「形状」属性，「テキスト」属性，および「表示順序」属性のデータが設定される。
【００３１】
「位置」属性は、図の要素の２次元平面上の位置を示すデータである。属性値として、後述するように、配置可能座標点を特定する座標ＩＤをとる。「色」属性は、図の要素の色を示すデータである。属性値として、国際照明学会が定めたスケールのＬ＊ａ＊ｂ＊でその要素の色を表現した値をとる。「形状」属性は、図の要素の形状を示すデータである。属性値として、ページ記述言語のＰｏｓｔＳｃｒｉｐｔでその要素の形状を記述した値をとる。「テキスト」属性は、図の要素が何を表わすかを示すテキストのデータである。図の要素の内側に描画される文字列データとなる。属性値として、ページ記述言語のＰｏｓｔＳｃｒｉｐｔでそのテキストの形状を記述した値をとる。また、「表示順序」属性は、図の要素が何番目に表示されるかを示すデータである。ここでは、描画は上書きで行われるので、要素が重なった場合は表示順序が後のものが手前に見えるように表示される。属性値として、一意の正数値をとる。
【００３２】
（要素データ変更部２）
要素データ変更部２は、他の機能処理部からのデータ変更の要求の命令に応じて、要素データ保持部１が保持する図の要素データの情報（属性情報）を変更する処理を行う。また、変更する命令を受けて、その変更処理を行った後、画面書き換え命令を画面表示部１４へ送る処理を行う。
【００３３】
要素データ変更部２において、図の要素の生成、すなわち、新たに、図の要素に対応する属性と属性値との対応表の生成は、要素生成指示部４から送られる命令によって行われる。要素データ変更部２は、この命令を受けると、まず新たな一つの表を要素データ保持部１の中に作り、次に、その表の各属性の属性値の値を代入する。例えば、「色」属性，「形状」属性，および「テキスト」属性の属性値は、その命令の引数として渡されるので、渡された値を属性値として表に代入する。「位置」属性の属性値は、デフォルトとして座標点｛１，１｝の座標ＩＤを属性値として代入する。「表示順序」属性は、ここでの要素データ変更部２（要素データ保持部１）に保持された表（図の要素データ）の当該属性値として、その時点において最も大きな値を調べ、その値に“１”を加えた正数値を新しい要素の属性「表示順序」の属性値とする。
【００３４】
図の要素の配置の変更処理（ステップ２７）は、要素配置指示部５から送られる命令によって行われる。まず、配置の変更対象となる要素を特定する。要素の特定は、その命令の引数として渡される移動元の座標ＩＤ（座標点）を「位置」属性の値として持つもののうち、「表示順序」属性の値が最も大きい要素を該当するものとして特定する。要素が特定できれば、次に、その要素の「位置」属性の値を、引き数として渡された移動先の座標ＩＤで置き換える。ここでの引数としてＰｏｓｔＳｃｒｉｐｔプログラムが渡された場合は、これを「テキスト」属性の値として、図の要素データのその表に代入する。「表示順序」属性は、この機能処理部に保持された表の当該属性値として、その時点において最も大きな値を調べ、その値に“１”を加えた正数値を新しい要素の属性「表示順序」の属性値とする。
【００３５】
また、図の要素の削除処理（ステップ２５）は、図の要素に対応する表の削除として、その処理が行われる。これは、要素削除指示部４から送られる命令によって行われ、削除される図の要素データは、その命令の引数として渡される座標ＩＤを「位置」属性の値として持つもののうち、「表示順序」属性の値が最も大きいものである。
【００３６】
（要素雛型保持部３）
要素雛型保持部３は、個々の図の要素データの雛型となる各々の要素の「色」属性と「形状」属性に関する値を保持している。例えば、「色」属性の属性値として、Ｌ＊ａ＊ｂ＊の値と、その色を表わす言葉（赤や青など）とを対応づけた組の表を持っており、また、「形状」属性の属性値として、形状を描画するＰｏｓｔＳｃｒｉｐｔプログラムと当該形状を表現する言葉（四角や楕円など）とを対応づけた組からなる表を持っている。
【００３７】
（要素生成指示部４）
要素生成指示部４は、ユーザからの指示を受けて、要素データ変更部２に対して命令を発行し、要素雛型保持部３に保持されている雛型の図の要素データを用いて、新たな図の要素データを生成し、生成した図の要素を要素データ変更部２を介して、要素データ保持部１に記憶させる一連の処理命令を発行する。その場合に、テキスト入力を受け付ける処理を行う。
【００３８】
要素生成指示部４で受け付けるユーザからの指示は、図の要素の「色」属性と「形状」属性に関しては、要素雛型保持部３が保持する雛型の図の要素データの表から、色と形状を示す言葉をそれぞれ選択することで行われる。このとき、ユーザがテキストを入力すると、そのテキストを新たに作った図の要素のテキストとすることができる。すなわち、その図の要素の内側に表示されるテキストとすることができる。
【００３９】
要素生成指示部４において、色と形状を示す言葉をそれぞれ選択する選択指示が行われた後、要素生成指示部４は、要素データ変更部２に対して新たな表を作成する命令を送る。その場合に送られる命令の引数として、次のデータの値が要素データ変更部２に渡される。
▲１▼：ユーザが選択した色を表わす言葉と対応づけられた表のＬ＊ａ＊ｂ＊の値（「色」属性の値）、
▲２▼：ユーザが選択した形状を表わす言葉と対応づけられた表のＰｏｓｔＳｃｒｉｐｔプログラム（「形状」属性の値）、
▲３▼：入力されたテキストができるだけ当該要素の「形状」属性のＰｏｓｔＳｃｒｉｐｔプログラムによる描画領域の領域の内側にはいるように、フォント／行数／行間隔が設定された入力テキストを描画するためのＰｏｓｔＳｃｒｉｐｔプログラム（「テキスト」属性の値）。
【００４０】
（要素配置指示部５）
要素配置指示部５は、ユーザの指示を受け付けて、ある座標の位置に配置されている図の要素を別の座標の位置に移動する処理を行うための命令を発行する。また、テキスト入力を受け付ける機能を持つ。ここでの要素配置のユーザの指示は、まず、移動元の座標点とする座標ＩＤを選択することで行われる。この座標に配置された図の要素のうち、最も手前に表示されているものが移動の対象となる。このときにも、テキストを入力すると、移動対象となる図の要素の「テキスト」属性の値として入力されたテキストを設定することができる。この後、移動先となる座標が選択される。これらの選択の指示が行われた後、要素配置指示部５は、要素データ変更部２に対して図の要素データの属性値を変更する命令を送る。その場合に送られる命令の引数として、次のものが要素データ変更部２に渡される。
▲１▼：はじめに選択した座標の座標ＩＤ（移動元を示す）、
▲２▼：あとで選択した座標の座標ＩＤ（移動先を示す）、
▲３▼：入力されたテキストができるだけ前記要素の「形状」属性のＰｏｓｔＳｃｒｉｐｔプログラムが表示上占める領域の内側にはいるように、フォント／行数／行間隔が設定された入力テキストを描画するためのＰｏｓｔＳｃｒｉｐｔプログラム（「テキスト」属性の値）。
【００４１】
（要素削除指示部６）
要素削除指示部６は、ユーザの指示を受け付けて、任意の座標に配置された図の要素を削除する処理を行うための命令を発行する。ユーザの指示は、座標を選択することで行われる。この座標に配置された図の要素のうち、最も手前に表示されているものが削除の対象となる。要素削除指示部６は、ユーザからの指示を受け付けた後、選択された座標ＩＤを引数として、削除命令を要素データ変更部２へ送る。
【００４２】
（座標データ保持部７）
座標データ保持部７は、図の要素に対して配置可能な２次元平面上の座標に関する情報を保持する。この実施例の作図装置においては、配置可能な座標の数は固定であり、全部で１６個とする。ある座標のデータは、座標ＩＤと当該座標の２次元上での位置を示す値とで構成される。座標ＩＤは座標を一意に識別するためのデータであり、この実施例では、例えば、｛１，１｝のように２元の正数値の組で表わす。
【００４３】
図３は、位置を示す属性値の概念を説明する図である。座標点（座標ＩＤ）の位置を示す値（属性値）は、他の座標点（座標ＩＤ）を測定対象として、この測定対象に対する方位と距離で表す。測定対象となる座標点は一点であり、これを座標ＩＤで表す。方位は、当該測定対象が自身（自己の座標ＩＤ）からみてどの方向にあるかにより示す。画面表示あるいは印刷時に上になる方向を０度として時計回りの角度で示す。距離は、印刷の単位であるポイントを単位とした非負正数値で示す。
【００４４】
具体例で説明すると、図３に示すように、例えば、座標ＩＤが｛１，２｝の座標点３６は、座標ＩＤが｛１，１｝である座標点３５を測定対象とし、その位置を示す値（属性値）３６ａとして、『観測対象の座標ＩＤ：｛１，１｝，方位：１３５，距離：１０２』のデータが保持される。同様にして、座標ＩＤが｛２，１｝の座標点３７は、同じく、座標ＩＤが｛１，１｝である座標点３５を測定対象とし、その位置を示す値（属性値）３７ａとして、『観測対象の座標ＩＤ：｛１，１｝，方位：２７０，距離：１４４』のデータが保持される。また、座標ＩＤが｛２，２｝の座標点３８については、座標ＩＤが｛２，１｝の座標点３７を観測対象として、その位置を示す値（属性値）３８ａとして、『観測対象の座標ＩＤ：｛２，１｝，方位：１８０，距離：７２』のデータが保持される。
【００４５】
（位置ルール保持部８）
位置ルール保持部８は、座標間隔の設定に関する規則の位置ルールを保持する。この実施例では、座標データ保持部７に保持された座標点のデータに対して、その方位と距離の設定に関する位置ルールを保持する。ここでの位置ルールは４種類が設けてある。それぞれの位置ルールは、Ｃ言語に似た文法を持つプログラムにより、逐次処理的な手順として記述されている。
【００４６】
位置ルールのルール１は、座標の配置を等間隔とし、全体として格子状の構図を形成するルールである。ルール１を次に示す。ルール１（ｒｕｌｅ＿１（ｄｉｓ＿ｖａｌ））の処理手順を実行すると、全ての座標で、隣の格子点との距離が引数「ｄｉｓ＿ｖａｌ」の値に設定される。
0003601175.tif 000002
【００４７】
図４は、上記の位置ルールのルール１の処理手順を示すフローチャートである。図４のフローチャートを参照し、ルール１による構図の形成処理について説明する。まず、ステップ４１において、変数ｉに“１”を代入する。次に、ステップ４２において、変数ｊに“１”を代入する。そして、ステップ４３において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す属性値のうち「距離」の値が引数「ｄｉｓ＿ｖａｌ」の値に一致するように、座標データ保持部の座標データを更新する。
【００４８】
次に、ステップ４４に進み、変数ｊが“１”であるか否かを判定する。この判定において、変数ｊが“１”である場合、次に、ステップ４５において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す属性値のうち「方位」の値を“２７０”とするように、座標データ保持部の座標データを更新し、ステップ４７に進む。一方、ステップ４４の判定において、変数ｊが“１”でない場合は、ステップ４６に進んで、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す属性値のうち「方位」の値を“１８０”とし、更に「測定対象」の値を｛ｉ，（ｊ−１）｝とするように、座標データ保持部の座標データを更新する。そして、ステップ５０に進む。
【００４９】
続いて、ステップ４７において、変数ｉが“１”であるか否かを判定する。この判定において、変数ｉが“１”である場合は、次に、ステップ４８に進み、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す属性値のうち「測定対象」の値が“ｎｉｌ”値となるように、座標データ保持部の座標データを更新する。そして、ステップ５０に進む。一方、ステップ４７の判定において、変数ｉが“１”でない場合には、ステップ４９に進んで、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す属性値のうち「測定対象」の値を｛（ｉ−１），１｝になるように、座標データ保持部の座標データを更新する。次に、ステップ５０に進む。
【００５０】
ステップ５０においては、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じであるか否かを判定する。この判定の結果、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じでない場合には、ステップ５１に進み、変数ｊをインクリメントして、ステップ４３に戻る。そして、ステップ４３からの処理を続ける。一方、ステップ５０の判定において、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じである場合に、次に、ステップ５２に進み、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じであるか否かを判定する。この判定の結果、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じでない場合には、ステップ５３に進み、変数ｉをインクリメントして、ステップ４２に戻る。そして、ステップ４２からの処理を続行する。一方、ステップ５２の判定において、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じであることが判定できると、ここでの処理を終了する。このようにして、位置ルールのルール１により、座標の配置を等間隔とし、全体として格子状の構図を形成する。
【００５１】
位置ルールのルール２は、座標の配置を等比的に広げて、全体として末広がりの構図を形成するルールである。ルール２の内容を次に示す。このルール２（ｒｕｌｅ＿２  （ｄｉｓ＿ｖａｌ，  ｒａｔｉｏ））の処理手順を実行すると、間隔の初期値を引数「ｄｉｓ＿ｖａｌ」の値として、引数「ｒａｔｉｏ」の比率で間隔が広がっていくように、格子点の間隔が設定される。
0003601175.tif 000003
【００５２】
図５は、上記の位置ルールのルール２の処理手順を示すフローチャートである。図５のフローチャートを参照して、ルール２の位置規制による構図の形成処理について説明する。まず、ステップ６１において、変数ｉに“１”を代入し、引数「ｄｉｓ＿ｖａｌ」の値を変数「ｃｕｒｒｅｎｔ＿ｄｉｓｔａｎｃｅ」に代入する。次に、ステップ６２において、変数ｊに“１”を代入する。そして、次に、ステップ６３において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値（属性値）のうちの「距離」の値が変数「ｃｕｒｒｅｎｔ＿ｄｉｓｔａｎｃｅ」の値に一致するように、座標データ保持部の座標データを更新する。
【００５３】
次に、ステップ６４に進み、変数ｊが“１”であるか否かを判定する。この判定において、変数ｊが“１”である場合、次に、ステップ６５において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「方位」の値を“２７０”とするように、座標データ保持部の座標データを更新し、ステップ６７に進む。一方、ステップ６４の判定において、変数ｊが“１”でない場合には、ステップ６６に進んで、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「方位」の値を“１８０”とし、更に「測定対象」の値を｛ｉ，（ｊ−１）｝とするように、座標データ保持部の座標データを更新する。そして、ステップ７０に進む。
【００５４】
続いて、ステップ６７においては、変数ｉが“１”であるか否かを判定する。この判定において、変数ｉが“１”である場合は、次のステップ６８に進み、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「測定対象」の値が“ｎｉｌ”値となるように、座標データ保持部の座標データを更新する。そして、ステップ７０に進む。一方、ステップ６７の判定において、変数ｉが“１”でない場合には、ステップ６９に進んで、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「測定対象」の値が｛（ｉ−１），１｝になるように、座標データ保持部の座標データを更新する。そして、次に、ステップ７０に進む。
【００５５】
ステップ７０においては、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じであるか否かを判定する。この判定の結果、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じでない場合には、ステップ７１に進み、変数ｊをインクリメントして、ステップ６３に戻る。そして、ステップ６３からの処理を続ける。一方、ステップ７０の判定において、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じである場合に、次に、ステップ７２に進み、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じであるか否かを判定する。この判定の結果、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じでない場合には、ステップ７３に進み、変数ｉをインクリメントし、更に、現在の値に、引数「ｒａｔｉｏ」の値を掛算した結果を変数「ｃｕｒｒｅｎｔ＿ｄｉｓｔａｎｃｅ」に代入して、ステップ６２に戻る。そして、ステップ６２からの処理を続行する。一方、ステップ７２の判定処理において、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じであることが判定できると、ここでの処理を終了する。このようにして、位置ルールのルール２によると、座標の配置を等比的に広げて、全体として末広がりの構図を形成することができる。
【００５６】
位置ルールのルール３は、座標の配置を、ある任意の点を中心として同心円状に並べるルールである。ルール３の内容を次に示す。ルール３（ｒｕｌｅ＿３  （ｃｅｎｔｅｒ＿ｐｏｉｎｔ，  ｄｉｓ＿ｖａｌ））の処理手順を実行すると、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」で指示される座標点を中心点として、引数「ｄｉｓ＿ｖａｌ」の値を半径差とする同心円に、格子点が配置されるようになる。
0003601175.tif 000004
0003601175.tif 000005
【００５７】
図６，図７，図８，および図９は、上記のルール３の処理手順を示すフローチャートである。図６〜図９のフローチャートを参照し、ルール３による構図形成処理について説明する。まず、図６を参照する。処理を開始すると、ステップ８１において、システム定義関数「ｒｅｓｅｔ＿ｒｅｆｅｒｅｎｃｅ」を、引数を変数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の値として実行し、座標データ保持部の座標データの位置を示す値を更新する。次に、ステップ８２において、座標ＩＤの第２元の値が変数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値に等しい配置可能座標に対して、その位置を示す値のうち「距離」の値が“０”となるように、座標データ保持部の座標データを更新する。
【００５８】
次に、ステップ８３において、座標ＩＤの第２元の値が変数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値と異なる配置可能座標に対して、その位置を示す値のうち「距離」の値が引数「ｄｉｓ＿ｖａｌ」の値に一致するように、座標データ保持部の座標データを更新する。
【００５９】
そして、ステップ８４の処理において、座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」を中心とする同心円の当該座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」より右半分と左半分を各々何分割するかを決め、決定した右半分の分割数を変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」に代入し、決定した左半分の分割数を変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」に代入する。
【００６０】
すなわち、図７に示すサブルーチンのフローチャートの処理フローに示すように、この処理では、ステップ９１において、まず、「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値は“１”より大きく、かつ“ＹＰＯＩＮＴＭＡＸ”未満である第１条件を満すか否かを判定する。「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値が、この第１条件を満す場合には、ステップ９２において、「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値をＮとして、次の式を計算し、
ｒｉｇｈｔ＿ｄｉｖｉｄｅ＝（“ＸＰＯＩＮＴＭＡＸ”−Ｎ）×２＋１
ｌｅｆｔ＿ｄｉｖｉｄｅ＝Ｎ×２−１
それぞれの値を、変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」および変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」にそれぞれ代入する。そして、リターンする。
【００６１】
また、ステップ９１の判定において、「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値が、前記第１条件を満さない場合、ステップ９３に進み、「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値は、（“ＹＰＯＩＮＴＭＡＸ”÷２）より大きい第２条件を満たすか否かを判定する。「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が、第２条件を満たす場合、ステップ９４において、「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値をＮとして、次の式を計算し、
ｒｉｇｈｔ＿ｄｉｖｉｄｅ＝（“ＸＰＯＩＮＴＭＡＸ”−Ｎ）×２−１
ｌｅｆｔ＿ｄｉｖｉｄｅ＝Ｎ−１
それぞれの値を、変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」および変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」にそれぞれ代入する。そして、リターンする。
【００６２】
一方、ステップ９３の判定において、「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が、第２条件を満さない場合には、ステップ９５において、「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値をＮとして、次の式を計算し、
ｒｉｇｈｔ＿ｄｉｖｉｄｅ＝“ＸＰＯＩＮＴＭＡＸ”−Ｎ
ｌｅｆｔ＿ｄｉｖｉｄｅ＝Ｎ
それぞれの値を、変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」および変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」にそれぞれ代入する。そして、リターンする。
【００６３】
次に、ステップ８５（図６）において、変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」が“１”より大きいか否かを判定する。変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」が“１”より大きくない場合は、そのまま、ステップ８７に進むが、変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」が“１”より大きい場合には、次のステップ８６の処理を行う。
【００６４】
ステップ８６の処理では、同心円の右半分を変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」の数で分割した時の分割線上と、同心円との交点に配置可能座標が位置するように、座標データ保持部の座標データを更新する。この処理については、図８に示す処理フローを参照して後述する。そして、ステップ８７に進む。
【００６５】
次に、ステップ８７において、変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」が“１”より大きいか否かを判定する。変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」が“１”より大きくない場合には、そのまま処理を終了する。変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」が“１”より大きい場合には、次のステップ８８の処理を行う。
【００６６】
ステップ８８の処理では、同心円の左半分を変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」の数で分割した時の分割線上と、同心円との交点に配置可能座標が位置するように、座標データ保持部の座標データを更新する。この処理については、図９に示す処理フローを参照して後述する。そして、ここでの処理を終了する。このようにして、位置ルールのルール３によると、座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」を中心として座標点（配置可能座標）の配置が同心円状に並べられる。
【００６７】
次に、図８を参照して、同心円の右半分を変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」の数で分割した時の分割線上と、同心円との交点に配置可能座標を位置させるようにする処理について説明する。この処理を開始すると、まず、ステップ１０１において、先の処理（ステップ８４）により得られた変数「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」の値を用いて、変数「ｄｅｖｉｄｅ＿ａｎｇｌｅ」に（１８０÷「ｒｉｇｈｔ＿ｄｉｖｉｄｅ」）を計算して代入する。次にステップ１０２において、変数「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」に変数「ｄｉｖｉｄｅ＿ａｎｇｌｅ」の値を代入する。次に、ステップ１０３において、引数の座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値に“１”を加えた値を、変数ｉに代入する。そして、ステップ１０４において、変数ｉが“ＸＰＯＩＴＭＡＸ”より大きいか否かを判定する。変数ｉが“ＸＰＯＩＴＭＡＸ”より大きい場合は、そのまま、リターンとする。
【００６８】
一方、ステップ１０４の判定処理において、変数ｉが“ＸＰＯＩＴＭＡＸ”より大きくない場合は、次のステップ１０５において、引数の座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値に“１”を加えた値を、変数ｊに代入する。そして、ステップ１０６において、変数ｊが“ＹＰＯＩＴＭＡＸ”より大きいか否かを判定する。変数ｊが“ＹＰＯＩＴＭＡＸ”より大きくない場合は、次に、ステップ１０７において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」の値に「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」の値を加算した値となるように、座標データ保持部の座標データを更新する。そして、次のステップ１０８において、変数ｊをインクリメントして、ステップ１０６に戻り、ステップ１０６からの処理を繰り返す。
【００６９】
一方、ステップ１０６の判定において、変数ｊが“ＹＰＯＩＴＭＡＸ”より大きい場合は、ステップ１０９に進み、変数ｊに“１”を代入してリセットし、次に、ステップ１１０において、変数ｊの値は、引数の座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値に一致するか否かを判定する。一致しない場合には、次のステップ１１１において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」の値から「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」の値を減算した値となるように、座標データ保持部の座標データを更新する。そして、次のステップ１１２において、変数ｊをインクリメントして、ステップ１１０に戻り、ステップ１１０からの処理を繰り返す。
【００７０】
一方、ステップ１１０の判定において、変数ｊの値は、引数の座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値に一致する場合は、次のステップ１１３に進み、ステップ１１３において、変数「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」の値に、変数「ｄｉｖｉｄｅ＿ａｎｇｌｅ」の値を加算した結果の値を変数「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」に代入する。そして、次のステップ１１４において、変数ｉをインクリメントして、ステップ１０４に戻り、ステップ１０４からの処理を繰り返す。そして、ステップ１０４において、変数ｉが“ＸＰＯＩＴＭＡＸ”より大きいことが判定できると、リターンとする。
【００７１】
次に、図９を参照して、同心円の左半分を変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」の数で分割した時の分割線上と、同心円との交点に配置可能座標を位置させるようにする処理について説明する。この処理を開始すると、まず、ステップ１２１において、先の処理（ステップ８４）に得られた変数「ｌｅｆｔ＿ｄｉｖｉｄｅ」の値を用いて、変数「ｄｅｖｉｄｅ＿ａｎｇｌｅ」に（１８０÷「ｌｅｆｔ＿ｄｉｖｉｄｅ」）を計算して代入する。
【００７２】
次に、ステップ１２２において変数「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」に変数「ｄｉｖｉｄｅ＿ａｎｇｌｅ」の値を代入する。次に、ステップ１２３において、引数の座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値から“１”を引いた値を、変数ｉに代入する。そして、次のステップ１２４において、変数ｉが“１”より小さいか否かを判定する。この判定により、変数ｉが“１”より小さい場合は、そのまま、リターンとする。
【００７３】
一方、ステップ１２４の判定処理において、変数ｉが“１”より小さくない場合は、次のステップ１２５において、引数の座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値に“１”を加えた値を、変数ｊに代入する。そして、次のステップ１２６において、変数ｊが“ＹＰＯＩＴＭＡＸ”より大きいか否かを判定する。変数ｊが“ＹＰＯＩＴＭＡＸ”より大きくない場合は、次のステップ１２７において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」の値から「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」の値を減算した値となるように、座標データ保持部の座標データを更新する。そして、次のステップ１２８において、変数ｊをインクリメントして、ステップ１２６に戻り、ステップ１２６からの処理を繰り返す。
【００７４】
一方、ステップ１２６の判定において、変数ｊが“ＹＰＯＩＴＭＡＸ”より大きい場合は、ステップ１２９に進み、変数ｊに“１”を代入してリセットし、次に、ステップ１３０において、変数ｊの値は、引数の座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値に一致するか否かを判定する。一致しない場合には、次のステップ１３１において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」の値に「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」の値を加算した値となるように、座標データ保持部の座標データを更新する。そして、次のステップ１３２において、変数ｊをインクリメントして、ステップ１３０に戻り、ステップ１３０からの処理を繰り返す。
【００７５】
一方、ステップ１３０の判定において、変数ｊの値は、引数の座標点「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値に一致する場合は、次に、ステップ１３３に進み、ステップ１３３において、変数「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」の値に、変数「ｄｉｖｉｄｅ＿ａｎｇｌｅ」の値を加算した結果の値を変数「ｃｕｒｒｅｎｔ＿ａｎｇｌｅ」に代入する。そして、次のステップ１３４において、変数ｉをデクリメントして、ステップ１２４に戻り、ステップ１２４からの処理を繰り返す。そして、ステップ１２４において、変数ｉが“１”より小さいことが判定できると、リターンとする。
【００７６】
次に、位置ルールのルール４について説明する。位置ルールのルール４は、ある任意の点を中心に、任意の角度だけ全体の構図を回転させるルールである。ルール４の内容を次に示す。ルール４（ｒｕｌｅ＿４（ｃｅｎｔｅｒ＿ｐｏｉｎｔ，  ｐｌｕｓ＿ａｎｇｌｅ））の処理手順を実行すると、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の座標点を回転の中心点として、引数「ｐｌｕｓ＿ａｎｇｌｅ」の値だけ時計方向にすべての座標点を回転させる。
0003601175.tif 000006
【００７７】
図１０は、上記のルール４の処理手順を示すフローチャートである。図１０のフローチャートを参照し、ルール４による構図の形成処理について説明する。処理を開始すると、まず、ステップ１４１において、システム定義関数「ｒｅｓｅｔ＿ｒｅｆｅｒｅｎｃｅ」を、引数を「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の値として実行し、座標データ保持部の座標データの位置を示す値を更新する。次に、ステップ１４２において、変数ｉに“１”を代入し、次のステップ１４３において、変数ｊに“１”を代入する。
【００７８】
次に、ステップ１４４において、座標ＩＤが｛ｉ，ｊ｝の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」に値に引数「ｐｌｕｓ＿ａｎｇｌｅ」の値を加算した値となるように、座標データ保持部の座標データを更新する。次に、ステップ１４５において、変数ｊが“ＹＰＯＩＴＭＡＸ”と等しいか否かを判定する。変数ｊが“ＹＰＯＩＴＭＡＸ”と等しくない場合は、次に、ステップ１４６に進み、変数ｊをインクリメントする。そして、ステップ１４４に戻り、ステップ１４４からの処理を繰り返す。
【００７９】
一方、ステップ１４５の判定において、変数ｊが“ＹＰＯＩＴＭＡＸ”と等しい場合は、ステップ１４７に進み、変数ｉが“ＸＰＯＩＴＭＡＸ”と等しいか否かを判定する。変数ｉが“ＸＰＯＩＴＭＡＸ”と等しくない場合は、次のステップ１４８に進み、変数ｉをインクリメントする。そして、ステップ１４３に戻って、ステップ１４３からの処理を繰り返し行う。また、ステップ１４７の判定において、変数ｉが“ＸＰＯＩＴＭＡＸ”と等しいと判定された場合は、ここでの処理を終了する。
【００８０】
なお、これらの位置ルールのルール１〜ルール４の記述において、関数「ｐｏｉｎｔ＿ｄａｔａ（｛ｉ，ｊ｝）」はシステム定義の関数であり、その処理の機能は、座標ＩＤが｛ｉ，ｊ｝の座標データへアクセスするためのポインタを返すものである。このシステム定義の関数を用いることにより、ｐ−＞ｐｏｓｉｔｉｏｎ−＞ａｎｇｌｅのように、座標データの各属性値を参照し、更に代入することができる。また、ここでの“ＸＰＯＩＮＴＭＡＸ”，“ＹＰＯＩＮＴＭＡＸ”は、配置可能座標の第１元、第２元の最大数を示すマクロである。この実施例では値は両方とも４である。
【００８１】
また、関数「ｒｅｓｅｔ＿ｒｅｆｅｒｅｎｃｅ（｛ｉ，ｊ｝）」は、位置設定の基準点となる座標の座標ＩＤを｛ｉ，ｊ｝とし、この座標から測定対象のつながりをツリー状に展開するシステム定義の関数である。測定対象の変更に従って、距離と方位は、座標の配置がこの関数が適用される前と変わらないように適切に設定される。座標ＩＤが｛ｌ，ｍ｝である「測定対象」の設定は、次のようになる。すなわち、
▲１▼：ｌ＜ｉかつｍ＝ｊのとき、「測定対象」は座標ＩＤを｛ｌ＋１，ｍ｝とし、
▲２▼：ｌ＞ｉかつｍ＝ｊのとき、「測定対象」は座標ＩＤを｛ｌ−１，ｍ｝とし、
▲３▼：ｍ＞ｊのとき、「測定対象」は座標ＩＤを｛ｌ，ｍ−１｝とし、
▲４▼：ｍ＜ｊのとき、「測定対象」は座標ＩＤを｛ｌ，ｍ＋１｝とする。
なお、前記のシステム定義の関数とマクロは、後述する座標データ変更部１０において定義されている。
【００８２】
（位置ルール選択部９）
位置ルール選択部９は、ユーザの指示を受け付け、ユーザの指示に従って座標の間隔設定に関するルールのうちから一つを選び、これにしたがって配置可能座標を変更する指示を送る。また、その場合に、選択した各々のルールにおける可変の値（前述のルールの引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の値など）について、その値を指定する。
【００８３】
この位置ルール選択部９の処理機能を用いて、ユーザが位置ルール保持部８に保持されたルールのうちから一つを選ぶ指示を行う。これにより、ルールを選択した後、その選択したルールが可変値の引数を持つものであれば、その実際の値をユーザが設定する。そして、位置ルール選択部９が、選択されたルールと、そのルールの参照値と設定値を引数として、次に説明する座標データ変更部１０に対して座標変更の命令を送る。
【００８４】
（座標データ変更部１０）
座標データ変更部１０は、位置ルール選択部９から送られた命令により、その命令の中の選択されたルールとそのルールの引数により、位置ルール保持部８に保持されたルールを用いて、座標データ保持部７の各座標点の座標データ（方位および距離）を変更する。また、座標データ変更部１０には、前述した“ＸＰＯＩＮＴＭＡＸ”や関数「ｒｅｓｅｔ＿ｒｅｆｅｒｅｎｃｅ（｛ｉ，ｊ｝）」のようなマクロやシステム定義の関数を保持しており、ルールを解釈する際にこれらを利用する。
【００８５】
座標データ変更部１０は、位置ルール選択部９から送られた命令に従って、座標データを変更した後、後述する画面表示部１４へ画面書き換え命令を送る。例えば、位置ルールのルール１が選択され、引数「ｄｉｓ＿ｖａｌ」の値が“１４４”に設定された場合、この選択および設定の条件により、座標データ変更部１０は、座標データ保持部７の各座標点の座標データ（方位および距離）を変更する。これにより、図１１に示すように、１６個の各座標点（座標ＩＤ）の配置が等間隔とされ、全体として格子状の構図が形成される。この場合、全ての座標で隣の格子点との距離が引数「ｄｉｓ＿ｖａｌ」の値の“１４４”に設定される。
【００８６】
また、例えば、位置ルールとしてルール２が選択され、引数「ｄｉｓ＿ｖａｌ」の値が“７２”に設定され、更に引数「ｒａｔｉｏ」の値が“１．２４”に設定された場合には、座標データ変更部１０が、前述の場合と同様に、この選択および引数の設定の条件によって、座標データ保持部７の各座標点の座標データ（方位および距離）を変更する。これにより、図１２に示すように、１６個の各座標点（座標ＩＤ）の配置が等比的に広げられて、全体として末広がりとなるように構図が形成される。この場合において、間隔の初期値は、引数「ｄｉｓ＿ｖａｌ」の値の“７２”に設定されており、引数「ｒａｔｉｏ」の値の“１．２４”の比率で間隔が広がっていくようにして、格子点の間隔が設定される。
【００８７】
また、例えば、位置ルールとしてルール３が選択され、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の座標点（座標ＩＤ）の値が｛３，１｝に設定され、更に引数「ｄｉｓ＿ｖａｌ」の値が“７２”に設定された場合には、座標データ変更部１０が、前述の場合と同様に、この選択および引数の設定の条件により、座標データ保持部７の各座標点の座標データ（方位および距離）を変更する。これにより、図１３に示すように、１６個の各座標点の配置として、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の値で示される座標ＩＤが｛３，１｝の点を中心として、引数「ｄｉｓ＿ｖａｌ」の値の“７２”が半径差（距離）となるように同心円状に並べられる。この配置の場合、中心点には座標ＩＤが｛３，１｝の座標点を含む、座標ＩＤが｛１，１｝〜｛４，１｝の４個の座標点が位置する。
【００８８】
また、同様に、位置ルールとしてルール３が選択され、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の座標点（座標ＩＤ）の値が｛３，２｝に設定され、更に、引数「ｄｉｓ＿ｖａｌ」の値として“１４４”が設定された場合には、図１４に示すように、１６個の各座標点（座標ＩＤ）の配置として、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の値で示される座標ＩＤが｛３，２｝の点を中心として、引数「ｄｉｓ＿ｖａｌ」の値の“１４４”が半径差となるように同心円状に並べられる。したがって、この場合の配置は、中心点には座標ＩＤが｛３，２｝の点を含む座標ＩＤが｛１，２｝〜｛４，２｝の４個の点が位置し、その下側の同心円上の半円の部分に、座標ＩＤが｛１，１｝〜｛４，１｝の４個の点が並べられる。その上側の同じ同心円上の部分には、座標ＩＤが｛１，３｝〜｛４，３｝の４個の点が並べられる。そして、座標ＩＤが｛１，４｝〜｛４，４｝の４個の点は、更にその上側の同心円上の部分に並べられる。つまり、半径差が“１４４”となる外側の同心円上の上側の半円部分に座標ＩＤが｛１，４｝〜｛４，４｝の４個の点が並べられる。
【００８９】
また、図１３に示すように配置された状態から、位置ルールとしてルール４が選択され、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の座標点の値が｛３，１｝に設定され、更に引数「ｐｌｕｓ＿ａｎｇｌｅ」の値が“３０”に設定された場合には、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の座標点（座標ＩＤ）を回転の中心として、引数「ｐｌｕｓ＿ａｎｇｌｅ」の値だけ時計方向にすべての座標点を回転させるので、図１５に示すように、１６個の各座標点（座標ＩＤ）の配置が、各々の座標点の位置関係が変わらずに回転する。
【００９０】
（配色ルール保持部１１）
次に、配色ルールについて説明する。配色ルール保持部１１は、ある座標点に配置された要素がどのような色を持つかを規定するルールを保持する。このルールは、後述する要素配色変更部１３が要素の色を変更する際に用いられる。ここでは、配色ルールは２種類が設けてある。それぞれの配色ルールは、前述した位置ルールと同様に、Ｃ言語に似た文法を持つプログラムにより、逐次処理的な手順として記述されている。
【００９１】
配色ルールのルール１１は、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」で与えられる座標点を中心として、座標点の座標ＩＤの第１元の値に合わせて、配置された要素の色の明度を段階的に大きくするか、あるいは小さくするルールである。その場合の明度の大小すなわち濃淡の比率は、引数「ｒａｔｉｏ」（正の実数値）で与えられる。この配色ルールでは、引数「ｒａｔｉｏ」が“１”未満の場合、座標ＩＤの第１元の値が引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」で与えられる座標点より小さい値の座標に配置された要素は濃くされ、大きい値の座標に配置された要素は薄くされる。また、引数「ｒａｔｉｏ」が“１”を越える場合には、座標ＩＤと要素の色の濃淡の関係は、引数「ｒａｔｉｏ」が“１”未満の場合と逆の関係となる。
0003601175.tif 000007
【００９２】
なお、ここで、関数「ｌｉｇｈｔｅｎ」は、要素配色変更部１３が要素データ変更部２を用いて、要素データの属性「色」の値を変えるためのシステム定義関数である。この関数が実行されると、要素データ保持部１に保持された図の要素に対応する表のうち、「位置」属性の値が、この関数の第１の引数の値に一致するものに対して、この関数の第２の引数の値を倍率として、要素を明るくする色を現在値の「色」属性の値から、（Ｌ＊×ｐｏｗｅｒ）を計算し、計算した値をＬ＊として「色」属性の値に代入する。
【００９３】
図１６は、配色ルールのルール１１の処理手順を示すフローチャートである。図１６のフローチャートを参照し、ルール１１による構図の要素に対する配色の処理について説明する。まず、ステップ１５１において、変数ｉに“１”を代入する。次に、ステップ１５２において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が、変数ｉに等しいか否かを判定する。引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が変数ｉに等しい場合は、ステップ１６０に進む。また、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が変数ｉに等しくない場合、更に、次のステップ１５３において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が、変数ｉより大きいか否かを判定する。
【００９４】
このステップ１５３の判定において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が変数ｉより大きい場合、次のステップ１５４において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値をＮとし、引数「ｒａｔｉｏ」の値を（Ｎ−ｉ）乗した値を変数「ｐｏｗｅｒ」に代入する。そして、ステップ１５６に進む。一方、ステップ１５３の判定において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が変数ｉより大きくない場合、ステップ１５５において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値をＮとして、引数「ｒａｔｉｏ」の逆数（１÷「ｒａｔｉｏ」）の値を（ｉ−Ｎ）乗した値を変数「ｐｏｗｅｒ」に代入する。そして、ステップ１５６に進む。
【００９５】
ステップ１５６においては、変数ｊに“１”を代入し、次のステップ１５７において、システム定義関数「ｌｉｇｈｔｅｎ」を、第１の引数を｛ｉ，ｊ｝とし、第２の引数を変数ｐｏｗｅｒの値として実行し、その結果のデータにより、要素データ保持部１の要素データの色に関する値を更新する。そして、ステップ１５８において、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じであるか否かを判定する。この判定の結果、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じでない場合には、ステップ１５９に進み、変数ｊをインクリメントして、ステップ１５７に戻る。そして、ステップ１５７からの処理を繰り返し行う。
【００９６】
また、ステップ１５８の判定において、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じである場合には、続いて、ステップ１６０において、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じであるか否かを判定する。この判定の結果、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じでない場合には、次のステップ１６１に進み、変数ｉをインクリメントして、ステップ１５２に戻る。そして、ステップ１５２からの処理を繰り返し行う。また、ステップ１６０の判定において、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じである場合には、ここでの処理を終了する。
【００９７】
配色ルールのルール１２は、ある格子点と引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」で与えられる格子点が画面に対する鉛直線（方位０または１８０に沿う直線）に対してなす角度から、その格子点に配置された要素の色相を変更するルールである。このルール１２においては、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」で与えられる格子点に配置された要素の色相は変更されない。
0003601175.tif 000008
【００９８】
ここで、関数「ｃａｌｃ＿ａｎｇｌｅ」は、第１の引数の格子点から第２の引数の格子点へ向かうベクトルが、方位０に対して何度の角度を成しているかを計算するシステム定義の関数である。このベクトルは、座標データ保持部７に保持された各座標点が持つ「観測対象」，「方位」および「距離」の位置の各属性値からベクトル演算により計算する。また、関数「ｈｕｅ」は、要素配色変更部１３が要素データ変更部２を用いて、要素データの属性「色」の値を変えるためのシステム定義の関数である。この関数が実行されると、要素データ保持部２に保持された図の要素に対応する表のうち、「位置」の属性の値が、この関数の第１の引数の値に一致するものに対して、この関数の第２の引数の値から三角関数のｔａｎ（ａｎｇｌｅ）を計算し、計算した値をｂ＊／ａ＊として「色」属性に代入する。
【００９９】
図１７は、配色ルールのルール１２の処理手順を示すフローチャートである。図１７のフローチャートを参照し、ルール１２による構図の要素に対する配色の処理について説明する。まず、ステップ１７１において、変数ｊに“１”を代入する。次に、ステップ１７２において、変数ｉに“１”を代入する。次に、ステップ１７３において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が、変数ｉに等しくないか否かを判定する。引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が変数ｉに等しい場合は、ステップ１７４において、更に、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値が、変数ｊに等しくないか否かを判定する。この判定において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値が変数ｊに等しい場合は、ステップ１７７に進む。
【０１００】
また、ステップ１７３の判定において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第１元の値が変数ｉに等しくない場合、および、ステップ１７４の判定において、引数「ｃｅｎｔｅｒ＿ｐｏｉｎｔ」の第２元の値が変数ｊに等しくない場合には、共にステップ１７５に進み、ステップ１７５において、システム定義関数「ｃａｌｃ＿ａｎｇｌｅ」を、第１の引数を｛ｉ，ｊ｝とし、第２の引数を｛ｉ，ｊ−１｝として実行し、その結果により得られた方位を示す値を変数「ａｎｇｌｅ」に代入する。次に、ステップ１７６において、システム定義関数「ｈｕｅ」を、第１の引数を｛ｉ，ｊ｝とし、第２の引数を変数「ａｎｇｌｅ」の値として実行し、その結果により得られたデータにより、要素データ保持部１の要素データの色に関する値を更新する。
【０１０１】
そして、ステップ１７７において、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じであるか否かを判定する。変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じでない場合には、ステップ１７８に進み、変数ｉをインクリメントして、ステップ１７３に戻る。そして、ステップ１７３からの処理を繰り返し行う。
【０１０２】
また、ステップ１７７の判定において、変数ｉの値が“ＸＰＯＩＮＴＭＡＸ”と同じである場合には、続いて、ステップ１７９において、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じであるか否かを判定する。この判定の結果、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じでない場合には、次のステップ１８０に進み、変数ｊをインクリメントして、ステップ１７２に戻る。そして、ステップ１７２からの処理を繰り返し行う。また、ステップ１７９の判定において、変数ｊの値が“ＹＰＯＩＮＴＭＡＸ”と同じである場合には、ここでの処理を終了する。
【０１０３】
（配色ルール選択部１２）
配色ルール選択部１２は、配色ルール保持部１１が保持しているルール（ルール１１，ルール１２）からユーザが所望の任意の配色ルールを選択する。その場合において、選択したルールが引数を指定するものである場合には、ユーザがその値を設定する。ユーザが所望するルールを選択し、その引数を設定した場合、配色ルール選択部１２が、後述する要素配色変更部１３に対して、選択された配色ルールの名前（例えば「ｒｕｌｅ＿１１」）と、引数がある場合はその値を渡し、要素の色の変更を行わせる。
【０１０４】
（要素配色変更部１３）
要素配色変更部１３は、配色ルール選択部１２から渡された配色ルールのルール名と引数から、配色ルール保持部１１に保持された該当の配色ルールを読み込んで解釈し、要素データ変更部２の要素データを用いて、各々の要素の色がルールに従ったものになるように要素の色を変更する。
【０１０５】
（画面表示部１４）
画面表示部１４は、画面書き換え命令により、座標データ保持部７に保持された座標点のデータおよび要素データ保持部１に保持された要素のデータを解釈して、ＲＧＢラスタ画像データに変換し、変換した画像データをディスプレイに表示する。また、図示しない基本オペレーティングシステム処理部の動作と連動して、ポインティングデバイスに連動するカーソルを画面上に表示し、前述した各種の指示／選択の際に座標点や図の要素を直接選択する操作を行うグラフィックユーザインタフェース機能を提供する。
【０１０６】
また、座標データ保持部７に保持された座標点のうち「方位」および「距離」の設定の基準点となる座標点、すなわち、位置を表す属性の「観測対象」の値が“ｎｉｌ”値である座標点が、ディスプレイの画面上でどこに位置するかを示す情報をユーザが設定し、記憶しておく機能を持つ。記憶された情報は、この画面表示部１４が図の要素の描画を行う際に、図の要素の画面上の位置を計算するために用いられる。つまり、座標データ保持部７に保持されたデータと共に用いられて、図の要素の画面上の位置を計算し、図の要素の描画を行う。なお、図の要素を描画する際は、「表示順序」属性の値の小さいものから順次上書きで描画する。ある要素が「テキスト」属性に値を持つ場合は、まず「色」属性と「形状」属性の値にしたがって描画し、その後で「テキスト」属性の値に基づいて、テキストを上書きで描画する。
【０１０７】
（図印刷部１５）
図印刷部１５は、ユーザの指示により、座標データ保持部７に保持された座標点のデータおよび要素データ保持部１に保持された要素のデータを解釈して、図示しない印刷装置のために、ＣＭＹＫラスタ画像データに変換し、変換した画像データを印刷装置に送出し、「紙」または「ＯＨＰシート」に印刷する。また、座標データ保持部７に保持された座標点のうち、「方位」および「距離設定」の基準点となる座標点、すなわち位置を表す属性の「観測対象」の値が“ｎｉｌ”値である座標点が、「紙」または「ＯＨＰシート」上でどこに位置するかを示す情報をユーザが設定する。この設定値は図印刷部１５に記憶される。記憶された情報は、図印刷部１５が図の要素の描画を行う際に、図の要素の「紙」または「ＯＨＰシート」上の位置を計算するため、座標データ保持部７に保持されたデータと共に用いられる。
【０１０８】
図の要素を描画する際は、画面表示部１４の動作と同様に、「表示順序」属性の値の小さいものから順次上書きで描画する。ある要素が「テキスト」属性に値を持つ場合は、まず、「色」属性と「形状」属性にしたがって描画し、その後で「テキスト」属性の値に基づいてテキストを上書きで描画する。
【０１０９】
（処理制御部１６）
処理制御部１６は、前述したように、各々の機能処理部の制御を行い、処理全体の流れを統括する処理を行う。また、ユーザの指示を受け付け、システム全体の起動と終了の処理を行う。この場合に、ユーザ指示が行える各々の処理機能部に対して、指示入力受け付けの時間を順次割り当て、時間が割り当てられた各機能部において、ユーザからの入力があった場合に、その要求による処理が終了するまで他の機能部への割り当てを中断する。
【０１１０】
このような各々の機能処理部から構成される本実施例の作図装置において、具体的に文書に用いる構図を形成する場合の処理例について説明する。図１８は、図の要素が均等間隔の格子の位置に配置されている構図の一例を示す図である。図１９は、図１８の構図に対して位置ルールのルール２および配色ルールのルール１１を適用して構図を変化させた例を示す図である。
【０１１１】
例えば、文書中において、横軸上に時間の経過を示す図の要素を配置し、縦軸上にそれぞれの時間経過の内容を示すように図の要素が配置される場合、普通の構図では、図１８に示すように、均等間隔の格子の位置に配置された１６個の図の要素から構成される。このように状態の構図から、例えば、位置ルールとして「ルール２」を選択し、その場合に設定する引数の値として、引数「ｄｉｓ＿ｖａｌ」の値として“８９”を設定し、引数「ｒａｔｉｏ」の値として“１．１２”を設定した場合、１６個の各々の図の要素の配置が等比的に広げられて、時間経過と共にその内容が共に末広がりとなるように、構図が形成される。この場合に、更に、配色ルールとして「ルール１１」を選択すると、同じく、時間経過と共に、図の要素の色が濃くなっていくように配色される。この結果、図１９に示すような配置と配色を得ることができる。
【０１１２】
このように、末広がりに合わせて要素の明度を変化させたグラデーションや、色相変化をつけて、図の特定の部分を目立たせるなど構図にあった配色を図の要素に与えることが、位置ルールおよび配色ルールのそれぞれのルールを選択するだけで可能となる。
【０１１３】
図２０は、図の要素が均等間隔の格子の位置に配置されている構図の別の例を示す図である。図２１は、図２０の構図に対して位置ルールのルール３および配色ルールのルール１２を適用して構図を変化させた例を示す図である。
【０１１４】
例えば、図２０に示すように、均等間隔の格子の位置に配置された１６個の図の要素から構成される状態から、図の要素を位置決めする位置ルールとして「ルール３」を選択し、その引数として、引数「center_point」の座標点の値として｛３，２｝を設定し、引数「dis_val」の値として“１４４”を設定し、更に、配色ルールとして「ルール１２」を選択し、そのルールで用いる引数として、引数「enter_point」の座標点の値が｛３，２｝に設定した場合は、図２１に示すように、図の要素が１つの図の要素を中心として、同心円上に配置された配置と配色を得ることができる。
【０１１５】
このように、表現する内容に応じて、つまり、その構図の中の概念などに合わせて、各々の図の要素を同心円状に配置する場合が適切な場合には、位置ルールとしてルール３を用いることにより、中心概念を表現することができ、その位置に合わせた要素の明度を変化させたグラデーションや、色相変化をつける配色、図の特定の部分を目立たせる配色など構図にあった配色を図の要素に与えることが、それぞれのルールを選択するだけで可能となる。
【０１１６】
なお、この実施例の作図装置においては、配置可能な座標点（座標ＩＤ）をあらかじめ有限個用意し、これらの座標点を２元の座標ＩＤで識別し、その２次元平面上での位置を規則に応じて設定し、各座標に配置された図の要素の２次元平面上での位置を決める方法をとっている。この方法では、各々座標点の座標ＩＤの隣接関係（｛ｉ，ｊ｝と｛ｉ＋１，ｊ｝など）や、同軸関係（｛ｉ，ｊ｝と｛ｉ，ｍ｝）を利用して配置関係および配色関係のそれぞれの規則を設定できるので、例えば、配置座標の座標ＩＤが近い図の要素は「構図にかかわらず、近くに並んで配置する」といったことが容易に可能となる。
【０１１７】
また、この実施例においては、間隔設定を他の格子点に対する方位と距離による相対的記述で表現している。このため、この方法で配置可能な座標点の並びの等比的設定や等差的設定が容易となる。なお、配置可能座標の２次元平面上での位置を示す方法として、絶対的位置指定や距離だけによる相対的指定など、別の方法をとっても、図の要素を構図に合わせて配置を変えることについては、この実施例と同様の効果を実現できることは明らかである。
【０１１８】
【発明の効果】
以上の説明から明らかなように、本発明の作図装置によれば、図の要素の配置関係に応じて要素の色を適切に変更した高度な構図が得られるとともに、構図の設定や変更に対するユーザの負担を大幅に軽減するという効果がある。
【図面の簡単な説明】
【図１】図１は本発明の一実施例の作図装置の全体の構成を示すブロック図
【図２】図２は本実施例の作図装置の全体の処理の制御を行う処理制御部の処理の流れを示すフローチャート、
【図３】図３は位置を示す属性値の概念を説明する図、
【図４】図４は位置ルールのルール１による処理手順を示すフローチャート、
【図５】図５は位置ルールのルール２による処理手順を示すフローチャート、
【図６】図６は位置ルールのルール３による処理手順を示す第１のフローチャート、
【図７】図７は位置ルールのルール３による処理手順を示す第２のフローチャート、
【図８】図８は位置ルールのルール３による処理手順を示す第３のフローチャート、
【図９】図９は位置ルールのルール３による処理手順を示す第４のフローチャート、
【図１０】図１０は位置ルールのルール４による処理手順を示すフローチャート、
【図１１】図１１は位置ルールのルール１の適用による構図形成の例を説明する図、
【図１２】図１２は位置ルールのルール２の適用による構図形成の例を説明する図、
【図１３】図１３は位置ルールのルール３の適用による構図形成の例を説明する図、
【図１４】図１４は位置ルールのルール３の適用による構図形成の第２の例を説明する図、
【図１５】図１５は位置ルールのルール４の適用による構図形成の例を説明する図、
【図１６】図１６は配色ルールのルール１１による処理手順を示すフローチャート、
【図１７】図１７は配色ルールのルール１２による処理手順を示すフローチャート、
【図１８】図１８は図の要素が均等間隔の格子の位置に配置されている構図の一例を示す図、
【図１９】図１９は図１８の構図に対して位置ルールのルール２および配色ルールのルール１１を適用して構図を変化させた例を示す図、
【図２０】図２０は図の要素が均等間隔の格子の位置に配置されている構図の別の例を示す図、
【図２１】図２１は図２０の構図に対して位置ルールのルール３および配色ルールのルール１２を適用して構図を変化させた例を示す図である。
【符号の説明】
１…要素データ保持部、２…要素データ変更部、３…要素雛型保持部、４…要素生成指示部、５…要素配置指示部、６…要素削除指示部、７…座標データ保持部、８…位置ルール保持部、９…位置ルール選択部、１０…座標データ変更部、１１…配色ルール保持部、１２…配色ルール選択部、１３…要素配色変更部、１４…画面表示部、１５…図印刷部、１６…処理制御部、１７…バス。
【図１】
0003601175.tif 000009
【図２】
0003601175.tif 000010
【図３】
0003601175.tif 000011
【図４】
0003601175.tif 000012
【図５】
0003601175.tif 000013
【図６】
0003601175.tif 000014
【図７】
0003601175.tif 000015
【図８】
0003601175.tif 000016
【図９】
0003601175.tif 000017
【図１０】
0003601175.tif 000018
【図１１】
0003601175.tif 000019
【図１２】
0003601175.tif 000020
【図１３】
0003601175.tif 000021
【図１４】
0003601175.tif 000022
【図１５】
0003601175.tif 000023
【図１６】
0003601175.tif 000024
【図１７】
0003601175.tif 000025
【図１８】
0003601175.tif 000026
【図１９】
0003601175.tif 000027
【図２０】
0003601175.tif 000028
【図２１】
0003601175.tif 000029