(57)【特許請求の範囲】
【請求項１】
各水平走査線上の図形の外形線の座標を始点および終点の座標として検出し、この座標から水平方向のベクトルデータを生成し、
重なる２つの図形を描画する場合、重なり部分の境界線の座標を終点および始点を兼ねる座標とし、
生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードを割り当て、下位１２ビットにそれぞれの座標データを割り当てた状態でメモリに格納し、
該メモリに格納されたベクトルデータによって定まる長さの直線を指定された色で各水平走査線毎に順次描画することを特徴とする図形描画方法。
【請求項２】
各水平走査線上の図形の外形線の座標を始点および終点の座標として検出し、この座標から水平方向のベクトルデータを生成し、重なる２つの図形を描画する場合、重なり部分の境界線の座標を終点および始点を兼ねる座標とするデータ生成手段と、
生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードが割り当てられ、下位１２ビットにそれぞれの座標データが割り当てられた状態で上記ベクトルデータを格納する記憶手段と、
該記憶手段に格納されたベクトルデータによって定まる長さの直線を指定された色で各水平走査線毎に順次描画する直線描画手段と、
を備えていることを特徴とする図形描画システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、表示画面上に任意の図形を指定された色によって塗り込んで描画する図形描画方法および図形描画システムに関するものである。
【０００２】
【従来の技術】
従来、画像表示装置において描画された任意の図形内を所望の色に着色する場合、着色すべき領域を閉空間とする境界線（外形線）の色を指定し、塗り込みを開始する座標を１点だけ指定する方法が一般的であった。
【０００３】
このような方法で色の塗り込みを行う場合、描画ソフトウェアのエディタで、境界色、塗り込み色、塗り込み開始座標を主なデータとして入力すると、実際の塗り込みの処理時には、これらのデータがランタイムに渡される。ランタイムは、これらのデータに基づいて、塗り込み開始座標から、境界色を検出しながら塗り込みを行っていく。
【０００４】
【発明が解決しようとする課題】
ところが、上記の図形描画方法では、境界線の一部が欠落していることによって、塗り込むべき領域が閉空間を形成していないとき、ランタイムが、塗り込みの最大領域を全表示画面のサイズとして認識するため、その状態で塗り込みを行うと、その欠落部から色が漏れ出てしまう。
【０００５】
また、上記のような塗り込み領域検出型の図形描画方法では、境界の検出と塗り込みとを繰り返すため、塗り込みが完了しないと図形の大きさが定まらない。このため、図６（ａ）および（ｂ）に示すような重なり合う２つの図形の場合、重なりの部分の境界線がいずれの図形の境界線であるかを検出できないので、これらの図形における重なりの順序を特定することができない。また、重なり合う図形の色が異なる場合、一方から他方の図形へ色漏れが生じてしまう。
【０００６】
しかも、環状図形のように中空部分を含む図形の場合、中空部分を含む図形内部を全て塗り込んだ後で中空部を抜き取らなければならない。これは、ポリゴンの場合でも同様である。
【０００７】
さらに、塗り込み領域検出型の図形描画方法では、処理が遅いという欠点もある。
【０００８】
本発明は、上記の事情に鑑みてなされたものであって、重なり図形の塗り込みを可能にし、かつ色漏れがなく高速で描画を行う図形描画方法および図形描画システムを提供することを目的としている。
【０００９】
【課題を解決するための手段】
本発明の請求項１に記載の図形描画方法は、上記の課題を解決するために、各水平走査線上の図形の外形線の座標を始点および終点の座標として検出し、この座標から水平方向のベクトルデータを生成し、重なる２つの図形を描画する場合、重なり部分の境界線の座標を終点および始点を兼ねる座標とし、生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードを割り当て、下位１２ビットにそれぞれの座標データを割り当てた状態でメモリに格納し、該メモリに格納されたベクトルデータによって定まる長さの直線を指定された色で各水平走査線毎に順次描画することを特徴としている。
【００１０】
また、本発明の請求項３に記載の図形描画システムは、上記の課題を解決するために、各水平走査線上の図形の外形線の座標を始点および終点の座標として検出し、この座標から水平方向のベクトルデータを生成し、重なる２つの図形を描画する場合、重なり部分の境界線の座標を終点および始点を兼ねる座標とするデータ生成手段と、生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードが割り当てられ、下位１２ビットにそれぞれの座標データが割り当てられた状態で上記ベクトルデータを格納する記憶手段と、該記憶手段に格納されたベクトルデータによって定まる長さの直線を指定された色で各水平走査線毎に順次描画する直線描画手段とを備えていることを特徴としている。
【００１１】
上記の方法およびシステムでは、その図形が存在する領域の座標を図形の外形線の座標から得て、その座標（２点の座標）で定まる水平方向のベクトルデータによって水平描画を行うことによって、図形をベクトル型のオブジェクトとして扱っている。これにより、従来、色を塗り込むべき領域が閉空間でない場合に生じていた色漏れをなくすことができ、高速に描画することができる。しかも、図形の存在する領域が上記のように確定しているので、複数の図形が重なり合うような場合でも、図形間の描画順序を特定することができる。
【００１２】
本発明の請求項１の図形描画方法では、生成されたベクトルデータを用いて水平直線を描画するようになっているが、オペレータの指示によって描画を開始する場合は、生成された上記ベクトルデータを一時的にメモリに記憶させる必要がある。このような場合、生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードを割り当て、下位１２ビットにそれぞれの座標データを割り当てた状態でメモリに格納する。ベクトルデータが上記のように水平方向の２点の座標によって定まることから、この２点について、水平方向の座標は異なっても、垂直方向の座標は共通している。それゆえ、２点の座標について垂直方向の座標が共通化する。また、座標データに１２ビットが割り当てられるので、最大４０９５ドットの座標を記憶することができ、ＸＧＡやＳＸＧＡにおいて図形を表示する場合でも十分対応できる容量を確保できる。
【００１３】
これは、本発明の請求項２の図形描画システムにおいて、生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードが割り当てられ、下位１２ビットにそれぞれの座標データが割り当てられた状態で上記ベクトルデータを格納する記憶手段を備えることによっても同様に実現される。
【００１４】
【発明の実施の形態】
本発明の実施の一形態について図１ないし図５に基づいて説明すれば、以下の通りである。
【００１５】
本実施の形態に係る図形描画システムは、図１に示すように、ＣＰＵ１、メモリ部２、入力部３、表示部４およびアプリケーション部５を備えている。
【００１６】
ＣＰＵ１は、メモリ部２に記憶されたシステムプログラムにしたがって、システム全体を制御する他、アプリケーション部５のプログラムおよびデータにしたがって描画処理を行うようになっている。
【００１７】
記憶手段としてのメモリ部２は、上記のシステムプログラムを格納するＲＯＭ、後述する描画処理に必要なデータを一時的に格納するためのメモリ（ＲＡＭなど）といったメモリ装置を含んでいる。
【００１８】
入力部３は、描画に必要なデータ入力を始めとする各種の操作を行うために利用できるマウス、キーボードなどの入力装置である。表示部１２は、描画図形を表示するためのＣＲＴ、ＬＣＤなどの表示装置である。
【００１９】
アプリケーション部５は、上記のＣＰＵ１によって実行される描画機能を実現するためのソフトウェアの集合体であって、図示しないハードディスクドライブなどの記憶装置に格納されている。このアプリケーション部５は、エディタ５ａと、変換部５ｂと、ランタイム５ｃとを有している。
【００２０】
エディタ５ａは、描画に必要な境界線（外形線）、塗り込み色、塗り込み開始座標などのデータを入力する。このエディタ５ａとしては、既存の描画ソフトウェア（描画ソフト）のエディタ機能を利用してもよい。また、エディタ５ａとしては、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）の分野などで幅広く活用されているプログラマブル表示器用の画面作成ソフトウェア（作画ソフト）が備えるエディタ機能や作画ソフトに予め用意されている基本図形を利用してもよい。
【００２１】
プログラマブル表示器は、ドット表示画面、操作用入力スイッチ、ホストコントローラとのインタフェース、画面上での操作入力のような制御のためのプログラムメモリなどを備えた操作用表示器である。一般に、プログラマブル表示器は、グラフィック表示を行うので、操作盤、スイッチ、表示灯などの機能を備えることができる他、制御対象機器の稼働状況や作業指示のような管理のための各種のモニタ、機器に対する設定値を入力する端末としての機能を備えている。
【００２２】
このようなプログラマブル表示器で表示される画面は、上記の作画ソフトを用いてユーザ独自で作成できるようになっている。画面作成に際しては、ユーザが、作画ソフトによって提供されるスイッチ、テンキー、メータ表示器、グラフ表示器等の部品、描画機能などを用いて所望の画面を構成する。その描画機能をエディタ５ａとして利用できる。
【００２３】
データ生成手段としての変換部５ｂは、エディタ５ａで入力された描画に関するデータを本発明による水平直線描画を行うためのデータに変換する。あるいは、変換部５ｂは、エディタ５ａからのデータ以外に、外部で作成された描画データを上記のデータに変換してもよい。その変換は、図形における水平方向の境界線の座標を水平走査線毎に検出し、その座標により定まる水平方向のベクトルデータを生成することによって行われる。
【００２４】
直線描画手段としてのランタイム５ｃは、変換部５ｂで変換によって得られた水平描画データと、エディタ５ａからの色データとを用いて表示画面上で水平直線描画を行う。
【００２５】
続いて、メモリ部２への座標データの格納について説明する。ここでは、エディタ５ａで作成された図２に示すような環状図形を描画表示する場合について例示する。図２に示すように、表示部１２の表示画面の最上端を水平軸（Ｘ軸）とし、表示画面の最左端を垂直軸（Ｙ軸）とし、両軸の交点、すなわち表示画面の左上の角を原点とする座標系が設定されている。
【００２６】
例えば、１００番目の水平走査線については、変換部５ｂによって、（Ｘ１  ，Ｙ１００  ）、（Ｘ２  ，Ｙ１００  ）、（Ｘ３  ，Ｙ１００  ）および（Ｘ４  ，Ｙ１００  ）の４つの座標が検出される。その他、水平走査線によっては、２つの座標が検出される場合もある。また、図形によっては、より多くの座標が検出される場合もある。
【００２７】
メモリ部２では、図３に示すような形式で座標のデータが格納される。具体的には、１６ビットのうち、上位４ビットにＸ座標かＹ座標かを判別するコードを割り当て、下位１２ビットにそれぞれの座標のデータを割り当てる。このようなコードとしては、例えば、ｆがＹ座標を表し、０がＸ座標を表すものが用いられる。あるいは、４ビットのうち最上位ビットでＸ座標とＹ座標とを識別するようなコードであってもよい。
【００２８】
Ｘ座標については、上記の４つの検出座標の場合、左端（原点側）より順に１、２、３、４と順位が付与されているが、実際の座標としてのデータは、表示画面における垂直方向のデータ線の順位（原点からの順位）である。これは、奇数の順位をベクトルデータの始点とし、偶数の順位をベクトルデータの終点として表すために便宜上連続する順位を付与している。したがって、メモリ部２には、上記のＸ１  ，Ｘ２  ，Ｘ３  ，Ｘ４  とそれぞれの実際の座標データとが対応付けられて格納されている。
【００２９】
また、図形によっては、例えば多角形の頂角のように水平方向のＸ座標が１つしかない場合がある。このような場合は、そのＸ座標に例えばＸ１  ，Ｘ２  を割り当て、１つのＸ座標でベクトルデータの始点と終点とを与えるようにする。さらに、図６（ａ）および（ｂ）に示すような２つの図形を重ねて描画する場合、重なり部分の境界線の座標を終点および始点を兼ねる座標とすることによって上記のような対をなす座標を与えることができる。すなわち、メモリ部２においては、２つのＸ座標がそれぞれベクトルデータの始点と終点として必ず対をなしている。
【００３０】
メモリ部２においては、座標データに１２ビットが割り当てられるので、最大４０９５ドットの座標を記憶することができる。これは、１０２４×７６８ドットのＸＧＡ（ｅＸｔｅｎｄｅｄ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）  や１２４７×１０２３ドットのＳＸＧＡ（Ｓｕｐｅｒ  ｅＸｔｅｎｄｅｄ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）  において図形を描画する場合でも充分対応できる容量を確保できる。また、上記のように、１水平走査線上に複数のＸ座標が存在する場合は、これらのＸ座標に対しＹ座標が共通していることから、そのＹ座標を１つだけ格納すればよいので、メモリ容量を節約できる。
【００３１】
なお、メモリ部２は、エディタ５ａからの色データも記憶する。
【００３２】
上記のように構成される描画システムの描画処理について図４のフローチャートにしたがって説明する。
【００３３】
まず、エディタ５ａで作成された図形（描画データ）から境界線の水平走査線上の座標を、変換部５ｂによって水平走査線毎に検出する（Ｓ１）。このとき、元の図形が閉空間を形成していなければ、すなわちその図形の境界線に欠落している部分（ドット）があれば、その部分を隣接する座標のデータで補間する。検出された座標のデータを前述の形式にしたがって順次メモリ部２に格納していく（Ｓ２）。そして、このような座標検出およびメモリ格納の処理を、境界線の全ての座標について行う（Ｓ３）。
【００３４】
続いて、オペレータによる描画指示が入力されると（Ｓ４）、ランタイム５ｃによって、メモリ部２に格納された座標データに基づくベクトルデータを用いて、各水平走査線毎に指定された色（メモリ部２に格納された色データ）で水平直線の描画を行う（Ｓ５）。そして、全ベクトルデータについて水平描画を行うと（Ｓ６）、描画処理を終了する。
【００３５】
Ｓ４の描画指示の入力は、オペレータが表示画面上で入力部３を介して行うが、例えば、図５に示すように、予めプルダウンメニューに設けられた水平直線塗り込み図形の項目を選択することによって行うようにしてもよい。このようにすれば、円や四角形などの一般的な図形と同様に扱うことができる。
【００３６】
以上に述べたように、本実施の形態に係る図形描画システムでは、エディタ５ａなどで作成された図形（描画データ）から、変換部５ｂによってその図形の水平方向のベクトルデータを抽出し、さらにランタイム５ｃによってそのベクトルデータを用いて水平描画を行う。このように、水平直線の描画を繰り返すことによって得られる水平直線の集合が図形（閉空間）を形成するので、従来の図形描画方法のように図形の外部に色漏れが生じることはなく、また高速で描画を行うことができる。
【００３７】
しかも、ベクトルデータを始点および終点となる座標に基づいて得ているので、複数の図形間での描画順序を定めることができるようになる。その結果、図６（ａ）および（ｂ）に示すような重なり合う複数の図形でも着色描画が可能になる。また、重なり合う図形間の色漏れも生じない。さらに、図２に示すような中空部を含む図形の着色も容易に行うことができる。
【００３８】
【発明の効果】
以上のように、本発明の請求項１に係る図形描画方法は、各水平走査線上の図形の外形線の座標を始点および終点の座標として検出し、この座標から水平方向のベクトルデータを生成し、重なる２つの図形を描画する場合、重なり部分の境界線の座標を終点および始点を兼ねる座標とし、生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードを割り当て、下位１２ビットにそれぞれの座標データを割り当てた状態でメモリに格納し、該メモリに格納されたベクトルデータによって定まる長さの直線を指定された色で各水平走査線毎に順次描画する方法である。
【００３９】
また、本発明の請求項２に係る図形描画システムは、各水平走査線上の図形の外形線の座標を始点および終点の座標として検出し、この座標から水平方向のベクトルデータを生成し、重なる２つの図形を描画する場合、重なり部分の境界線の座標を終点および始点を兼ねる座標とするデータ生成手段と、生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードが割り当てられ、下位１２ビットにそれぞれの座標データが割り当てられた状態で上記ベクトルデータを格納する記憶手段と、該記憶手段に格納されたベクトルデータによって定まる長さの直線を指定された色で各水平走査線毎に順次描画する直線描画手段とを備えている構成である。
【００４０】
このように、図形をベクトル型のオブジェクトとして扱うことによって、従来、色を塗り込むべき領域が閉空間でない場合に生じていた色漏れをなくすことができ、高速に描画することができる。しかも、図形の存在する領域が上記のように確定しているので、複数の図形が重なり合うような場合でも、図形間の描画順序を特定することができる。したがって、描画の処理速度を高めるとともに、高品位の図形を得ることができるという効果を奏する。
【００４１】
また、本発明の請求項１に係る図形描画方法では、生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードを割り当て、下位１２ビットにそれぞれの座標データを割り当てた状態でメモリに格納するので、座標データに１２ビットが割り当てられるので、最大４０９５ドットの座標を記憶することができ、ＸＧＡやＳＸＧＡにおいて図形を表示する場合でも十分対応できる容量を確保できる。また、ベクトルデータが上記のように水平方向の２点の座標によって定まることから、２点（またはより多数の点）の座標について垂直方向の座標を共通化することによって、メモリの容量を節約することができるという効果を奏する。
【００４２】
また、本発明の請求項２に係る図形描画システムは、生成された上記ベクトルデータの上位４ビットにＸ座標かＹ座標かを判別するコードが割り当てられ、下位１２ビットにそれぞれの座標データが割り当てられた状態で上記ベクトルデータを格納する記憶手段を備えることによって、請求項１に係る図形描画方法と同様にメモリの容量を節約することができるとともに、ＸＧＡやＳＸＧＡにおいて図形を表示する場合でも十分対応できる容量を確保できるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の一形態に係る図形描画システムの構成を示すブロック図である。
【図２】上記図形描画システムにおける変換部の座標検出方法を示す説明図である。
【図３】上記変換部で検出された座標のメモリ部における格納形式を示す説明図である。
【図４】上記図形描画システムによる描画の手順を示すフローチャートである。
【図５】描画を実行する際に図形を選択するプルダウンメニューを示す説明図である。
【図６】（ａ）および（ｂ）は描画の対象となる重なり合う２つの図形を示す説明図である。
【符号の説明】
２      メモリ部（メモリ、記憶手段）
４      表示部
５ａ    エディタ
５ｂ    変換部（データ生成手段）
５ｃ    ランタイム（直線描画手段）
【図１】
0003545241.tif 000002
【図２】
0003545241.tif 000003
【図３】
0003545241.tif 000004
【図４】
0003545241.tif 000005
【図５】
0003545241.tif 000006
【図６】
0003545241.tif 000007