JP3601175B2 - 作図装置 - Google Patents
作図装置 Download PDFInfo
- Publication number
- JP3601175B2 JP3601175B2 JP08601596A JP8601596A JP3601175B2 JP 3601175 B2 JP3601175 B2 JP 3601175B2 JP 08601596 A JP08601596 A JP 08601596A JP 8601596 A JP8601596 A JP 8601596A JP 3601175 B2 JP3601175 B2 JP 3601175B2
- Authority
- JP
- Japan
- Prior art keywords
- rule
- value
- point
- coordinate
- variable
- 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
Landscapes
- Processing Or Creating Images (AREA)
Description
【発明の属する技術分野】
本発明は、図形を扱うことのできるワードプロセッサなどにおいて、対話的操作により電子的に作図を行う作図装置に関するものである。
【0002】
【従来の技術】
近年、簡単な作図機能を含むワードプロセッサなどにおいて、グラフィカルユーザインタフェースを利用して、エンドユーザが電子的に作図をすることが一般的になっている。
【0003】
また、カラースキャナやカラープリンタを含むコンピュータシステムの普及により、グラフィックデザイナだけではなく、一般のエンドユーザでもカラーの図を簡単に作成できる環境ができつつある。カラーの図は、文書中に用いると、白黒の図に較べて訴求力が高いので、顧客への提案書やプレゼンテーションのために、美しく分かりやすい図を容易に作成したいというニーズは高い。
【0004】
美しく分かりやすい図を作成するには、例えば、「同心円状に図の要素を並べて、広がっていく印象を与える」ように図を構成することや「右上がりにして、発展しつづける印象を与える」ように図を構成することなど、目的に応じて構図を選択し、その構図に従って作図をする必要がある。構図はその図で最も主張したいことに合わせる必要があるので、作図の際にさまざまな構図で要素の配置を試行できることが望まれる。
【0005】
特に、一般ユーザが最適な構図を選択するため、出来上がりイメージを図の作成の前に想像することは難しいので、実際に変更して確かめながら作図できることが望まれる。また、一度、作成した図を簡単な操作により、その構図を変えることができれば、相手に合わせてその場にふさわしい表現にするなど、図の再利用性を高めることができる。
【0006】
しかし、従来のワードプロセッサやグラフィックツールのソフトウエアなど、対話的操作による電子的な作図方法に関する従来の技術では、構図を作成することや、また、構図を変えてみることは非常に手間がかかるものであった。
【0007】
つまり、従来の技術において、ユーザが作図作業を行う場合、ユーザが直線や多角形や楕円形などの図形の要素を生成し、これを2次元平面上に配置するという操作を繰り返すことで行われる。複数の図形の要素の位置を揃えて作図作業を行う場合は、例えば、図形の要素の配置に制約をかけて作図作業を行う。これは、グリッドやガイドと呼ばれる予め設定された規制位置(格子点,直線)によって、図の要素が取りうる位置を規制して配置を行う方法である。
【0008】
グリッド方式は、2次元平面上に等間隔の直交する格子を引いておき、図の要素の位置を格子の点に制約するものであり、また、ガイド方式は、2次元平面上にユーザがガイドとなる線を引いておき、図の要素の位置がその線上に制約されるようにするものである。
【0009】
構図を作成するために、このようなグリッド方式またはガイド方式を利用する場合は、例えば、グリッド方式では直交する格子を表示し、位置規制を行うだけなので、構図を直接的に表現するものではない。このため、ユーザは頭の中に描いた構図を格子点に写像して、全体の格子点から描画する構図で使う格子点を選んで記憶する必要がある。したがって、構図を変える場合は、頭の中に描いた新しい構図に従って使える格子点を選び直し、今までに生成した図の要素の位置を選び直した格子点に移動させるという作業を、ユーザ自身が自らの操作で行わなければならない。
【0010】
一方、ガイド方式によると、ユーザが任意にガイドとなる線を引けるので、構図を直接的に表現できるが、これは一つの構図だけを表現したものとなる。しかし、構図を変えるには、新しい構図に従って線を引き直し、今までに生成した図の要素の位置をこの線上に移動させる作業をユーザが行わなければならない。
【0011】
このような煩雑な作業を必要としないようにするための提案もなされている。例えば、特開平6−266328号公報に記載の提案によると、位置を入力し、その位置を入力点として扱うシステムにおいて、所定の補正規則を複数個備え、利用者が入力する位置データを、利用者が指定した補正規則により補正して入力点とすることができる。また、そこで用いた規則を識別する情報を付加して、その入力点を記憶しておくことにより、補正規則を変更すると、変更による新たな補正規則に従って入力点を一括して変化させることができる。すなわち、例えば、グリッドを利用して作成した入力点を構成点として持つ図形を、再び、グリッドを用いて変更しようとする場合、グリッドの指定を変えるだけで、補正規則に従って、入力点の位置データを自動的に変更できる。
【0012】
【発明が解決しようとする課題】
上記の技術を用いれば、補正規則に従って入力点を一括して変化させることができるので、複数の図の要素を2次元平面に配置して構図を決める場合に適用できる。例えば、構図に関する規則を用意し、その中から所望の規則を選択することにより様々な構図を簡単に得ることが可能となる。しかしながら、ここでの技術は、点の配置に関するものであるので、具体的には、広がりや色を持つ図の要素を対象とする高度な構図の作成に関しては、有効に利用することができないものであった。
【0013】
本発明は、上述した事情に鑑みてなされたものであり、本発明の目的は、ユーザが対話的操作により電子的に作図する際に、ユーザが容易に構図の設定や変更ができる作図装置を提供することにある。
【0014】
【課題を解決するための手段】
上記の目的を達成するため、本発明の作図装置は、基本的な構成として、複数の配置可能点を一意に識別する識別子と各配置可能点の2次元平面上の位置とを対応づけて保持する配置可能点保持手段と、前記配置可能点の識別子と要素の色を表す情報を含む要素の各属性情報を位置の属性として保持する要素保持手段と、前記配置可能点の2次元平面上での位置を決定する位置規則を保持する位置規則保持手段と、前記位置規則を選択する位置規則選択手段と、選択された位置規則に基づいて前記配置可能点保持手段に保持された各配置可能点の2次元平面上での位置を変更する配置変更手段と、前記配置変更手段により変更された後の配置可能点の位置関係に基づいて要素の色を決定して前記要素保持手段に保持する配色変更手段と、前記要素保持手段に保持された情報に基づいて要素の画像を配置可能点に配置した画像を生成する画像生成手段とを備える。
【0015】
すなわち、本発明による作図装置は、前記配色変更手段が、各配置可能点について、それぞれ隣接する配置可能点の2次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定することを特徴とする。
【0016】
また、本発明による作図装置において、前記配色変更手段は、各配置可能点について、任意に指定した配置可能点の2次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定することを特徴とする。
【0017】
このような特徴を有する本発明の作図装置においては、配置可能点保持手段が、複数の配置可能点を一意に識別する識別子と各配置可能点の2次元平面上の位置とを対応づけて保持し、要素保持手段が、前記配置可能点の識別子と要素の色を表す情報を含む要素の各属性情報を位置の属性として保持する。また、位置規則保持手段が、前記配置可能点の2次元平面上での位置を決定する位置規則を保持する。そして、位置規則選択手段により前記位置規則を選択すると、配置変更手段が、選択された位置規則に基づいて前記配置可能点保持手段に保持された各配置可能点の2次元平面上での位置を変更する。また、同時に、配色変更手段が、前記配置変更手段により変更された後の配置可能点の位置関係に基づいて要素の色を決定して前記要素保持手段に保持するので、画像生成手段が、前記要素保持手段に保持された情報に基づいて要素の画像を配置可能点に配置した画像を生成する。
【0018】
また、この場合において、前記配色変更手段が、各配置可能点について、それぞれ隣接する配置可能点の2次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定し、または、前記配色変更手段が、各配置可能点について、任意に指定した配置可能点の2次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定する。
【0019】
すなわち、配置可能点保持手段には、配置可能点の識別子と、それに対応する配置可能点の位置(例えば座標で表す)が保持され、要素保持手段が、図の要素の各種の属性情報を保持している。この属性情報としては、例えば、図の要素の位置,色,形状,方位などが保持される。図の要素の位置は、配置可能点の識別子として保持している。識別子により、配置可能点保持手段を探索することによって配置可能点の2次元平面上の位置を知る。位置規則保持手段は、配置可能点の位置の設定に関する複数の規則を保持している。
【0020】
配置変更手段は、位置規則保持手段に保持された図の要素の配置設定に関する規則群から、位置規則選択手段により任意の規則をユーザが選択するので、その選択された規則に従った配置となるように、配置可能点保持手段に保持されている配置可能点の位置を変更する。その際に、配色変更手段は、配置可能点の位置関係に基づいて、図の要素の色を決定する。その決定した情報は要素保持手段に保持する。そして、画像生成手段が、要素保持手段に保持された情報を基づいて、画像を生成する。その画像においては、図の要素が前記識別子によって特定される2次元平面上の位置に描く。その際、要素の色は配色変更手段によって得られた色に従う。このようにして、作図を行うので、要素の配置関係に応じて要素の色を適切に変更した高度な構図が得られる。また、構図の設定や変更に対するユーザの負担を大幅に軽減することができる。
【0021】
【発明の実施の形態】
以下、本発明を実施する場合の形態について、図面を参照して具体的に説明する。図1は、本発明の実施例の作図装置の全体の構成を示すブロック図である。図1において、1は要素データ保持部、2は要素データ変更部、3は要素雛型保持部、4は要素生成指示部、5は要素配置指示部、6は要素削除指示部、7は座標データ保持部、8は位置ルール保持部、9は位置ルール選択部、10は座標データ変更部、11は配色ルール保持部、12は配色ルール選択部、13は要素配色変更部、14は画面表示部、15は図印刷部、16は処理制御部、17はそれぞれの機能処理部を接続するバスである。
【0022】
本実施例の作図装置は、図1に示すように、バス17により、要素データ保持部1,要素データ変更部2,要素雛型保持部3,要素生成指示部4,要素配置指示部5,要素削除指示部6,座標データ保持部7,位置ルール保持部8,配色ルール選択部9,座標データ変更部10,配色ルール保持部11,配色ルール選択部12,要素配色変更部13,画面表示部14,図印刷部15,および処理制御部16のそれぞれの機能処理部が接続されて、ここでの作図処理が行われる。
【0023】
処理制御部16は、ユーザからの指示を受け付け、システム全体の起動と終了の処理を行い、また、各々の機能処理部(1〜15)の制御を行って、全体の処理の流れを統括する処理を行う。この場合に、ユーザからの指示を個別に受け付けて処理を行う各々の機能処理部(要素生成指示部4,要素配置指示部5,要素削除指示部6,配色ルール選択部9,配色ルール選択部12)に対して、指示入力受け付けの時間を順次割り当て、時間が割り当てられた各々機能部において、ユーザからの入力があった場合に、その要求による処理が終了するまで他の機能処理部への時間割り当てを中断する。
【0024】
図2は、本実施例の作図装置の全体の処理の制御を行う処理制御部の処理の流れを示すフローチャートである。図2を参照して、作図装置の全体の処理の制御の流れについて説明する。ここでの作図装置は、その処理を開始すると、まず、ステップ21において、処理制御部16で処理終了がユーザから指示されたか否かを判定する。処理終了がユーザから指示されていれば、処理を終了とする。処理終了が指示されていない場合、次に、ステップ22に進み、要素生成指示部4で図の要素の生成がユーザから指示されたか否かを判定する。図の要素の生成がユーザから指示されている場合、ステップ23に進み、新規の要素データの生成の処理を行い、次にステップ32に進む。そして、ステップ32において、処理の結果を表示画面に反映させるため、画面の再描画の処理を行う。次に、ステップ21に戻り、ステップ21からの処理を繰り返す。
【0025】
また、ステップ22の判定において、図の要素の生成がユーザから指示されていない場合は、ステップ24に進み、要素削除指示部6で図の要素の削除がユーザから指示されたか否かを判定する。図の要素の削除がユーザから指示された場合、次のステップ25において、指定された要素に対応する要素データの削除を行う。次に、ステップ32に進み、処理の結果を表示画面に反映させるため、画面の再描画を行う。そして、ステップ21に戻り、ステップ21からの処理を繰り返す。また、ステップ24の判定において、図の要素の削除がユーザから指示されていない場合には、ステップ26に進む。
【0026】
ステップ26においては、要素配置指示部5で図の要素の配置変更がユーザから指示されたか否かを判定する。配置変更の指示がなされた場合、ステップ27に進み、要素データの位置属性値を変更する処理を行う。次にステップ32に進み、処理の結果を表示画面に反映させるため、画面の再描画を行う。そして、ステップ21に戻り、ステップ21からの処理を繰り返す。また、ステップ26の判定処理において、配置変更の指示がなされていない場合には、次に、ステップ28に進む。そして、ステップ28において、位置ルール選択部9でルールが選択されたか否かを判定する。ルールが選択された場合、ステップ29において、選択されたルールに基づいて要素データの変更処理を行う。次に、ステップ32に進み、処理の結果を表示画面に反映させるため、画面の再描画を行い、そして、ステップ21に戻り、ステップ21からの処理を繰り返す。
【0027】
また、ステップ28の判定処理において、ルールの選択が判定されない場合には、ステップ30に進み、ステップ30において、配色ルール選択部12でルールが選択されたか否かを判定し、ルールが選択された場合、次のステップ31において、選択されたルールに基づいて要素データの配色の変更処理を行う。そして、次のステップ32に進み、処理の結果を表示画面に反映させるため、画面の再描画を行う。そして、ステップ21に戻り、ステップ21からの処理を繰り返す。一方、ステップ30の判定処理において、ルールの選択が判定されない場合には、ステップ33に進み、図印刷部15において図の印刷が指示されたか否かを判定する。図の印刷が指示された場合、次のステップ34において、図の印刷の処理を行う。そして、ステップ21に戻る。また、図の印刷が指示されない場合は、そのままステップ21に戻り、これらの処理を繰り返し行う。
【0028】
このようにして、処理制御部16による処理の制御では、ユーザからの指示を受け付け、各々の機能処理部(1〜15)の制御を行って、処理全体の流れを統括する処理を行う。この場合に各々処理ステップにおいて各機能処理部によりユーザからの指示を個別に受け付けて、そのぞれの機能処理部による処理を制御することを繰り返し行う。
【0029】
次に、各々の機能処理部(1〜15)による個々の処理について具体的に説明する。なお、ここでの説明の理解を容易とするため、一部については、箇条書スタイルで各々の機能処理部の動作およびその特徴について説明する。
【0030】
(要素データ保持部1)
要素データ保持部1は、図の要素ごとに、その形状、色、および配置に関する情報を保持する。すなわち、図の要素に関する属性データを表形式で保持する。表形式で保持する属性データは、属性と属性値の組を対応づけたものであり、各々の図の要素毎に一つの表の属性データが作られる。属性情報のデータとして、ここでは「位置」属性,「色」属性,「形状」属性,「テキスト」属性,および「表示順序」属性のデータが設定される。
【0031】
「位置」属性は、図の要素の2次元平面上の位置を示すデータである。属性値として、後述するように、配置可能座標点を特定する座標IDをとる。「色」属性は、図の要素の色を示すデータである。属性値として、国際照明学会が定めたスケールのL*a*b*でその要素の色を表現した値をとる。「形状」属性は、図の要素の形状を示すデータである。属性値として、ページ記述言語のPostScriptでその要素の形状を記述した値をとる。「テキスト」属性は、図の要素が何を表わすかを示すテキストのデータである。図の要素の内側に描画される文字列データとなる。属性値として、ページ記述言語のPostScriptでそのテキストの形状を記述した値をとる。また、「表示順序」属性は、図の要素が何番目に表示されるかを示すデータである。ここでは、描画は上書きで行われるので、要素が重なった場合は表示順序が後のものが手前に見えるように表示される。属性値として、一意の正数値をとる。
【0032】
(要素データ変更部2)
要素データ変更部2は、他の機能処理部からのデータ変更の要求の命令に応じて、要素データ保持部1が保持する図の要素データの情報(属性情報)を変更する処理を行う。また、変更する命令を受けて、その変更処理を行った後、画面書き換え命令を画面表示部14へ送る処理を行う。
【0033】
要素データ変更部2において、図の要素の生成、すなわち、新たに、図の要素に対応する属性と属性値との対応表の生成は、要素生成指示部4から送られる命令によって行われる。要素データ変更部2は、この命令を受けると、まず新たな一つの表を要素データ保持部1の中に作り、次に、その表の各属性の属性値の値を代入する。例えば、「色」属性,「形状」属性,および「テキスト」属性の属性値は、その命令の引数として渡されるので、渡された値を属性値として表に代入する。「位置」属性の属性値は、デフォルトとして座標点{1,1}の座標IDを属性値として代入する。「表示順序」属性は、ここでの要素データ変更部2(要素データ保持部1)に保持された表(図の要素データ)の当該属性値として、その時点において最も大きな値を調べ、その値に“1”を加えた正数値を新しい要素の属性「表示順序」の属性値とする。
【0034】
図の要素の配置の変更処理(ステップ27)は、要素配置指示部5から送られる命令によって行われる。まず、配置の変更対象となる要素を特定する。要素の特定は、その命令の引数として渡される移動元の座標ID(座標点)を「位置」属性の値として持つもののうち、「表示順序」属性の値が最も大きい要素を該当するものとして特定する。要素が特定できれば、次に、その要素の「位置」属性の値を、引き数として渡された移動先の座標IDで置き換える。ここでの引数としてPostScriptプログラムが渡された場合は、これを「テキスト」属性の値として、図の要素データのその表に代入する。「表示順序」属性は、この機能処理部に保持された表の当該属性値として、その時点において最も大きな値を調べ、その値に“1”を加えた正数値を新しい要素の属性「表示順序」の属性値とする。
【0035】
また、図の要素の削除処理(ステップ25)は、図の要素に対応する表の削除として、その処理が行われる。これは、要素削除指示部4から送られる命令によって行われ、削除される図の要素データは、その命令の引数として渡される座標IDを「位置」属性の値として持つもののうち、「表示順序」属性の値が最も大きいものである。
【0036】
(要素雛型保持部3)
要素雛型保持部3は、個々の図の要素データの雛型となる各々の要素の「色」属性と「形状」属性に関する値を保持している。例えば、「色」属性の属性値として、L*a*b*の値と、その色を表わす言葉(赤や青など)とを対応づけた組の表を持っており、また、「形状」属性の属性値として、形状を描画するPostScriptプログラムと当該形状を表現する言葉(四角や楕円など)とを対応づけた組からなる表を持っている。
【0037】
(要素生成指示部4)
要素生成指示部4は、ユーザからの指示を受けて、要素データ変更部2に対して命令を発行し、要素雛型保持部3に保持されている雛型の図の要素データを用いて、新たな図の要素データを生成し、生成した図の要素を要素データ変更部2を介して、要素データ保持部1に記憶させる一連の処理命令を発行する。その場合に、テキスト入力を受け付ける処理を行う。
【0038】
要素生成指示部4で受け付けるユーザからの指示は、図の要素の「色」属性と「形状」属性に関しては、要素雛型保持部3が保持する雛型の図の要素データの表から、色と形状を示す言葉をそれぞれ選択することで行われる。このとき、ユーザがテキストを入力すると、そのテキストを新たに作った図の要素のテキストとすることができる。すなわち、その図の要素の内側に表示されるテキストとすることができる。
【0039】
要素生成指示部4において、色と形状を示す言葉をそれぞれ選択する選択指示が行われた後、要素生成指示部4は、要素データ変更部2に対して新たな表を作成する命令を送る。その場合に送られる命令の引数として、次のデータの値が要素データ変更部2に渡される。
▲1▼:ユーザが選択した色を表わす言葉と対応づけられた表のL*a*b*の値(「色」属性の値)、
▲2▼:ユーザが選択した形状を表わす言葉と対応づけられた表のPostScriptプログラム(「形状」属性の値)、
▲3▼:入力されたテキストができるだけ当該要素の「形状」属性のPostScriptプログラムによる描画領域の領域の内側にはいるように、フォント/行数/行間隔が設定された入力テキストを描画するためのPostScriptプログラム(「テキスト」属性の値)。
【0040】
(要素配置指示部5)
要素配置指示部5は、ユーザの指示を受け付けて、ある座標の位置に配置されている図の要素を別の座標の位置に移動する処理を行うための命令を発行する。また、テキスト入力を受け付ける機能を持つ。ここでの要素配置のユーザの指示は、まず、移動元の座標点とする座標IDを選択することで行われる。この座標に配置された図の要素のうち、最も手前に表示されているものが移動の対象となる。このときにも、テキストを入力すると、移動対象となる図の要素の「テキスト」属性の値として入力されたテキストを設定することができる。この後、移動先となる座標が選択される。これらの選択の指示が行われた後、要素配置指示部5は、要素データ変更部2に対して図の要素データの属性値を変更する命令を送る。その場合に送られる命令の引数として、次のものが要素データ変更部2に渡される。
▲1▼:はじめに選択した座標の座標ID(移動元を示す)、
▲2▼:あとで選択した座標の座標ID(移動先を示す)、
▲3▼:入力されたテキストができるだけ前記要素の「形状」属性のPostScriptプログラムが表示上占める領域の内側にはいるように、フォント/行数/行間隔が設定された入力テキストを描画するためのPostScriptプログラム(「テキスト」属性の値)。
【0041】
(要素削除指示部6)
要素削除指示部6は、ユーザの指示を受け付けて、任意の座標に配置された図の要素を削除する処理を行うための命令を発行する。ユーザの指示は、座標を選択することで行われる。この座標に配置された図の要素のうち、最も手前に表示されているものが削除の対象となる。要素削除指示部6は、ユーザからの指示を受け付けた後、選択された座標IDを引数として、削除命令を要素データ変更部2へ送る。
【0042】
(座標データ保持部7)
座標データ保持部7は、図の要素に対して配置可能な2次元平面上の座標に関する情報を保持する。この実施例の作図装置においては、配置可能な座標の数は固定であり、全部で16個とする。ある座標のデータは、座標IDと当該座標の2次元上での位置を示す値とで構成される。座標IDは座標を一意に識別するためのデータであり、この実施例では、例えば、{1,1}のように2元の正数値の組で表わす。
【0043】
図3は、位置を示す属性値の概念を説明する図である。座標点(座標ID)の位置を示す値(属性値)は、他の座標点(座標ID)を測定対象として、この測定対象に対する方位と距離で表す。測定対象となる座標点は一点であり、これを座標IDで表す。方位は、当該測定対象が自身(自己の座標ID)からみてどの方向にあるかにより示す。画面表示あるいは印刷時に上になる方向を0度として時計回りの角度で示す。距離は、印刷の単位であるポイントを単位とした非負正数値で示す。
【0044】
具体例で説明すると、図3に示すように、例えば、座標IDが{1,2}の座標点36は、座標IDが{1,1}である座標点35を測定対象とし、その位置を示す値(属性値)36aとして、『観測対象の座標ID:{1,1},方位:135,距離:102』のデータが保持される。同様にして、座標IDが{2,1}の座標点37は、同じく、座標IDが{1,1}である座標点35を測定対象とし、その位置を示す値(属性値)37aとして、『観測対象の座標ID:{1,1},方位:270,距離:144』のデータが保持される。また、座標IDが{2,2}の座標点38については、座標IDが{2,1}の座標点37を観測対象として、その位置を示す値(属性値)38aとして、『観測対象の座標ID:{2,1},方位:180,距離:72』のデータが保持される。
【0045】
(位置ルール保持部8)
位置ルール保持部8は、座標間隔の設定に関する規則の位置ルールを保持する。この実施例では、座標データ保持部7に保持された座標点のデータに対して、その方位と距離の設定に関する位置ルールを保持する。ここでの位置ルールは4種類が設けてある。それぞれの位置ルールは、C言語に似た文法を持つプログラムにより、逐次処理的な手順として記述されている。
【0046】
位置ルールのルール1は、座標の配置を等間隔とし、全体として格子状の構図を形成するルールである。ルール1を次に示す。ルール1(rule_1(dis_val))の処理手順を実行すると、全ての座標で、隣の格子点との距離が引数「dis_val」の値に設定される。
【0047】
図4は、上記の位置ルールのルール1の処理手順を示すフローチャートである。図4のフローチャートを参照し、ルール1による構図の形成処理について説明する。まず、ステップ41において、変数iに“1”を代入する。次に、ステップ42において、変数jに“1”を代入する。そして、ステップ43において、座標IDが{i,j}の配置可能座標に対して、その位置を示す属性値のうち「距離」の値が引数「dis_val」の値に一致するように、座標データ保持部の座標データを更新する。
【0048】
次に、ステップ44に進み、変数jが“1”であるか否かを判定する。この判定において、変数jが“1”である場合、次に、ステップ45において、座標IDが{i,j}の配置可能座標に対して、その位置を示す属性値のうち「方位」の値を“270”とするように、座標データ保持部の座標データを更新し、ステップ47に進む。一方、ステップ44の判定において、変数jが“1”でない場合は、ステップ46に進んで、座標IDが{i,j}の配置可能座標に対して、その位置を示す属性値のうち「方位」の値を“180”とし、更に「測定対象」の値を{i,(j−1)}とするように、座標データ保持部の座標データを更新する。そして、ステップ50に進む。
【0049】
続いて、ステップ47において、変数iが“1”であるか否かを判定する。この判定において、変数iが“1”である場合は、次に、ステップ48に進み、座標IDが{i,j}の配置可能座標に対して、その位置を示す属性値のうち「測定対象」の値が“nil”値となるように、座標データ保持部の座標データを更新する。そして、ステップ50に進む。一方、ステップ47の判定において、変数iが“1”でない場合には、ステップ49に進んで、座標IDが{i,j}の配置可能座標に対して、その位置を示す属性値のうち「測定対象」の値を{(i−1),1}になるように、座標データ保持部の座標データを更新する。次に、ステップ50に進む。
【0050】
ステップ50においては、変数jの値が“YPOINTMAX”と同じであるか否かを判定する。この判定の結果、変数jの値が“YPOINTMAX”と同じでない場合には、ステップ51に進み、変数jをインクリメントして、ステップ43に戻る。そして、ステップ43からの処理を続ける。一方、ステップ50の判定において、変数jの値が“YPOINTMAX”と同じである場合に、次に、ステップ52に進み、変数iの値が“XPOINTMAX”と同じであるか否かを判定する。この判定の結果、変数iの値が“XPOINTMAX”と同じでない場合には、ステップ53に進み、変数iをインクリメントして、ステップ42に戻る。そして、ステップ42からの処理を続行する。一方、ステップ52の判定において、変数iの値が“XPOINTMAX”と同じであることが判定できると、ここでの処理を終了する。このようにして、位置ルールのルール1により、座標の配置を等間隔とし、全体として格子状の構図を形成する。
【0051】
位置ルールのルール2は、座標の配置を等比的に広げて、全体として末広がりの構図を形成するルールである。ルール2の内容を次に示す。このルール2(rule_2 (dis_val, ratio))の処理手順を実行すると、間隔の初期値を引数「dis_val」の値として、引数「ratio」の比率で間隔が広がっていくように、格子点の間隔が設定される。
【0052】
図5は、上記の位置ルールのルール2の処理手順を示すフローチャートである。図5のフローチャートを参照して、ルール2の位置規制による構図の形成処理について説明する。まず、ステップ61において、変数iに“1”を代入し、引数「dis_val」の値を変数「current_distance」に代入する。次に、ステップ62において、変数jに“1”を代入する。そして、次に、ステップ63において、座標IDが{i,j}の配置可能座標に対して、その位置を示す値(属性値)のうちの「距離」の値が変数「current_distance」の値に一致するように、座標データ保持部の座標データを更新する。
【0053】
次に、ステップ64に進み、変数jが“1”であるか否かを判定する。この判定において、変数jが“1”である場合、次に、ステップ65において、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「方位」の値を“270”とするように、座標データ保持部の座標データを更新し、ステップ67に進む。一方、ステップ64の判定において、変数jが“1”でない場合には、ステップ66に進んで、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「方位」の値を“180”とし、更に「測定対象」の値を{i,(j−1)}とするように、座標データ保持部の座標データを更新する。そして、ステップ70に進む。
【0054】
続いて、ステップ67においては、変数iが“1”であるか否かを判定する。この判定において、変数iが“1”である場合は、次のステップ68に進み、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「測定対象」の値が“nil”値となるように、座標データ保持部の座標データを更新する。そして、ステップ70に進む。一方、ステップ67の判定において、変数iが“1”でない場合には、ステップ69に進んで、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「測定対象」の値が{(i−1),1}になるように、座標データ保持部の座標データを更新する。そして、次に、ステップ70に進む。
【0055】
ステップ70においては、変数jの値が“YPOINTMAX”と同じであるか否かを判定する。この判定の結果、変数jの値が“YPOINTMAX”と同じでない場合には、ステップ71に進み、変数jをインクリメントして、ステップ63に戻る。そして、ステップ63からの処理を続ける。一方、ステップ70の判定において、変数jの値が“YPOINTMAX”と同じである場合に、次に、ステップ72に進み、変数iの値が“XPOINTMAX”と同じであるか否かを判定する。この判定の結果、変数iの値が“XPOINTMAX”と同じでない場合には、ステップ73に進み、変数iをインクリメントし、更に、現在の値に、引数「ratio」の値を掛算した結果を変数「current_distance」に代入して、ステップ62に戻る。そして、ステップ62からの処理を続行する。一方、ステップ72の判定処理において、変数iの値が“XPOINTMAX”と同じであることが判定できると、ここでの処理を終了する。このようにして、位置ルールのルール2によると、座標の配置を等比的に広げて、全体として末広がりの構図を形成することができる。
【0056】
位置ルールのルール3は、座標の配置を、ある任意の点を中心として同心円状に並べるルールである。ルール3の内容を次に示す。ルール3(rule_3 (center_point, dis_val))の処理手順を実行すると、引数「center_point」で指示される座標点を中心点として、引数「dis_val」の値を半径差とする同心円に、格子点が配置されるようになる。
【0057】
図6,図7,図8,および図9は、上記のルール3の処理手順を示すフローチャートである。図6〜図9のフローチャートを参照し、ルール3による構図形成処理について説明する。まず、図6を参照する。処理を開始すると、ステップ81において、システム定義関数「reset_reference」を、引数を変数「center_point」の値として実行し、座標データ保持部の座標データの位置を示す値を更新する。次に、ステップ82において、座標IDの第2元の値が変数「center_point」の第2元の値に等しい配置可能座標に対して、その位置を示す値のうち「距離」の値が“0”となるように、座標データ保持部の座標データを更新する。
【0058】
次に、ステップ83において、座標IDの第2元の値が変数「center_point」の第2元の値と異なる配置可能座標に対して、その位置を示す値のうち「距離」の値が引数「dis_val」の値に一致するように、座標データ保持部の座標データを更新する。
【0059】
そして、ステップ84の処理において、座標点「center_point」を中心とする同心円の当該座標点「center_point」より右半分と左半分を各々何分割するかを決め、決定した右半分の分割数を変数「right_divide」に代入し、決定した左半分の分割数を変数「left_divide」に代入する。
【0060】
すなわち、図7に示すサブルーチンのフローチャートの処理フローに示すように、この処理では、ステップ91において、まず、「center_point」の第2元の値は“1”より大きく、かつ“YPOINTMAX”未満である第1条件を満すか否かを判定する。「center_point」の第2元の値が、この第1条件を満す場合には、ステップ92において、「center_point」の第1元の値をNとして、次の式を計算し、
right_divide=(“XPOINTMAX”−N)×2+1
left_divide=N×2−1
それぞれの値を、変数「right_divide」および変数「left_divide」にそれぞれ代入する。そして、リターンする。
【0061】
また、ステップ91の判定において、「center_point」の第2元の値が、前記第1条件を満さない場合、ステップ93に進み、「center_point」の第1元の値は、(“YPOINTMAX”÷2)より大きい第2条件を満たすか否かを判定する。「center_point」の第1元の値が、第2条件を満たす場合、ステップ94において、「center_point」の第1元の値をNとして、次の式を計算し、
right_divide=(“XPOINTMAX”−N)×2−1
left_divide=N−1
それぞれの値を、変数「right_divide」および変数「left_divide」にそれぞれ代入する。そして、リターンする。
【0062】
一方、ステップ93の判定において、「center_point」の第1元の値が、第2条件を満さない場合には、ステップ95において、「center_point」の第1元の値をNとして、次の式を計算し、
right_divide=“XPOINTMAX”−N
left_divide=N
それぞれの値を、変数「right_divide」および変数「left_divide」にそれぞれ代入する。そして、リターンする。
【0063】
次に、ステップ85(図6)において、変数「right_divide」が“1”より大きいか否かを判定する。変数「right_divide」が“1”より大きくない場合は、そのまま、ステップ87に進むが、変数「right_divide」が“1”より大きい場合には、次のステップ86の処理を行う。
【0064】
ステップ86の処理では、同心円の右半分を変数「right_divide」の数で分割した時の分割線上と、同心円との交点に配置可能座標が位置するように、座標データ保持部の座標データを更新する。この処理については、図8に示す処理フローを参照して後述する。そして、ステップ87に進む。
【0065】
次に、ステップ87において、変数「left_divide」が“1”より大きいか否かを判定する。変数「left_divide」が“1”より大きくない場合には、そのまま処理を終了する。変数「left_divide」が“1”より大きい場合には、次のステップ88の処理を行う。
【0066】
ステップ88の処理では、同心円の左半分を変数「left_divide」の数で分割した時の分割線上と、同心円との交点に配置可能座標が位置するように、座標データ保持部の座標データを更新する。この処理については、図9に示す処理フローを参照して後述する。そして、ここでの処理を終了する。このようにして、位置ルールのルール3によると、座標点「center_point」を中心として座標点(配置可能座標)の配置が同心円状に並べられる。
【0067】
次に、図8を参照して、同心円の右半分を変数「right_divide」の数で分割した時の分割線上と、同心円との交点に配置可能座標を位置させるようにする処理について説明する。この処理を開始すると、まず、ステップ101において、先の処理(ステップ84)により得られた変数「right_divide」の値を用いて、変数「devide_angle」に(180÷「right_divide」)を計算して代入する。次にステップ102において、変数「current_angle」に変数「divide_angle」の値を代入する。次に、ステップ103において、引数の座標点「center_point」の第1元の値に“1”を加えた値を、変数iに代入する。そして、ステップ104において、変数iが“XPOITMAX”より大きいか否かを判定する。変数iが“XPOITMAX”より大きい場合は、そのまま、リターンとする。
【0068】
一方、ステップ104の判定処理において、変数iが“XPOITMAX”より大きくない場合は、次のステップ105において、引数の座標点「center_point」の第2元の値に“1”を加えた値を、変数jに代入する。そして、ステップ106において、変数jが“YPOITMAX”より大きいか否かを判定する。変数jが“YPOITMAX”より大きくない場合は、次に、ステップ107において、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」の値に「current_angle」の値を加算した値となるように、座標データ保持部の座標データを更新する。そして、次のステップ108において、変数jをインクリメントして、ステップ106に戻り、ステップ106からの処理を繰り返す。
【0069】
一方、ステップ106の判定において、変数jが“YPOITMAX”より大きい場合は、ステップ109に進み、変数jに“1”を代入してリセットし、次に、ステップ110において、変数jの値は、引数の座標点「center_point」の第2元の値に一致するか否かを判定する。一致しない場合には、次のステップ111において、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」の値から「current_angle」の値を減算した値となるように、座標データ保持部の座標データを更新する。そして、次のステップ112において、変数jをインクリメントして、ステップ110に戻り、ステップ110からの処理を繰り返す。
【0070】
一方、ステップ110の判定において、変数jの値は、引数の座標点「center_point」の第2元の値に一致する場合は、次のステップ113に進み、ステップ113において、変数「current_angle」の値に、変数「divide_angle」の値を加算した結果の値を変数「current_angle」に代入する。そして、次のステップ114において、変数iをインクリメントして、ステップ104に戻り、ステップ104からの処理を繰り返す。そして、ステップ104において、変数iが“XPOITMAX”より大きいことが判定できると、リターンとする。
【0071】
次に、図9を参照して、同心円の左半分を変数「left_divide」の数で分割した時の分割線上と、同心円との交点に配置可能座標を位置させるようにする処理について説明する。この処理を開始すると、まず、ステップ121において、先の処理(ステップ84)に得られた変数「left_divide」の値を用いて、変数「devide_angle」に(180÷「left_divide」)を計算して代入する。
【0072】
次に、ステップ122において変数「current_angle」に変数「divide_angle」の値を代入する。次に、ステップ123において、引数の座標点「center_point」の第1元の値から“1”を引いた値を、変数iに代入する。そして、次のステップ124において、変数iが“1”より小さいか否かを判定する。この判定により、変数iが“1”より小さい場合は、そのまま、リターンとする。
【0073】
一方、ステップ124の判定処理において、変数iが“1”より小さくない場合は、次のステップ125において、引数の座標点「center_point」の第2元の値に“1”を加えた値を、変数jに代入する。そして、次のステップ126において、変数jが“YPOITMAX”より大きいか否かを判定する。変数jが“YPOITMAX”より大きくない場合は、次のステップ127において、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」の値から「current_angle」の値を減算した値となるように、座標データ保持部の座標データを更新する。そして、次のステップ128において、変数jをインクリメントして、ステップ126に戻り、ステップ126からの処理を繰り返す。
【0074】
一方、ステップ126の判定において、変数jが“YPOITMAX”より大きい場合は、ステップ129に進み、変数jに“1”を代入してリセットし、次に、ステップ130において、変数jの値は、引数の座標点「center_point」の第2元の値に一致するか否かを判定する。一致しない場合には、次のステップ131において、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」の値に「current_angle」の値を加算した値となるように、座標データ保持部の座標データを更新する。そして、次のステップ132において、変数jをインクリメントして、ステップ130に戻り、ステップ130からの処理を繰り返す。
【0075】
一方、ステップ130の判定において、変数jの値は、引数の座標点「center_point」の第2元の値に一致する場合は、次に、ステップ133に進み、ステップ133において、変数「current_angle」の値に、変数「divide_angle」の値を加算した結果の値を変数「current_angle」に代入する。そして、次のステップ134において、変数iをデクリメントして、ステップ124に戻り、ステップ124からの処理を繰り返す。そして、ステップ124において、変数iが“1”より小さいことが判定できると、リターンとする。
【0076】
次に、位置ルールのルール4について説明する。位置ルールのルール4は、ある任意の点を中心に、任意の角度だけ全体の構図を回転させるルールである。ルール4の内容を次に示す。ルール4(rule_4(center_point, plus_angle))の処理手順を実行すると、引数「center_point」の座標点を回転の中心点として、引数「plus_angle」の値だけ時計方向にすべての座標点を回転させる。
【0077】
図10は、上記のルール4の処理手順を示すフローチャートである。図10のフローチャートを参照し、ルール4による構図の形成処理について説明する。処理を開始すると、まず、ステップ141において、システム定義関数「reset_reference」を、引数を「center_point」の値として実行し、座標データ保持部の座標データの位置を示す値を更新する。次に、ステップ142において、変数iに“1”を代入し、次のステップ143において、変数jに“1”を代入する。
【0078】
次に、ステップ144において、座標IDが{i,j}の配置可能座標に対して、その位置を示す値のうち「方位」の値が、現在の「方位」に値に引数「plus_angle」の値を加算した値となるように、座標データ保持部の座標データを更新する。次に、ステップ145において、変数jが“YPOITMAX”と等しいか否かを判定する。変数jが“YPOITMAX”と等しくない場合は、次に、ステップ146に進み、変数jをインクリメントする。そして、ステップ144に戻り、ステップ144からの処理を繰り返す。
【0079】
一方、ステップ145の判定において、変数jが“YPOITMAX”と等しい場合は、ステップ147に進み、変数iが“XPOITMAX”と等しいか否かを判定する。変数iが“XPOITMAX”と等しくない場合は、次のステップ148に進み、変数iをインクリメントする。そして、ステップ143に戻って、ステップ143からの処理を繰り返し行う。また、ステップ147の判定において、変数iが“XPOITMAX”と等しいと判定された場合は、ここでの処理を終了する。
【0080】
なお、これらの位置ルールのルール1〜ルール4の記述において、関数「point_data({i,j})」はシステム定義の関数であり、その処理の機能は、座標IDが{i,j}の座標データへアクセスするためのポインタを返すものである。このシステム定義の関数を用いることにより、p−>position−>angleのように、座標データの各属性値を参照し、更に代入することができる。また、ここでの“XPOINTMAX”,“YPOINTMAX”は、配置可能座標の第1元、第2元の最大数を示すマクロである。この実施例では値は両方とも4である。
【0081】
また、関数「reset_reference({i,j})」は、位置設定の基準点となる座標の座標IDを{i,j}とし、この座標から測定対象のつながりをツリー状に展開するシステム定義の関数である。測定対象の変更に従って、距離と方位は、座標の配置がこの関数が適用される前と変わらないように適切に設定される。座標IDが{l,m}である「測定対象」の設定は、次のようになる。すなわち、
▲1▼:l<iかつm=jのとき、「測定対象」は座標IDを{l+1,m}とし、
▲2▼:l>iかつm=jのとき、「測定対象」は座標IDを{l−1,m}とし、
▲3▼:m>jのとき、「測定対象」は座標IDを{l,m−1}とし、
▲4▼:m<jのとき、「測定対象」は座標IDを{l,m+1}とする。
なお、前記のシステム定義の関数とマクロは、後述する座標データ変更部10において定義されている。
【0082】
(位置ルール選択部9)
位置ルール選択部9は、ユーザの指示を受け付け、ユーザの指示に従って座標の間隔設定に関するルールのうちから一つを選び、これにしたがって配置可能座標を変更する指示を送る。また、その場合に、選択した各々のルールにおける可変の値(前述のルールの引数「center_point」の値など)について、その値を指定する。
【0083】
この位置ルール選択部9の処理機能を用いて、ユーザが位置ルール保持部8に保持されたルールのうちから一つを選ぶ指示を行う。これにより、ルールを選択した後、その選択したルールが可変値の引数を持つものであれば、その実際の値をユーザが設定する。そして、位置ルール選択部9が、選択されたルールと、そのルールの参照値と設定値を引数として、次に説明する座標データ変更部10に対して座標変更の命令を送る。
【0084】
(座標データ変更部10)
座標データ変更部10は、位置ルール選択部9から送られた命令により、その命令の中の選択されたルールとそのルールの引数により、位置ルール保持部8に保持されたルールを用いて、座標データ保持部7の各座標点の座標データ(方位および距離)を変更する。また、座標データ変更部10には、前述した“XPOINTMAX”や関数「reset_reference({i,j})」のようなマクロやシステム定義の関数を保持しており、ルールを解釈する際にこれらを利用する。
【0085】
座標データ変更部10は、位置ルール選択部9から送られた命令に従って、座標データを変更した後、後述する画面表示部14へ画面書き換え命令を送る。例えば、位置ルールのルール1が選択され、引数「dis_val」の値が“144”に設定された場合、この選択および設定の条件により、座標データ変更部10は、座標データ保持部7の各座標点の座標データ(方位および距離)を変更する。これにより、図11に示すように、16個の各座標点(座標ID)の配置が等間隔とされ、全体として格子状の構図が形成される。この場合、全ての座標で隣の格子点との距離が引数「dis_val」の値の“144”に設定される。
【0086】
また、例えば、位置ルールとしてルール2が選択され、引数「dis_val」の値が“72”に設定され、更に引数「ratio」の値が“1.24”に設定された場合には、座標データ変更部10が、前述の場合と同様に、この選択および引数の設定の条件によって、座標データ保持部7の各座標点の座標データ(方位および距離)を変更する。これにより、図12に示すように、16個の各座標点(座標ID)の配置が等比的に広げられて、全体として末広がりとなるように構図が形成される。この場合において、間隔の初期値は、引数「dis_val」の値の“72”に設定されており、引数「ratio」の値の“1.24”の比率で間隔が広がっていくようにして、格子点の間隔が設定される。
【0087】
また、例えば、位置ルールとしてルール3が選択され、引数「center_point」の座標点(座標ID)の値が{3,1}に設定され、更に引数「dis_val」の値が“72”に設定された場合には、座標データ変更部10が、前述の場合と同様に、この選択および引数の設定の条件により、座標データ保持部7の各座標点の座標データ(方位および距離)を変更する。これにより、図13に示すように、16個の各座標点の配置として、引数「center_point」の値で示される座標IDが{3,1}の点を中心として、引数「dis_val」の値の“72”が半径差(距離)となるように同心円状に並べられる。この配置の場合、中心点には座標IDが{3,1}の座標点を含む、座標IDが{1,1}〜{4,1}の4個の座標点が位置する。
【0088】
また、同様に、位置ルールとしてルール3が選択され、引数「center_point」の座標点(座標ID)の値が{3,2}に設定され、更に、引数「dis_val」の値として“144”が設定された場合には、図14に示すように、16個の各座標点(座標ID)の配置として、引数「center_point」の値で示される座標IDが{3,2}の点を中心として、引数「dis_val」の値の“144”が半径差となるように同心円状に並べられる。したがって、この場合の配置は、中心点には座標IDが{3,2}の点を含む座標IDが{1,2}〜{4,2}の4個の点が位置し、その下側の同心円上の半円の部分に、座標IDが{1,1}〜{4,1}の4個の点が並べられる。その上側の同じ同心円上の部分には、座標IDが{1,3}〜{4,3}の4個の点が並べられる。そして、座標IDが{1,4}〜{4,4}の4個の点は、更にその上側の同心円上の部分に並べられる。つまり、半径差が“144”となる外側の同心円上の上側の半円部分に座標IDが{1,4}〜{4,4}の4個の点が並べられる。
【0089】
また、図13に示すように配置された状態から、位置ルールとしてルール4が選択され、引数「center_point」の座標点の値が{3,1}に設定され、更に引数「plus_angle」の値が“30”に設定された場合には、引数「center_point」の座標点(座標ID)を回転の中心として、引数「plus_angle」の値だけ時計方向にすべての座標点を回転させるので、図15に示すように、16個の各座標点(座標ID)の配置が、各々の座標点の位置関係が変わらずに回転する。
【0090】
(配色ルール保持部11)
次に、配色ルールについて説明する。配色ルール保持部11は、ある座標点に配置された要素がどのような色を持つかを規定するルールを保持する。このルールは、後述する要素配色変更部13が要素の色を変更する際に用いられる。ここでは、配色ルールは2種類が設けてある。それぞれの配色ルールは、前述した位置ルールと同様に、C言語に似た文法を持つプログラムにより、逐次処理的な手順として記述されている。
【0091】
配色ルールのルール11は、引数「center_point」で与えられる座標点を中心として、座標点の座標IDの第1元の値に合わせて、配置された要素の色の明度を段階的に大きくするか、あるいは小さくするルールである。その場合の明度の大小すなわち濃淡の比率は、引数「ratio」(正の実数値)で与えられる。この配色ルールでは、引数「ratio」が“1”未満の場合、座標IDの第1元の値が引数「center_point」で与えられる座標点より小さい値の座標に配置された要素は濃くされ、大きい値の座標に配置された要素は薄くされる。また、引数「ratio」が“1”を越える場合には、座標IDと要素の色の濃淡の関係は、引数「ratio」が“1”未満の場合と逆の関係となる。
【0092】
なお、ここで、関数「lighten」は、要素配色変更部13が要素データ変更部2を用いて、要素データの属性「色」の値を変えるためのシステム定義関数である。この関数が実行されると、要素データ保持部1に保持された図の要素に対応する表のうち、「位置」属性の値が、この関数の第1の引数の値に一致するものに対して、この関数の第2の引数の値を倍率として、要素を明るくする色を現在値の「色」属性の値から、(L*×power)を計算し、計算した値をL*として「色」属性の値に代入する。
【0093】
図16は、配色ルールのルール11の処理手順を示すフローチャートである。図16のフローチャートを参照し、ルール11による構図の要素に対する配色の処理について説明する。まず、ステップ151において、変数iに“1”を代入する。次に、ステップ152において、引数「center_point」の第1元の値が、変数iに等しいか否かを判定する。引数「center_point」の第1元の値が変数iに等しい場合は、ステップ160に進む。また、引数「center_point」の第1元の値が変数iに等しくない場合、更に、次のステップ153において、引数「center_point」の第1元の値が、変数iより大きいか否かを判定する。
【0094】
このステップ153の判定において、引数「center_point」の第1元の値が変数iより大きい場合、次のステップ154において、引数「center_point」の第1元の値をNとし、引数「ratio」の値を(N−i)乗した値を変数「power」に代入する。そして、ステップ156に進む。一方、ステップ153の判定において、引数「center_point」の第1元の値が変数iより大きくない場合、ステップ155において、引数「center_point」の第1元の値をNとして、引数「ratio」の逆数(1÷「ratio」)の値を(i−N)乗した値を変数「power」に代入する。そして、ステップ156に進む。
【0095】
ステップ156においては、変数jに“1”を代入し、次のステップ157において、システム定義関数「lighten」を、第1の引数を{i,j}とし、第2の引数を変数powerの値として実行し、その結果のデータにより、要素データ保持部1の要素データの色に関する値を更新する。そして、ステップ158において、変数jの値が“YPOINTMAX”と同じであるか否かを判定する。この判定の結果、変数jの値が“YPOINTMAX”と同じでない場合には、ステップ159に進み、変数jをインクリメントして、ステップ157に戻る。そして、ステップ157からの処理を繰り返し行う。
【0096】
また、ステップ158の判定において、変数jの値が“YPOINTMAX”と同じである場合には、続いて、ステップ160において、変数iの値が“XPOINTMAX”と同じであるか否かを判定する。この判定の結果、変数iの値が“XPOINTMAX”と同じでない場合には、次のステップ161に進み、変数iをインクリメントして、ステップ152に戻る。そして、ステップ152からの処理を繰り返し行う。また、ステップ160の判定において、変数iの値が“XPOINTMAX”と同じである場合には、ここでの処理を終了する。
【0097】
配色ルールのルール12は、ある格子点と引数「center_point」で与えられる格子点が画面に対する鉛直線(方位0または180に沿う直線)に対してなす角度から、その格子点に配置された要素の色相を変更するルールである。このルール12においては、引数「center_point」で与えられる格子点に配置された要素の色相は変更されない。
【0098】
ここで、関数「calc_angle」は、第1の引数の格子点から第2の引数の格子点へ向かうベクトルが、方位0に対して何度の角度を成しているかを計算するシステム定義の関数である。このベクトルは、座標データ保持部7に保持された各座標点が持つ「観測対象」,「方位」および「距離」の位置の各属性値からベクトル演算により計算する。また、関数「hue」は、要素配色変更部13が要素データ変更部2を用いて、要素データの属性「色」の値を変えるためのシステム定義の関数である。この関数が実行されると、要素データ保持部2に保持された図の要素に対応する表のうち、「位置」の属性の値が、この関数の第1の引数の値に一致するものに対して、この関数の第2の引数の値から三角関数のtan(angle)を計算し、計算した値をb*/a*として「色」属性に代入する。
【0099】
図17は、配色ルールのルール12の処理手順を示すフローチャートである。図17のフローチャートを参照し、ルール12による構図の要素に対する配色の処理について説明する。まず、ステップ171において、変数jに“1”を代入する。次に、ステップ172において、変数iに“1”を代入する。次に、ステップ173において、引数「center_point」の第1元の値が、変数iに等しくないか否かを判定する。引数「center_point」の第1元の値が変数iに等しい場合は、ステップ174において、更に、引数「center_point」の第2元の値が、変数jに等しくないか否かを判定する。この判定において、引数「center_point」の第2元の値が変数jに等しい場合は、ステップ177に進む。
【0100】
また、ステップ173の判定において、引数「center_point」の第1元の値が変数iに等しくない場合、および、ステップ174の判定において、引数「center_point」の第2元の値が変数jに等しくない場合には、共にステップ175に進み、ステップ175において、システム定義関数「calc_angle」を、第1の引数を{i,j}とし、第2の引数を{i,j−1}として実行し、その結果により得られた方位を示す値を変数「angle」に代入する。次に、ステップ176において、システム定義関数「hue」を、第1の引数を{i,j}とし、第2の引数を変数「angle」の値として実行し、その結果により得られたデータにより、要素データ保持部1の要素データの色に関する値を更新する。
【0101】
そして、ステップ177において、変数iの値が“XPOINTMAX”と同じであるか否かを判定する。変数iの値が“XPOINTMAX”と同じでない場合には、ステップ178に進み、変数iをインクリメントして、ステップ173に戻る。そして、ステップ173からの処理を繰り返し行う。
【0102】
また、ステップ177の判定において、変数iの値が“XPOINTMAX”と同じである場合には、続いて、ステップ179において、変数jの値が“YPOINTMAX”と同じであるか否かを判定する。この判定の結果、変数jの値が“YPOINTMAX”と同じでない場合には、次のステップ180に進み、変数jをインクリメントして、ステップ172に戻る。そして、ステップ172からの処理を繰り返し行う。また、ステップ179の判定において、変数jの値が“YPOINTMAX”と同じである場合には、ここでの処理を終了する。
【0103】
(配色ルール選択部12)
配色ルール選択部12は、配色ルール保持部11が保持しているルール(ルール11,ルール12)からユーザが所望の任意の配色ルールを選択する。その場合において、選択したルールが引数を指定するものである場合には、ユーザがその値を設定する。ユーザが所望するルールを選択し、その引数を設定した場合、配色ルール選択部12が、後述する要素配色変更部13に対して、選択された配色ルールの名前(例えば「rule_11」)と、引数がある場合はその値を渡し、要素の色の変更を行わせる。
【0104】
(要素配色変更部13)
要素配色変更部13は、配色ルール選択部12から渡された配色ルールのルール名と引数から、配色ルール保持部11に保持された該当の配色ルールを読み込んで解釈し、要素データ変更部2の要素データを用いて、各々の要素の色がルールに従ったものになるように要素の色を変更する。
【0105】
(画面表示部14)
画面表示部14は、画面書き換え命令により、座標データ保持部7に保持された座標点のデータおよび要素データ保持部1に保持された要素のデータを解釈して、RGBラスタ画像データに変換し、変換した画像データをディスプレイに表示する。また、図示しない基本オペレーティングシステム処理部の動作と連動して、ポインティングデバイスに連動するカーソルを画面上に表示し、前述した各種の指示/選択の際に座標点や図の要素を直接選択する操作を行うグラフィックユーザインタフェース機能を提供する。
【0106】
また、座標データ保持部7に保持された座標点のうち「方位」および「距離」の設定の基準点となる座標点、すなわち、位置を表す属性の「観測対象」の値が“nil”値である座標点が、ディスプレイの画面上でどこに位置するかを示す情報をユーザが設定し、記憶しておく機能を持つ。記憶された情報は、この画面表示部14が図の要素の描画を行う際に、図の要素の画面上の位置を計算するために用いられる。つまり、座標データ保持部7に保持されたデータと共に用いられて、図の要素の画面上の位置を計算し、図の要素の描画を行う。なお、図の要素を描画する際は、「表示順序」属性の値の小さいものから順次上書きで描画する。ある要素が「テキスト」属性に値を持つ場合は、まず「色」属性と「形状」属性の値にしたがって描画し、その後で「テキスト」属性の値に基づいて、テキストを上書きで描画する。
【0107】
(図印刷部15)
図印刷部15は、ユーザの指示により、座標データ保持部7に保持された座標点のデータおよび要素データ保持部1に保持された要素のデータを解釈して、図示しない印刷装置のために、CMYKラスタ画像データに変換し、変換した画像データを印刷装置に送出し、「紙」または「OHPシート」に印刷する。また、座標データ保持部7に保持された座標点のうち、「方位」および「距離設定」の基準点となる座標点、すなわち位置を表す属性の「観測対象」の値が“nil”値である座標点が、「紙」または「OHPシート」上でどこに位置するかを示す情報をユーザが設定する。この設定値は図印刷部15に記憶される。記憶された情報は、図印刷部15が図の要素の描画を行う際に、図の要素の「紙」または「OHPシート」上の位置を計算するため、座標データ保持部7に保持されたデータと共に用いられる。
【0108】
図の要素を描画する際は、画面表示部14の動作と同様に、「表示順序」属性の値の小さいものから順次上書きで描画する。ある要素が「テキスト」属性に値を持つ場合は、まず、「色」属性と「形状」属性にしたがって描画し、その後で「テキスト」属性の値に基づいてテキストを上書きで描画する。
【0109】
(処理制御部16)
処理制御部16は、前述したように、各々の機能処理部の制御を行い、処理全体の流れを統括する処理を行う。また、ユーザの指示を受け付け、システム全体の起動と終了の処理を行う。この場合に、ユーザ指示が行える各々の処理機能部に対して、指示入力受け付けの時間を順次割り当て、時間が割り当てられた各機能部において、ユーザからの入力があった場合に、その要求による処理が終了するまで他の機能部への割り当てを中断する。
【0110】
このような各々の機能処理部から構成される本実施例の作図装置において、具体的に文書に用いる構図を形成する場合の処理例について説明する。図18は、図の要素が均等間隔の格子の位置に配置されている構図の一例を示す図である。図19は、図18の構図に対して位置ルールのルール2および配色ルールのルール11を適用して構図を変化させた例を示す図である。
【0111】
例えば、文書中において、横軸上に時間の経過を示す図の要素を配置し、縦軸上にそれぞれの時間経過の内容を示すように図の要素が配置される場合、普通の構図では、図18に示すように、均等間隔の格子の位置に配置された16個の図の要素から構成される。このように状態の構図から、例えば、位置ルールとして「ルール2」を選択し、その場合に設定する引数の値として、引数「dis_val」の値として“89”を設定し、引数「ratio」の値として“1.12”を設定した場合、16個の各々の図の要素の配置が等比的に広げられて、時間経過と共にその内容が共に末広がりとなるように、構図が形成される。この場合に、更に、配色ルールとして「ルール11」を選択すると、同じく、時間経過と共に、図の要素の色が濃くなっていくように配色される。この結果、図19に示すような配置と配色を得ることができる。
【0112】
このように、末広がりに合わせて要素の明度を変化させたグラデーションや、色相変化をつけて、図の特定の部分を目立たせるなど構図にあった配色を図の要素に与えることが、位置ルールおよび配色ルールのそれぞれのルールを選択するだけで可能となる。
【0113】
図20は、図の要素が均等間隔の格子の位置に配置されている構図の別の例を示す図である。図21は、図20の構図に対して位置ルールのルール3および配色ルールのルール12を適用して構図を変化させた例を示す図である。
【0114】
例えば、図20に示すように、均等間隔の格子の位置に配置された16個の図の要素から構成される状態から、図の要素を位置決めする位置ルールとして「ルール3」を選択し、その引数として、引数「center_point」の座標点の値として{3,2}を設定し、引数「dis_val」の値として“144”を設定し、更に、配色ルールとして「ルール12」を選択し、そのルールで用いる引数として、引数「enter_point」の座標点の値が{3,2}に設定した場合は、図21に示すように、図の要素が1つの図の要素を中心として、同心円上に配置された配置と配色を得ることができる。
【0115】
このように、表現する内容に応じて、つまり、その構図の中の概念などに合わせて、各々の図の要素を同心円状に配置する場合が適切な場合には、位置ルールとしてルール3を用いることにより、中心概念を表現することができ、その位置に合わせた要素の明度を変化させたグラデーションや、色相変化をつける配色、図の特定の部分を目立たせる配色など構図にあった配色を図の要素に与えることが、それぞれのルールを選択するだけで可能となる。
【0116】
なお、この実施例の作図装置においては、配置可能な座標点(座標ID)をあらかじめ有限個用意し、これらの座標点を2元の座標IDで識別し、その2次元平面上での位置を規則に応じて設定し、各座標に配置された図の要素の2次元平面上での位置を決める方法をとっている。この方法では、各々座標点の座標IDの隣接関係({i,j}と{i+1,j}など)や、同軸関係({i,j}と{i,m})を利用して配置関係および配色関係のそれぞれの規則を設定できるので、例えば、配置座標の座標IDが近い図の要素は「構図にかかわらず、近くに並んで配置する」といったことが容易に可能となる。
【0117】
また、この実施例においては、間隔設定を他の格子点に対する方位と距離による相対的記述で表現している。このため、この方法で配置可能な座標点の並びの等比的設定や等差的設定が容易となる。なお、配置可能座標の2次元平面上での位置を示す方法として、絶対的位置指定や距離だけによる相対的指定など、別の方法をとっても、図の要素を構図に合わせて配置を変えることについては、この実施例と同様の効果を実現できることは明らかである。
【0118】
【発明の効果】
以上の説明から明らかなように、本発明の作図装置によれば、図の要素の配置関係に応じて要素の色を適切に変更した高度な構図が得られるとともに、構図の設定や変更に対するユーザの負担を大幅に軽減するという効果がある。
【図面の簡単な説明】
【図1】図1は本発明の一実施例の作図装置の全体の構成を示すブロック図
【図2】図2は本実施例の作図装置の全体の処理の制御を行う処理制御部の処理の流れを示すフローチャート、
【図3】図3は位置を示す属性値の概念を説明する図、
【図4】図4は位置ルールのルール1による処理手順を示すフローチャート、
【図5】図5は位置ルールのルール2による処理手順を示すフローチャート、
【図6】図6は位置ルールのルール3による処理手順を示す第1のフローチャート、
【図7】図7は位置ルールのルール3による処理手順を示す第2のフローチャート、
【図8】図8は位置ルールのルール3による処理手順を示す第3のフローチャート、
【図9】図9は位置ルールのルール3による処理手順を示す第4のフローチャート、
【図10】図10は位置ルールのルール4による処理手順を示すフローチャート、
【図11】図11は位置ルールのルール1の適用による構図形成の例を説明する図、
【図12】図12は位置ルールのルール2の適用による構図形成の例を説明する図、
【図13】図13は位置ルールのルール3の適用による構図形成の例を説明する図、
【図14】図14は位置ルールのルール3の適用による構図形成の第2の例を説明する図、
【図15】図15は位置ルールのルール4の適用による構図形成の例を説明する図、
【図16】図16は配色ルールのルール11による処理手順を示すフローチャート、
【図17】図17は配色ルールのルール12による処理手順を示すフローチャート、
【図18】図18は図の要素が均等間隔の格子の位置に配置されている構図の一例を示す図、
【図19】図19は図18の構図に対して位置ルールのルール2および配色ルールのルール11を適用して構図を変化させた例を示す図、
【図20】図20は図の要素が均等間隔の格子の位置に配置されている構図の別の例を示す図、
【図21】図21は図20の構図に対して位置ルールのルール3および配色ルールのルール12を適用して構図を変化させた例を示す図である。
【符号の説明】
1…要素データ保持部、2…要素データ変更部、3…要素雛型保持部、4…要素生成指示部、5…要素配置指示部、6…要素削除指示部、7…座標データ保持部、8…位置ルール保持部、9…位置ルール選択部、10…座標データ変更部、11…配色ルール保持部、12…配色ルール選択部、13…要素配色変更部、14…画面表示部、15…図印刷部、16…処理制御部、17…バス。
Claims (2)
- 複数の配置可能点を一意に識別する識別子と各配置可能点の2次元平面上の位置とを対応づけて保持する配置可能点保持手段と、
前記配置可能点の識別子と要素の色を表す情報を含む要素の各属性情報を位置の属性として保持する要素保持手段と、
前記配置可能点の2次元平面上での位置を決定する位置規則を保持する位置規則保持手段と、
前記位置規則を選択する位置規則選択手段と、
選択された位置規則に基づいて前記配置可能点保持手段に保持された各配置可能点の2次元平面上での位置を変更する配置変更手段と、
前記配置変更手段により変更された後の配置可能点の位置関係に基づいて、各配置可能点について、それぞれ隣接する配置可能点の2次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定して前記要素保持手段に保持する配色変更手段と、
前記要素保持手段に保持された情報に基づいて要素の画像を配置可能点に配置した画像を生成する画像生成手段と
を有することを特徴とする作図装置。 - 複数の配置可能点を一意に識別する識別子と各配置可能点の2次元平面上の位置とを対応づけて保持する配置可能点保持手段と、
前記配置可能点の識別子と要素の色を表す情報を含む要素の各属性情報を位置の属性として保持する要素保持手段と、
前記配置可能点の2次元平面上での位置を決定する位置規則を保持する位置規則保持手段と、
前記位置規則を選択する位置規則選択手段と、
選択された位置規則に基づいて前記配置可能点保持手段に保持された各配置可能点の2次元平面上での位置を変更する配置変更手段と、
前記配置変更手段により変更された後の配置可能点の位置関係に基づいて、各配置可能点について、任意に指定した配置可能点の2次元平面上の位置を基準とし、その基準との位置関係に基づいて、図形要素の色を決定して前記要素保持手段に保持する配色変更手段と、
前記要素保持手段に保持された情報に基づいて要素の画像を配置可能点に配置した画像を生成する画像生成手段と
を有することを特徴とする作図装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08601596A JP3601175B2 (ja) | 1996-03-15 | 1996-03-15 | 作図装置 |
US08/730,761 US5798766A (en) | 1995-10-20 | 1996-10-15 | Drawing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08601596A JP3601175B2 (ja) | 1996-03-15 | 1996-03-15 | 作図装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09251548A JPH09251548A (ja) | 1997-09-22 |
JP3601175B2 true JP3601175B2 (ja) | 2004-12-15 |
Family
ID=13874857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08601596A Expired - Fee Related JP3601175B2 (ja) | 1995-10-20 | 1996-03-15 | 作図装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3601175B2 (ja) |
-
1996
- 1996-03-15 JP JP08601596A patent/JP3601175B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09251548A (ja) | 1997-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5798766A (en) | Drawing system | |
US5357603A (en) | Method and system for changing a shape type while maintaining existing graphic characteristics | |
US7975231B2 (en) | Image display updating system, server client system and drawing operation echo back script | |
US6867787B1 (en) | Character generator and character generating method | |
US5892691A (en) | Method, apparatus, and software product for generating weighted deformations for geometric models | |
JPH09111617A (ja) | ニットデザイン方法とニットデザイン装置 | |
US20110063291A1 (en) | Hair meshes | |
JPH06266844A (ja) | ラスタデータ画像とベクトルデータ画像との区別方法及び区別装置 | |
JPH06290237A (ja) | 製品図面作成装置 | |
JP3589254B2 (ja) | 作図装置 | |
JP2828271B2 (ja) | Cadシステムにおける形状生成方式 | |
US7336851B1 (en) | Interactive tool for removal of isolated objects on raster images | |
JPH11102446A (ja) | グラフィックス入力装置 | |
JP3601175B2 (ja) | 作図装置 | |
JP3192066B2 (ja) | 作図方法および作図装置 | |
JP3628523B2 (ja) | 情報処理装置およびパターン生成プログラムを記録した記録媒体 | |
JP3606006B2 (ja) | 画像形成装置およびグラデーション描画方法 | |
JP3589253B2 (ja) | 作図装置 | |
JPH07234949A (ja) | 透視図作成支援方法および透視図作成支援システム | |
CA3081259A1 (en) | System and method for generation of an interactive color workspace | |
JPH1011599A (ja) | チャート図形処理装置 | |
JP2020013390A (ja) | 情報処理装置、情報処理プログラム及び情報処理方法 | |
JPH06215074A (ja) | 図形処理装置 | |
JP3617145B2 (ja) | 作図装置 | |
JP3235432B2 (ja) | 作図方法および作図装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040712 |
|
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: 20040831 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040913 |
|
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: 20071001 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081001 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091001 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101001 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111001 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121001 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121001 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131001 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |