(57)【特許請求の範囲】
【請求項１】
画像パターンと、該画像パターンに関する有効な範囲を示す有効幅および有効高さと該画像パターンの格納領域における前記有効な範囲の位置を表す水平オフセットおよび垂直オフセットとを含む有効範囲情報とを記憶する記憶手段と、
前記記憶手段に記憶された画像パターンの描画を行う描画手段と、
最初に描画された第１の画像パターンと次に描画される第２の画像パターンとが重複していることを、前記第１の画像パターンに関する前記有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第１の画像パターンの有効な範囲と、前記第２の画像パターンに関する有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第２の画像パターンの有効な範囲との重複により判定する重複判定手段とを備え、
前記重複判定手段により前記第１の画像パターンと前記第２の画像パターンとが重複すると判定された場合には、前記カーソルの移動が有るか否かの判断処理を行い、
前記重複判定手段により前記第１の画像パターンと前記第２の画像パターンとが重複しないと判定された場合には、前記描画手段は、前記カーソルにより指定された座標情報に基づいて前記第２の画像パターンの描画を行い、該座標情報を、さらなる次に連続して描画する第３の画像パターンを描画しようとする位置の座標情報とし、前記第２の画像パターンを前記第１の画像パターンとし、前記第３の画像パターンを前記第２の画像パターンとして、前記重複判定手段により前記第２の画像パターンと第３の画像パターンとが重複するか否かを判定することを特徴とする画像処理装置。
【請求項２】
前記記憶手段には、前記有効範囲情報が各々の画像パターンごとに記憶されていることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記重複判定手段は、前記カーソルの移動１ドット毎に、前記第１の画像パターンと前記第２の画像パターンとが重複するか否かを判定することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記有効幅および有効高さは画像パターンの有効な範囲を示す幅および高さであり、前記水平オフセットおよび垂直オフセットは画像パターンの格納領域の左上角のドットから水平および垂直に何ドット目からが有効かを表す値であることを特徴とする請求項１から請求項３の何れか１項に記載の画像処理装置。
【請求項５】
画像パターンと、該画像パターンに関する有効な範囲を示す有効幅および有効高さと該画像パターンの格納領域における前記有効な範囲の位置を表す水平オフセットおよび垂直オフセットとを含む有効範囲情報とを記憶する記憶手段に記憶された画像パターンの描画を行う描画工程と、
最初に描画された第１の画像パターンと次に描画される第２の画像パターンとが重複していることを、前記第１の画像パターンに関する前記有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第１の画像パターンの有効な範囲と、前記第２の画像パターンに関する有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第２の画像パターンの有効な範囲との重複により判定する重複判定工程とを備え、
前記重複判定工程により前記第１の画像パターンと前記第２の画像パターンとが重複すると判定された場合には、前記カーソルの移動が有るか否かの判断処理を行い、
前記重複判定工程により前記第１の画像パターンと前記第２の画像パターンとが重複しないと判定された場合には、前記描画工程は、前記カーソルにより指定された座標情報に基づいて前記第２の画像パターンの描画を行い、該座標情報を、さらなる次に連続して描画する第３の画像パターンを描画しようとする位置の座標情報とし、前記第２の画像パターンを前記第１の画像パターンとし、前記第３の画像パターンを前記第２の画像パターンとして、前記重複判定工程により前記第２の画像パターンと第３の画像パターンとが重複するか否かを判定することを特徴とする画像処理方法。
【請求項６】
画像パターンをカーソルの移動の入力に応じて連続的に描画する画像処理装置であって、
画像パターンと、該画像パターンの一部分からなる有効な範囲を示す有効範囲情報とを記憶する記憶手段と、
前記記憶手段に記憶された画像パターンの描画を行う描画手段と、
最初に描画された第１の画像パターンと次に描画される第２の画像パターンとが重複していることを、前記第１の画像パターンに関する前記有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第１の画像パターンの有効な範囲と、前記第２の画像パターンに関する有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第２の画像パターンの有効な範囲との重複により判定する重複判定手段とを備え、
前記重複判定手段により前記第１の画像パターンと前記第２の画像パターンとが重複しないと判定された場合には、前記描画手段は、前記カーソルにより指定された座標情報に基づいて前記第２の画像パターンの描画を行うことを特徴とする画像処理装置。
【請求項７】
前記重複判定手段により前記第１の画像パターンと前記第２の画像パターンとが重複しないと判定された場合には、該座標情報を、さらなる次に連続して描画する第３の画像パターンを描画しようとする位置の座標情報とし、前記第２の画像パターンを前記第１の画像パターンとし、前記第３の画像パターンを前記第２の画像パターンとして、前記重複判定手段により前記第２の画像パターンと第３の画像パターンとが重複するか否かを更に判定することを特徴とする請求項６に記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えば種々の所定の画像パターン等を、所定の順番でかつ所定の相対位置関係に従って描画する画像処理装置及びその方法に関する。
【０００２】
【従来の技術】
従来、種々のパターンを描画させる画像処理装置において、複数の異なるパターンを並べて連続的に描画させることが行われていた。その画像処理装置は、表示および印刷用の画像バッファを備え、表示画面上のカーソルを移動させて画像書き込みを指示すると、カーソル位置を基準にして画像バッファに所望の画像パターンを描き込むというものであった。
【０００３】
図８に従来の装置のブロック図を示す。上記装置では、カーソル位置入力ブロック２０１に対してカーソル位置を入力する。画像バッファ２０５は水平および垂直方向にドットが並んだマトリクス形式をとるもので、ドットのＯＮ，ＯＦＦによって画像のパターンを表現するものであり、その上の位置は画像バッファ２０５の左上角のドットを原点（０，０）として右方向の座標をｘ、下方向の座標をｙとして指定することができる。カーソル位置入力ブロック２０１では、上下左右方向のカーソル移動を指示するカーソルキーによって画像バッファ２０５上の位置（ｘ，ｙ）を指定する。指定されたカーソル位置は表示装置２０２に送られ、画面上に画像バッファ２０５の内容と同時にカーソルとして表示される。画像パターン選択ブロック２０３では、画像バッファ２０５に入力したい画像パターンを指定する。選択した画像パターンは、画像入力ブロック２０４に入力される。画像入力ブロック２０４には、同時にカーソル位置入力ブロック２０１からカーソル位置も入力されており、画像バッファ２０５に対して画像パターン選択ブロック２０３から入力された画像パターンを、カーソル位置によって指定された画像バッファ２０５上の特定の位置に描画する。
【０００４】
図９（ａ），（ｂ）に、画像パターン選択ブロック２０３によって画像パターンＰ１を選択し、画像バッファ２０５上のＤ１の位置をカーソルで指定して画像パターンＰ１を入力し、更に画像バッファ２０５上のＤ２の位置をカーソルで指定して画像パターンＰ１を入力した例を示す。画像パターンは、カーソルで指定した画像バッファ２０５上の位置に対して、画像パターンの左上角のドットをその点に合わせ込むように描画する。このような処理手順によって、画像バッファ２０５の任意の位置に所望の画像パターンを描画することができる。
【０００５】
また、図８の装置を発展させてカーソルを連続的に移動させた場合に、図１１（ｂ）にあるように、カーソルが移動した軌跡ｃ（矢印で表されている）に従って大きさが同じ画像パターンＰ１を画像バッファ２０５に連続的に描画させることも可能である。このような装置のブロック図を１０に示す。この装置は、図８で示した装置にカーソル移動量計算ブロック２０６が加わったものである。図３−１のカーソル位置入力ブロック２０１では、上下左右方向を指定するカーソル移動キーによって画像バッファ２０５上のカーソル位置（ｘ，ｙ）を指定し、上下左右にカーソルを１ドット毎に移動させる。指定されたカーソル位置は表示装置２０２に送られ画面上に画像バッファ２０５の内容と同時にカーソルとして表示される。またそれと同時にカーソルの移動量がカーソル移動量計算ブロック２０６に送られ、垂直方向および水平方向の移動量が計算される。画像パターン選択ブロック２０３では、画像バッファ２０５に入力したい画像を指定し、かつ画像の入力開始および終了を指定する。選択した画像パターンは、画像入力ブロック２０４に入力される。画像入力ブロック２０４には、同時にカーソル移動量計算ブロック２０６からカーソル位置も入力されており、画像パターン選択ブロック２０３から画像の描画開始が指示されると、画像バッファ２０５に対して画像パターン選択ブロック２０３から入力された画像パターンを、画像バッファ２０５上のカーソル位置によって指定された位置に描画する役割を果たす。また、画像の描画終了が画像パターン選択ブロック２０３から指示されると、一連の画像パターンの描画が終了する。
【０００６】
図１２に上記装置の処理の流れを表すフローチャートを示す。本装置は先ず描画の開始を装置に指示することから処理を開始する。
【０００７】
先ず、ステップＳ３０１において、画像バッファ２０５に描画する画像パターンを選択して、画像パターン選択ブロック２０３に入力する。入力した結果はカーソル移動量計算ブロック２０６に入力される。次に、ステップＳ３０２において、カーソルの移動量ｄｘを画像パターンＰ１の幅ｗによって、移動量ｄｙを画像パターンの高さｈによって初期化する。ｄｘおよびｄｙはカーソル移動量計算ブロック２０６内に確保されている作業領域である。次にステップＳ３０３では、移動量ｄｘの絶対値が画像パターンＰ１の幅ｗと等しいか、または移動量ｄｙの絶対値が画像パターンＰ１の高さｈと等しいか否かを判別し、等しければステップＳ３０４を実行し、等しくなければステップＳ３０６へ進む。ステップＳ３０４では、画像パターンＰ１の左上角のドットをカーソル位置に合わせ込むようにして画像バッファ２０５に画像パターンＰ１を描画し、ステップＳ３０５ではカーソル移動量ｄｘおよびｄｙを共に０で初期化する。
【０００８】
次にステップＳ３０６では、カーソル位置入力ブロック２０１に対してカーソル移動の入力があったか否かを判別し、なければステップＳ３１４で画像パターン選択ブロック２０３から画像描画終了の指示があったか否かを判別する。それらのどちらもなければ、何れか一方が入力されるまでステップＳ３０６とステップＳ３１４を繰り返す。ステップＳ３０６においてカーソル移動の入力があった場合は、ステップＳ３０７，ステップＳ３０８，ステップＳ３０９においてそれが上下左右の何れの方向のカーソル移動か判別し、右移動ならばステップＳ３１０においてカーソル移動量ｄｘの値に１を加え、左移動ならばステップＳ３１１においてカーソル移動量ｄｘから１を減じ、下移動ならばステップＳ３１２においてカーソル移動量ｄｙに１を加え、それ以外即ち上移動であればステップＳ３１３においてカーソル移動量ｄｙから１を減じてステップＳ３０３へ戻る。
【０００９】
以上の一連のカーソル移動処理と描画処理を繰り返した後、ステップＳ３１４において画像の描画終了の指示が画像パターン選択ブロック２０３から入力されたことを検出すると処理を終了する。
【００１０】
以上の処理手順に従って画像パターンを画像バッファ２０５に描画した例を図１１に示す。ｃはカーソルの移動した軌跡であり、それに沿って画像パターンＰ１は隙間なく画像バッファ２０５に描画される。Ｄ１は描画の開始が指示された時のカーソルの位置であり、まずこの位置にパターンＰ１が描画され、移動量ｄｘおよびｄｙが共に０に初期化される。その後カーソル位置をＤ１からＤ２へ１ドットづつ移動させると、移動量ｄｘがパターンＰ１の幅ｗと等しくなり、その結果位置Ｄ２にパターンＰ１が描画される。以上の描画処理が、カーソルを移動させる毎に繰り返され、位置Ｄ５に達して画像パターンＰ１をバッファ２０５に描画した後、描画終了を指示することで一連の描画が終了する。
【００１１】
なお、上記装置の説明において画像バッファ２０５に対して描画する画像パターンＰ１は１種類に限定したが、パターンのデザインは異なってもそれらのパターンの幅と高さが同じであれば、同様のカーソル移動量の計算方法で図１３のように、一連の手順において異なる画像パターンＰ１とＰ２とを交互に描画することも可能であることは言うまでもない。
【００１２】
【発明が解決しようとする課題】
しかし、上記装置における従来の方法では、カーソルの移動量の計算を単純にするために一連の画像パターンは全て同じ大きさでなければならなかった。また画像パターンをカーソルの移動軌跡上に沿って重なることなく描画するために、画像パターンのデザインによっては画像パターンを描画した際にパターン相互の距離が著しく離れて見える場合があり、これを避ける為には図５の画像パターンＰ１のようなデザインを避けて画像パターンの矩形いっぱいにデザインパターンを配置せねばならずパターンデザイン上の大きな制約を生む原因となっていた。
【００１３】
本発明は上記従来例に鑑みてなされたもので、画像パターンのデザインを自由にでき、そのパターンを用いて画像を作成することが容易にできる画像処理装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明の画像処理装置は次のような構成からなる。
画像パターンと、該画像パターンに関する有効な範囲を示す有効幅および有効高さと該画像パターンの格納領域における前記有効な範囲の位置を表す水平オフセットおよび垂直オフセットとを含む有効範囲情報とを記憶する記憶手段と、
前記記憶手段に記憶された画像パターンの描画を行う描画手段と、
最初に描画された第１の画像パターンと次に描画される第２の画像パターンとが重複していることを、前記第１の画像パターンに関する前記有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第１の画像パターンの有効な範囲と、前記第２の画像パターンに関する有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第２の画像パターンの有効な範囲との重複により判定する重複判定手段とを備え、
前記重複判定手段により前記第１の画像パターンと前記第２の画像パターンとが重複すると判定された場合には、前記カーソルの移動が有るか否かの判断処理を行い、
前記重複判定手段により前記第１の画像パターンと前記第２の画像パターンとが重複しないと判定された場合には、前記描画手段は、前記カーソルにより指定された座標情報に基づいて前記第２の画像パターンの描画を行い、該座標情報を、さらなる次に連続して描画する第３の画像パターンを描画しようとする位置の座標情報とし、前記第２の画像パターンを前記第１の画像パターンとし、前記第３の画像パターンを前記第２の画像パターンとして、前記重複判定手段により前記第２の画像パターンと第３の画像パターンとが重複するか否かを判定する。
【００１５】
あるいは、次のような構成からなる。
画像パターンをカーソルの移動の入力に応じて連続的に描画する画像処理装置であって、
画像パターンと、該画像パターンの一部分からなる有効な範囲を示す有効範囲情報とを記憶する記憶手段と、
前記記憶手段に記憶された画像パターンの描画を行う描画手段と、
最初に描画された第１の画像パターンと次に描画される第２の画像パターンとが重複していることを、前記第１の画像パターンに関する前記有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第１の画像パターンの有効な範囲と、前記第２の画像パターンに関する有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第２の画像パターンの有効な範囲との重複により判定する重複判定手段とを備え、
前記重複判定手段により前記第１の画像パターンと前記第２の画像パターンとが重複しないと判定された場合には、前記描画手段は、前記カーソルにより指定された座標情報に基づいて前記第２の画像パターンの描画を行う。
【００１６】
また、本発明の画像処理方法は次のような構成からなる。
画像パターンと、該画像パターンに関する有効な範囲を示す有効幅および有効高さと該画像パターンの格納領域における前記有効な範囲の位置を表す水平オフセットおよび垂直オフセットとを含む有効範囲情報とを記憶する記憶手段に記憶された画像パターンの描画を行う描画工程と、
最初に描画された第１の画像パターンと次に描画される第２の画像パターンとが重複していることを、前記第１の画像パターンに関する前記有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第１の画像パターンの有効な範囲と、前記第２の画像パターンに関する有効範囲情報およびオペレータにより入力されたカーソルの位置の座標情報に基づく前記第２の画像パターンの有効な範囲との重複により判定する重複判定工程とを備え、
前記重複判定工程により前記第１の画像パターンと前記第２の画像パターンとが重複すると判定された場合には、前記カーソルの移動が有るか否かの判断処理を行い、
前記重複判定工程により前記第１の画像パターンと前記第２の画像パターンとが重複しないと判定された場合には、前記描画工程は、前記カーソルにより指定された座標情報に基づいて前記第２の画像パターンの描画を行い、該座標情報を、さらなる次に連続して描画する第３の画像パターンを描画しようとする位置の座標情報とし、前記第２の画像パターンを前記第１の画像パターンとし、前記第３の画像パターンを前記第２の画像パターンとして、前記重複判定工程により前記第２の画像パターンと第３の画像パターンとが重複するか否かを判定する。
【００１８】
【作用】
上記構成により、画像パターンの実質的な有効領域を基にして画像パターン間の重複を調べて画像パターンを画像バッファに格納あるいは表示するため、画像パターンとして所望のデザインが可能となる。
【００１９】
【実施例】
以下、図面に基づいて、本発明の実施例である画像処理装置を詳細に、かつ具体的に説明する。
【００２０】
図１は、本発明の特徴を最も良く表す図面である。図において、１は中央演算処理装置（ＣＰＵ）であり、ＲＯＭ２またはＲＡＭ３に格納されたプログラムを実行し、装置全体を制御する。２は読み出し専用メモリ（ＲＯＭ）であり、プログラムやデータを格納しておく。３は読み書き可能なメモリ（ＲＡＭ）であり、プログラムやデータ等を記憶する。ＲＡＭ３には画像バッファ３１が含まれるが、画像バッファ３１はＲＡＭ３とは別個に設けられるものであってもよい。４は外部に増設された読み出し専用メモリ（外部ＲＯＭ）である。５はキーボード制御装置（ＫＢＣ）、６はキーボード（ＫＢ）であり、オペレータによる入力がなされる。ＫＢ６には、キーボードのほか、マウス等のポインティングデバイスを含めることもできる。７は表示制御装置（ＣＲＴＣ）、８は表示装置（ＣＲＴ）であり、画像バッファ３１内の画像データのほか、種々のデータを表示する。９は周辺装置制御装置（ＰＫＣ）であり、外部記憶装置（ＦＤおよびＨＤ）１０を制御する。外部記憶装置１０には、プログラムや画像データなど、大容量を要するデータ類が格納されている。１１は印刷装置（ＰＲＴ）であり、画像データ他、種々のデータなどを印刷出力する。１２はそれらデバイス間のデータの送受信を行うためのシステムバスである。
【００２１】
本装置のプログラムは、ＲＯＭ２あるいはＲＡＭ３上に存在し、ＣＰＵ１がシステムバスを通じて逐次プログラムをＲＯＭ２あるいはＲＡＭ３から読み出しつつ目的の処理を行う。図２及び図３は、本実施例の画像処理装置による制御手順のフローチャートを示している。かかるフローチャートを使用して、本実施例の装置の動作を以下順をおって説明する。なお、レジスタは、ＣＰＵ１またはＲＡＭ３内の領域である。
【００２２】
図２及び図３のフローチャートは、先ず画像処理装置において描画の開始を指示することから開始する。
【００２３】
先ずステップＳ５０１では、カーソルのｘ座標値をレジスタＲ１１およびＲ１２に設定し、ｙ座標値をレジスタＲ１３およびＲ１４に設定する。
【００２４】
次にステップＳ５０２では、指定された一連の画像パターンの先頭のパターンをレジスタＲ１に格納する。この画像パターンは、本来の画像パターンとそれに対応するマスクパターンとを指す。各々の画像パターンは図４に示すような形のデータとしてＲＯＭ２あるいはＲＡＭ３あるいは外部ＲＯＭ４に格納されており、ＣＰＵ１によってシステムバス１２を通してその値を読み込むことができる。各々の画像パターンを格納してあるデータの先頭には、そのデータ中に格納されている画像パターンの数が格納されている。その値は１以上の値であれはよく特に制限はない。またそれ以降には、各パターンのアドレスがパターンの数分だけ格納されている。各アドレスは、各パターンの有効幅，有効高さ，水平オフセット値，垂直オフセット値，パターンの実体，パターンのマスクの各データが格納されている領域を指している。このアドレス参照することにより、本データ中に格納されている複数のパターンデータを順番に参照することが可能となる。水平オフセット値，垂直オフセット値，有効幅，有効高さの例を図５に示す。パターンＰ１に格納されているパターンの実体は、パターンの格納領域のある一部分を使用して格納されている。パターンの実体として有効な範囲を示す幅および高さが有効幅および有効高さであり、図５のｗ１がパターンＰ１の有効幅でありｈ１がパターンＰ１の有効高さである。また、パターンの格納領域の左上角のドットから水平および垂直に何ドット目からが有効かを表す値が水平オフセット値および垂直オフセット値である。図５のｐ１がパターンＰ１の水平オフセット値でありｑ１がパターンＰ１の垂直オフセット値である。すなわち、本実施例の装置には、画像パターンとして、その実質的に有効な領域を示すデータも格納されている。図４のデータから画像パターンを選択した場合は、最初のパターンはＰ１であり、パターンＰ１の実体とパターンＰ１のマスクがレジスタＲ１に格納されることになる。なお、レジスタＲ１はＣＰＵ１あるいはＲＡＭ３上に存在する作業領域である。
【００２５】
次にステップＳ５０３では、最初のパターンの水平オフセット値をレジスタＲ２へ、垂直オフセット値をレジスタＲ３へ、有効幅をレジスタＲ４へ、有効高さをレジスタＲ５へ格納する。
【００２６】
次にステップＳ５０４では、次のパターンをレジスタＲ６に設定する。図４のデータから画像パターンを選択した場合は、パターンＰ１の実体およびマスクがステップＳ５０２においてレジスタＲ１に格納されているので、その次のパターンであるパターンＰ２の実体およびマスクがレジスタＲ６に格納されることになる。なお、パターンが１つしか定義されていない画像パターンを選択したり、一連のパターン描画処理を進めるうちに次のパターンが存在しなくなった場合は、最初のパターンをレジスタＲ６に設定するようにする。
【００２７】
次にステップＳ５０５では、レジスタ６にセットしたパターンの水平オフセット値をレジスタＲ７へ、垂直オフセット値をレジスタＲ８へ、有効幅をレジスタＲ９へ、有効高さをレジスタＲ１０へ格納する。この場合も同様に、パターンが１つしか定義されていない画像パターンを選択したり、一連のパターン描画処理を進めるうちに次のパターンが存在しなくなった場合は、最初のパターンの値を各々のレジスタに設定するようにする。
【００２８】
次にステップＳ５０６では、レジスタＲ１のマスクパターンをレジスタＲ１１およびＲ１３によって指定される画像バッファ２０５のカーソル位置に描画する。マスクパターンとは、画像パターンを描画する前に画像バッファ上の必要な領域をＯＦＦ（白）でクリアする為に用意するパターンである。この時の描画のＯＮ，ＯＦＦは、各ドット毎に以下の表１の規則を適用して処理する。例えば、画像バッファの内容がＯＦＦ（白画素）の部分にマスクパターンのＯＮ（黒画素）の部分を描くと、その部分はＯＦＦ（白）となる。
【００２９】
【表１】
0003591863.tif 000002
なお、図５におけるマスクパターンは、描画する画像の反転パターンとして定義されているが、画像バッファ上の必要な領域をＯＦＦするという処理を行う限り、必ずしもこのように定義する必要はない。
次にステップＳ５０７では、レジスタＲ１の画像パターンをレジスタＲ１１およびＲ１３によって指定される画像バッファ２０５のカーソル位置に描画する。この時の描画のＯＮ，ＯＦＦは、各ドット毎に以下の表２の規則を適用して処理する。
【００３０】
【表２】
0003591863.tif 000003
図５（ｂ）のＭ１がマスクパターン、図５（ａ）のＰ１が画像パターンである。ステップＳ５０６においてマスクパターンＭ１をあらかじめ表１の規則に則って画像バッファ２０５に書き込み、その後画像パターンＰ１を表２の規則に則って画像バッファ２０５の同じ位置に書き込むことで、画像パターンＰ１のドットがＯＮの部分のみを画像バッファ２０５に反映させることができる。
【００３１】
次にステップＳ５０８では、レジスタＲ１に格納されているパターンとレジスタＲ６に格納されているパターンとの重なりを以下の式によって判定する。
【００３２】
ｘｌｔ＝ｍａｘ（ｘ１＋ｐ１，ｘ２＋ｐ２）
ｙｌｔ＝ｍａｘ（ｙ１＋ｑ１，ｙ２＋ｑ２）
ｘｒｂ＝ｍｉｎ（ｘ１＋ｐ１＋ｗ１−１，ｘ２＋ｐ２＋ｗ２−１）
ｙｒｂ＝ｍｉｎ（ｙ１＋ｑ１＋ｈ１−１，ｙ２＋ｑ２＋ｈ２−１）
ただし、ｘ１はレジスタＲ１１に格納されているｘ座標値、ｙ１はレジスタＲ１３に格納されているｙ座標値、ｐ１はレジスタＲ２に格納されている水平オフセット値、ｑ１はレジスタＲ３に格納されている垂直オフセット値、ｗ１はレジスタＲ４に格納されている有効幅値、ｈ１はレジスタＲ５に格納されている有効高さ値、ｘ２はレジスタＲ１２に格納されているｘ座標値、ｙ２はレジスタＲ１４に格納されているｙ座標値、ｐ２はレジスタ７に格納されている水平オフセット値、ｑ２はレジスタＲ８に格納されている垂直オフセット値、ｗ２はレジスタＲ９に格納されている有効幅値、ｈ２はレジスタＲ１０に格納されている有効高さ値であり、左上隅を座標原点とするとした時に、ｘｌｔ≦ｘｒｂかつｙｌｔ≦ｙｒｂであれば２つのパターンには重なりありとみなし、上記条件を満たさなければ重なりはないと見なす。この判定式によって、２つのパターンの有効幅および有効高さによって指定される領域の重なりの有無が判定される。直感的にはｘｌｔ，ｙｌｔは、それぞれ２つの画像パターンの左上隅のｘ座標，ｙ座標のうち大きい方の値であり、ｘｒｂ，ｙｒｂは、それぞれ２つの画像パターンの右下隅のｘ座標，ｙ座標のうち小さい方の値である。図７は、２つのパターンが重なる場合の上記式によるｘｌｔ，ｙｌｔ，ｘｒｂ，ｙｒｂの関係を示した例である。
【００３３】
次にステップＳ５０９では、ステップＳ５０８での判定結果を参照し、判定の結果重なりがあるとみなされた場合は図３のステップＳ５１１に進み、重なりがないと判定された場合は、ステップＳ５１０に処理を進める。
【００３４】
ステップＳ５１０では、レジスタＲ６の画像パターンをレジスタＲ１へ複写し、レジスタＲ７の値をレジスタＲ２へ複写し、レジスタＲ８の値をレジスタＲ３へ複写し、レジスタＲ９の値をレジスタＲ４へ複写し、レジスタＲ１０の値をレジスタＲ５へ複写し、レジスタＲ１２の値をレジスタＲ１１へ複写し、レジスタＲ１４の値をレジスタＲ１３へ複写した後、ステップＳ５０４へ戻って、ステップＳ５０４からステップＳ５０８までの一連の処理によって、画像バッファ２０５に画像パターンを描画する。
【００３５】
また、ステップＳ５１１では、本装置のＫＢ６からカーソル移動の入力があったか否かを判別し、なかった場合はステップＳ５１９においてＫＢ６から描画終了の入力があったか否かを判別し、その入力もなかった場合はステップＳ５１１へ戻って、それら何れかの入力がＫＢ６からあるまで処理を繰り返す。
【００３６】
ステップＳ５１１においてカーソル移動の入力がＫＢ６からあった場合は、ステップＳ５１２，ステップＳ５１３，ステップＳ５１４においてそのカーソル移動が上下左右何れかの方向かを判別し、右方向へのカーソル移動ならばステップＳ５１５においてレジスタＲ１２のカーソルのｘ座標値に１を加え、左方向へのカーソル移動ならばステップＳ５１６においてレジスタＲ１２のカーソルのｘ座標値から１を減じ、下方向へのカーソル移動ならばステップＳ５１７においてレジスタＲ１４のカーソルのｙ座標値に１を加え、それ以外即ち上方向へカーソル移動であればステップＳ５１８においてレジスタＲ１４のカーソルのｙ座標値から１を減じて、図２のステップＳ５０８に戻り、パターンの重なりを判定し、処理を繰り返す。
【００３７】
ステップＳ５１９において、描画終了の入力がＫＢ６からあった場合は、一連の処理を終了する。尚、描画開始キー，カーソルの上下左右キー，描画終了キーは、ＫＢ６上の特定のキーが割り当てられているものとし、それらの内の何れかが押下されると各々のキーに対応したコードがＫＢＣ５に伝達され、それをＣＰＵ１がシステムバス１２を介して検出することで、押下されたキーを判別することができる。
【００３８】
以上のようにして描画された画像は、ＣＲＴ８に表示されるか、あるいはプリンタ１１から印刷出力される。また、外部記憶装置１０に格納することもできる。ＣＲＴ８またはプリンタ１１から出力する場合、画像バッファ２０５は表示又は印刷される画面に対応しており、特に表示の場合には、カーソル移動は画像バッファ内のみならず、対応する位置にカーソルが表示される。
【００３９】
以上の一連の処理によって、画像パターンの実質的な大きさによりパターンを重複を判定するため、画像処理装置においてパターンのデザイン上の制約を排除し、カーソルの移動軌跡上に任意のデザインのパターンをバランスよく描画することが可能となり、パターンのデザインや大きさが異なるような複数のパターンを連続的に描画することが可能となる。
【００４０】
尚、本実施例ではカーソルの位置に対してパターンの左上角のドット合わせ込むようにパターンを描画したが、同様の方法でパターン上の任意のドットをその時のカーソルの位置に合わせ込むような描画も、パターンの描画方法や２つのパターンの重なり判定の際にカーソルの座標に一定の値を加える等して容易に実現できることは言うまでもない。
【００４１】
さらに、図４のデータは予め設定されているものとしたが、例えば所定の矩形内にユーザにより適当に描かれた画像パターンを走査することで、周縁の余白を除いた実質的なパターンの大きさ、すなわち有効幅，有効高さ，水平垂直オフセットを自動的に調べることもできる。この場合には、ユーザはパターンとしてパターンの実体を定義すればよく、図４の残りのフィールドは走査により得られた値が対応する領域にセットされる。
【００４２】
尚、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用しても良い。また、本発明はシステム或は装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。
【００４３】
【発明の効果】
以上説明したように、本発明に係る画像処理装置は、パターンのデザイン上の制約を排除し、カーソルの移動軌跡上に任意のデザインのパターンをバランスよく描画することが可能となり、パターンのデザインや大きさが異なるような複数のパターンを連続的に描画することが可能となるという効果がある。
【００４４】
【図面の簡単な説明】
【図１】本実施例の画像処理装置の概略構成図である。
【図２】本実施例の画像処理装置の処理の流れを表すフローチャートである。
【図３】本実施例の画像処理装置の処理の流れを表すフローチャートである。
【図４】本実施例の画像処理装置における画像パターンの格納形式を表す図である。
【図５】本実施例の画像処理装置によって用いられる画像パターンの例を示す図である。
【図６】本実施例の画像処理装置によって画像パターンを画像バッファに描画した例を示す図である。
【図７】本実施例の画像処理装置によるパターンの重なりを判定する例を示す図である。
【図８】従来の画像処理装置のブロック図である。
【図９】従来の画像処理装置によって画像パターンを画像バッファに描画した例を示す図である。
【図１０】従来のパターンを連続に描画する為の画像処理装置のブロック図である。
【図１１】従来のパターンを連続的に描画する為の画像処理装置によって画像パターンを画像バッファに連続に描画した例を示す図である。
【図１２】従来の画像処理装置の処理の流れを表すフローチャートである。
【図１３】従来のパターンを連続的に描画する為の画像処理装置によって２つの異なる画像パターンを画像バッファに連続に描画した例を示す図である。
【図１４】従来の画像処理によって画像パターンを画像バッファに描画した際に、画像パターンが離れてしまう例を示す図である。
【図１】
0003591863.tif 000004
【図２】
0003591863.tif 000005
【図３】
0003591863.tif 000006
【図４】
0003591863.tif 000007
【図５】
0003591863.tif 000008
【図６】
0003591863.tif 000009
【図７】
0003591863.tif 000010
【図８】
0003591863.tif 000011
【図９】
0003591863.tif 000012
【図１０】
0003591863.tif 000013
【図１１】
0003591863.tif 000014
【図１２】
0003591863.tif 000015
【図１３】
0003591863.tif 000016
【図１４】
0003591863.tif 000017