(57)【特許請求の範囲】
【請求項１】
表示装置の画面上Ｘ方向に走る複数の直線及びＹ方向に走る複数の直線により構成された格子の各格子点に所定の要素図形が描画されるよう、表示装置の画面に対応したＸＹ直交記憶空間上に要素図形に係る図形情報を繰り返し展開するグリッド描画方法において、
Ｘ方向に走る直線に沿い所定の要素図形が所定のＸ方向図形間隔で描画されるよう、上記ＸＹ直交記憶空間上に要素図形に係る図形情報を繰り返し展開するＸ方向図形描画方法を、Ｘ方向に走る複数の直線それぞれについて実行するＸ方向描画ステップを有し、
上記Ｘ方向図形描画方法は、
上記Ｘ方向に走る直線の２個の端点を要素図形の描画対象に選択する第１のステップと、
上記Ｘ方向に走る直線の２個の端点の間にある点を要素図形の描画対象に選択する第２のステップと、
上記Ｘ方向に走る直線の２個の端点のうち一方に代え、第２のステップにて選択した点を新たに端点と見なした上で、第２のステップを実行する第３のステップと、
を有することを特徴とするグリッド描画方法。
【請求項２】
請求項１記載のグリッド描画方法において、
上記Ｘ方向描画ステップは、
Ｙ方向に走る直線に沿い所定の要素図形が所定のＹ方向図形間隔で描画されるよう、上記ＸＹ直交記憶空間上に要素図形に係る図形情報を繰り返し展開するＹ方向図形描画方法に従い、上記Ｘ方向に走る複数の直線のいずれかを要素図形の描画対象に選択するステップと、
上記Ｘ方向に走る複数の直線のうち要素図形の描画対象に選択された直線について上記Ｘ方向図形描画方法を実行するステップと、
を有し、
上記Ｙ方向図形描画方法は、
上記Ｙ方向に走る直線の２個の端点を要素図形の描画対象に選択する第４のステップと、
上記Ｙ方向に走る直線の２個の端点の間にある点を要素図形の描画対象に選択する第５のステップと、
上記Ｙ方向に走る直線の２個の端点のうち一方に代え、第５のステップにて選択した点を新たに端点と見なした上で、第５のステップを実行する第６のステップと、
を有することを特徴とするグリッド描画方法。
【請求項３】
請求項２記載のグリッド描画方法において、
第５のステップは、
上記Ｙ方向に走る直線の２個の端点の間に描画すべき要素図形の個数が偶数であるのか奇数であるのかを判定するステップと、
偶数であると判定された場合に、上記Ｙ方向に走る直線の２個の端点のうち一方の座標値に上記Ｙ方向図形間隔を加算した座標値を有する点を、要素図形の描画対象に選択するステップと、
奇数であると判定された場合に、上記２個の端点の中点を、要素図形の描画対象に選択するステップと、
を有することを特徴とするグリッド描画方法。
【請求項４】
請求項１から請求項３のいずれか１項に記載のグリッド描画方法において、
第２のステップは、
上記Ｘ方向に走る直線の２個の端点の間に描画すべき要素図形の個数が偶数であるのか奇数であるのかを判定するステップと、
偶数であると判定された場合に、上記Ｘ方向に走る直線の２個の端点のうち一方の座標値に上記Ｘ方向図形間隔を加算した座標値を有する点を、要素図形の描画対象に選択するステップと、
奇数であると判定された場合に、上記２個の端点の中点を、要素図形の描画対象に選択するステップと、
を有することを特徴とするグリッド描画方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、表示装置の画面上にグリッドを描画するグリッド描画方法に関し、またこのグリッド描画方法を構成する図形描画方法に関する。
【０００２】
【従来の技術】
グラフィックディスプレイ装置は、図形を高速表示可能な装置として様々な用途に用いられている。グラフィックディスプレイ装置は、例えば図４に示されるような構成を有している。この図に示されるグラフィックディスプレイ装置は、入力デバイス１０、外部記憶１２、表示装置１４及び処理部１６から構成されている。
【０００３】
入力デバイス１０としては、キーボード等の入力デバイスの他、マウスその他のピックデバイスを使用することができる。外部記憶１２は、処理部１６における各種処理に必要なソフトウエアやデータを格納する手段である。表示装置１４は例えばＣＲＴ等のラスタスキャン型表示装置であり、その画面上には図形を表示することができる。処理部１６は、入力デバイス１０を介した使用者からの入力に応じ、表示装置１２の画面上に図形を表示させる処理（描画処理）を実行する。この図のグラフィックディスプレイ装置をインテリジェント端末として使用する場合には、図示しないインタフェースを介してホストからのコマンド、データ等を処理部１６に入力し、処理部１６はこれに応じて描画処理を実行する。
【０００４】
描画処理は、具体的には、表示装置１４の画面に対応する記憶空間上に図形情報を展開することにより実現される。そのため、処理部１６は、フレームメモリ１８及び描画処理部２０を備えている。フレームメモリ１８は、表示装置１４の画面に対応する記憶空間を提供しており、そのアドレスは表示装置１４の画面上の座標系と一致する（Ｘ，Ｙ）アドレスである。フレームメモリ１８上に図形情報をビット展開すると、図示しない回路によって画像信号が生成され、この画像信号に基づき表示装置の画面上に当該図形情報に対応する図形が表示される。描画処理部２０は、フレームメモリ１８上に図形情報をビット展開する機能を有する回路又はソフトウエアである。描画処理部２０は、入力デバイス１０等からの入力に応じ、描画すべき図形に関する図形情報について回転、座標変換その他の処理を実行した上で、その結果得られる図形情報をフレームメモリ１８上に展開する。
【０００５】
ところで、グラフィックディスプレイ装置に関しては、これまで、円、文字等を含むベクトル図形を高速描画する性能や、あるいは図形を高速で塗りつぶす性能が重視されてきた。反面で、グリッド描画に関してはこれまでさほど重視されずにきたため、グリッド描画性能は比較的向上が遅れている。
【０００６】
ここに、グリッドとは、＋、・等の要素図形を格子状に配置した図形である。グリッドを描画するに当たっては、指定される矩形表示領域に対応する矩形記憶空間上で、格子点に相当する（Ｘ，Ｙ）アドレスに当該要素図形に係る図形情報を展開する。従って、グリッド描画に当たっては、一般に多数に及ぶ格子点について要素図形に係る図形情報を繰り返し展開する処理を実行する必要があるため、その処理手法によっては、精度上又は速度上満足のいく描画を実行できなくなる。特に、プリント基板の設計等に用いられるＣＡＤ（Computer Aided Design ）装置においては、要素図形を数万個に及び描画する必要があるため、そのような問題が特に顕著になる。
【０００７】
図５及び図６には、それぞれ、従来におけるグリッド描画方法の一例が示されている。これらの方法を実施するに際しては、最初に、使用者等により、グリッドを表示すべき矩形表示領域が指定される。指定方法としては、当該矩形表示領域の一組の対角頂点の位置を指定する方法や、当該矩形表示領域の一頂点の位置及び幅と高さを指定する方法がある。また、当該矩形表示領域を指定するに際しては、併せて、Ｘ及びＹ両方向について格子点間隔又は分割数を指定する。
【０００８】
図５に示される方法においては、まず、描画処理部２０によりフレームメモリ１８のアドレス（Ｘｓ，Ｙｓ）に要素図形に係る図形情報が展開され、これにより表示装置１４の画面上座標（Ｘｓ，Ｙｓ）で示される始点位置に要素図形が描画される（以下、説明の簡略化のため、“描画”と等価である図形情報の展開をも“描画”と呼ぶ）。描画処理部２０は、その後、ｉを０から分割数Ｎｘまで１ずつ増加させながら、（Ｘｓ＋（ｌｘ×ｉ）／Ｎｘ，Ｙｓ）に要素図形を描画する。但し、ｌｘは矩形表示領域の幅、ＮｘはＸ方向分割数である。これにより、第１番目の行に沿い、要素図形がＸ方向間隔ｌｘ／Ｎｘで一行に並んだ図形が描画される。描画処理部２０は、Ｙｓ＋ｌｙ／Ｎｙを計算した上で、第１番目の行と同様の手順で第２番目の行に沿い要素図形を描画する。但し、ｌｙは矩形表示領域の高さ、ＮｙはＹ方向分割数である。このような処理を必要な行数に亘って繰り返すことにより、始点（Ｘｓ，Ｙｓ）及び終点（Ｘｅ，Ｙｅ）を対角頂点とする矩形表示領域にグリッドが描画される。
【０００９】
また、図６に示される方法においては、描画処理部２０は最初に始点（Ｘｓ，Ｙｓ）に要素図形を描画する。描画処理部２０は、次に、Ｘｓ＋ΔｘをＸｓに代入した上で（Ｘｓ，Ｙｓ）に要素図形を描画する。但し、ΔｘはここではＸ方向格子点間隔である。描画処理部２０は、これをＮｘ回、すなわちＸｓ＝Ｘｅに至るまで繰り返すことにより、第１番目の行に要素図形を描画する。その後、描画処理部２０は、Ｘｓを最初に入力された値に戻しさらにＹｓにＹｓ＋Δｙを代入した上で（Ｘｓ，Ｙｓ）に要素図形を描画する。但し、ΔｙはここではＹ方向格子点間隔である。描画処理部２０は、第１行目に要素図形を描画したのと同じ手順で第２行目にも要素図形を描画する。このような処理を、全ての行について、すなわちＹｓ＝Ｙｅに至まで繰り返すことにより、始点（Ｘｓ，Ｙｓ）及び終点（Ｘｅ，Ｙｅ）を対角頂点とする矩形表示領域にグリッドが描画される。
【００１０】
【発明が解決しようとする課題】
これら、従来のグリッド描画方法には、一長一短がある。まず、図５に示される方法においては、各格子点の座標を逐一計算する必要があるため、グリッド描画に時間が掛かる。Ｘｓ＋（ｌｘ×ｉ）／Ｎｘの計算を例とすると、ｌｘ×ｉの処理、その結果を分割数Ｎｘで除する処理、及びその結果を始点座標Ｘｓに加える処理が必要であるから、乗算、除算、加算が１格子点当たり各１回必要となる。一般に、乗算や除算は長い時間を必要とするから、図５に示される方法は高速化に適しているとはいえない。
【００１１】
一方、図６に示される方法は、１格子点当たり加算１回にて実行できるため、図５に示される方法に比べ高速化に適している。しかし、始点座標に格子点間隔を逐次加算して格子点座標を求める操作を繰り返すと、数万個の格子点を有するグリッドでは、実用上問題となる累積誤差が発生する。
【００１２】
本発明は、このような問題点を解決することを課題としてなされたものであり、長時間を要する乗算や除算を使用することなく格子点座標を発生させることによりグリッドを高速描画できるようにすると同時に、加算を多数回繰り返す操作等を廃止することにより累積誤差も生じないようにすることを目的とする。
【００１３】
【課題を解決するための手段】
本発明は、表示装置の画面上Ｘ方向に走る複数の直線及びＹ方向に走る複数の直線により構成された格子の各格子点に所定の要素図形が描画されるよう、表示装置の画面に対応したＸＹ直交記憶空間上に要素図形に係る図形情報を繰り返し展開するグリッド描画方法において、Ｘ方向に走る直線に沿い所定の要素図形が所定のＸ方向図形間隔で描画されるよう、上記ＸＹ直交記憶空間上に要素図形に係る図形情報を繰り返し展開するＸ方向図形描画方法を、Ｘ方向に走る複数の直線それぞれについて実行するＸ方向描画ステップを有し、上記Ｘ方向図形描画方法は、上記Ｘ方向に走る直線の２個の端点を要素図形の描画対象に選択する第１のステップと、 上記Ｘ方向に走る直線の２個の端点の間にある点を要素図形の描画対象に選択する第２のステップと、 上記Ｘ方向に走る直線の２個の端点のうち一方に代え、第２のステップにて選択した点を新たに端点と見なした上で、第２のステップを実行する第３のステップと、を有することを特徴とする。
【００１４】
また、本発明に係るグリッド描画方法においては、上記Ｘ方向描画ステップは、Ｙ方向に走る直線に沿い所定の要素図形が所定のＹ方向図形間隔で描画されるよう、上記ＸＹ直交記憶空間上に要素図形に係る図形情報を繰り返し展開するＹ方向図形描画方法に従い、上記Ｘ方向に走る複数の直線のいずれかを要素図形の描画対象に選択するステップと、 上記Ｘ方向に走る複数の直線のうち要素図形の描画対象に選択された直線について上記Ｘ方向図形描画方法を実行するステップと、を有し、上記Ｙ方向図形描画方法は、上記Ｙ方向に走る直線の２個の端点を要素図形の描画対象に選択する第４のステップと、 上記Ｙ方向に走る直線の２個の端点の間にある点を要素図形の描画対象に選択する第５のステップと、上記Ｙ方向に走る直線の２個の端点のうち一方に代え、第５のステップにて選択した点を新たに端点と見なした上で、第５のステップを実行する第６のステップと、を有する方法とすることが好適である。
【００１５】
また、本発明に係るグリッド描画方法においては、第５のステップは、 上記Ｙ方向に走る直線の２個の端点の間に描画すべき要素図形の個数が偶数であるのか奇数であるのかを判定するステップと、偶数であると判定された場合に、上記Ｙ方向に走る直線の２個の端点のうち一方の座標値に上記Ｙ方向図形間隔を加算した座標値を有する点を、要素図形の描画対象に選択するステップと、奇数であると判定された場合に、上記２個の端点の中点を、要素図形の描画対象に選択するステップと、を有する方法とすることが好適である。
【００１６】
また、本発明に係るグリッド描画方法においては、第２のステップは、上記Ｘ方向に走る直線の２個の端点の間に描画すべき要素図形の個数が偶数であるのか奇数であるのかを判定するステップと、偶数であると判定された場合に、上記Ｘ方向に走る直線の２個の端点のうち一方の座標値に上記Ｘ方向図形間隔を加算した座標値を有する点を、要素図形の描画対象に選択するステップと、奇数であると判定された場合に、上記２個の端点の中点を、要素図形の描画対象に選択するステップと、を有する方法とすることが好適である。
【００１７】
【作用】
本発明の図形描画方法においては、第１のステップにて、Ｘ又はＹ方向に走る直線の２個の端点が要素図形の描画対象として選択される。次に、第２のステップでは、この２個の端点の間にある点が要素図形の描画対象として選択される。さらに、第３のステップでは、第２のステップにて選択した点が、第２のステップで使用した２個の端点のうち一方に代え、新たに端点と見なされ、その上で第２のステップが実行される。Ｘ又はＹ方向の描画の際このような処理が実行されると、上記直線に沿って要素図形が並んだ図形が描画される。
【００１８】
ここに、本発明において描画に際して行われる演算は、２個の端点の間にある点を求める演算である。この演算は、当該２個の端点の座標値に基づいて行うことができるから、図５に示される従来例のように要素図形を描画すべき座標値を逐一演算する必要がなく、従って、長時間を要する乗算や除算を使用する必要がないから、高速描画が可能になる。また、この演算は、１個の座標値を決定した後累積加算により次の座標値を決定するといった手順ではないから、累積誤差も生じない。
【００１９】
本発明の図形描画方法においては、２個の端点の間にあり描画対象となる点を求めるのに際して、まずこの２個の端点の間に描画すべき要素図形の個数が偶数であるのか奇数であるのかが判定される。偶数である場合、当該２個の端点のうち一方の座標値に図形間隔を加算した座標値を有する点が、要素図形の描画対象に選択される。奇数である場合、当該２個の端点の中点が、要素図形の描画対象に選択される。従って、実施するに際して付随的に発生する演算を除くと、偶数である場合には加算が、奇数である場合には加算及びビットシフトが実行されるのみであるから、演算時間は短くて済む。
【００２０】
本発明のグリッド描画方法においては、少なくともＸ（又はＹ）方向について、あるいはＸ，Ｙ両方向について、上述の本発明の図形描画方法による描画が行われる。これにより、高速かつ高精度のグリッド描画が可能になる。
【００２１】
【実施例】
以下、本発明の好適な実施例について図面に基づき説明する。なお、本発明は図４に示される環境下で実施できるため、以下の説明は図４を前提とするが、本発明はその他の実施環境にも適用できる。
【００２２】
図１及び図２には、グリッド描画に当たって描画処理部２０が実行する処理の流れが示されている。これらの図のうち図１に示されるのはＹ方向の描画に関する手順であり、図２に示されるのはＸ方向の描画に関する手順である。
【００２３】
この実施例においては、まず、描画処理部２０に、グリッド描画に係る矩形表示範囲や分割数が入力される（１００）。矩形表示範囲は、始点座標（Ｘｓ，Ｙｓ）及び終点座標（Ｘｅ，Ｙｅ）の形で入力する。また、分割数としては、Ｘ方向の分割数Ｎｘ及びＹ方向の分割数Ｎｙを入力する。
【００２４】
これらの情報が描画処理部２０に入力された後、描画処理部２０は、Ｙ方向の描画に関する変数を初期化する（１０２）。Ｙ方向の描画に関する変数としては、分割数を管理するために使用する変数ｎｙ、Ｙ方向の描画範囲を示す変数ｌｙ、Ｙ方向格子点間隔を示す変数Δｙ等をあげることができる。初期化演算は、次の内容である。
【００２５】
【数１】
ｎｙ＝Ｎｙ
ｌｙ＝Ｙｅ−Ｙｓ
Δｙ＝ｌｙ／Ｎｙ
描画処理部２０は、Ｙ方向の描画に関する変数を初期化した後、描画に係る座標ＹにＹｓを設定した上で（１０４）、Ｘ方向描画手順を実行する（１０６）。Ｘ方向描画手順においては、図２に示されるように、描画処理部２０がまずＸ方向の描画に関する変数を初期化する（２００）。Ｘ方向の描画に関する変数としては、描画中に分割数を管理するために使用する変数ｎｘ、Ｘ方向の描画範囲を示す変数ｌｘ、Ｘ方向格子点間隔を示す変数Δｘ等をあげることができる。初期化演算は、次の内容である。
【００２６】
【数２】
ｎｘ＝Ｎｘ
ｌｘ＝Ｘｅ−Ｘｓ
Δｘ＝ｌｘ／Ｎｘ
描画処理部２０は、Ｘ方向の描画に関する変数を初期化した後、座標（Ｘｓ，Ｙ）で示される格子点及び座標（Ｘｅ，Ｙ）で示される格子点に要素図形を描画する（２０２，２０４）。これらの格子点は、同一Ｙ座標に係る直線の端点である。特に、ここでは先立ってＹにＹｓが設定されているから（１０４）、（Ｘｓ，Ｙ）及び（Ｘｅ，Ｙ）とは（Ｘｓ，Ｙｓ）及び（Ｘｅ，Ｙｓ）である。一例として、Ｘ方向分割数Ｎｘが１５である場合を考えると、ステップ２０２及び２０４終了時点では、図３（ａ）に示されるような状態となる。なお、ここにいう描画とは、前述したように、フレームメモリ１８の記憶空間上の対応するアドレスに、要素図形（例えば＋）に係る図形情報を展開する処理である。
【００２７】
描画処理部２０は、続いて、ｎｘが奇数であるかそれとも偶数であるかを判定する（２０６）。ｎｘが偶数である場合には、ステップ２０２及び２０４にて要素図形を描画した（Ｘｓ，Ｙ）及び（Ｘｅ，Ｙ）の間に描画すべき要素図形の個数が奇数であるから、（Ｘｓ，Ｙ）と（Ｘｅ，Ｙ）の中点（Ｘｍ，Ｙ）は、要素図形を描画すべき点となる。逆に、ｎｘが奇数である場合には、（Ｘｓ，Ｙ）及び（Ｘｅ，Ｙ）の間に描画すべき要素図形の個数が偶数であるから、（Ｘｓ，Ｙ）と（Ｘｅ，Ｙ）の中点（Ｘｍ，Ｙ）は、要素図形を描画すべき点とはならない。そのため、本実施例では、ｎｘが奇数か偶数かに応じて、（Ｘｓ，Ｙ）及び（Ｘｅ，Ｙ）に要素図形を描画した後の処理手順を分けている。
【００２８】
理解の容易化のため、Ｘ方向分割数Ｎｘが１５である場合を例にすると、ステップ２０６を初めて実行する時点では、ｎｘ＝１５であるからｎｘが奇数であると判定される。描画処理部２０は、これに応じ、端点更新・描画に関するステップ２０８を実行する。ステップ２０８においては、描画処理部２０は、ＸｓにΔｘを加算しその結果を新たにＸｓに設定した上で（端点更新：２１０）、（Ｘｓ，Ｙ）に要素図形を描画する（２１２）。すなわち、図３（ａ）で描画されている２個の端点のうち１個に隣接する格子点に、要素図形を描画する。すると、図３（ｂ）に示されるような状態となる。このようにして得られる新たな（Ｘｓ，Ｙ）と先に描画した（Ｘｅ，Ｙ）の間の分割数は偶数となり、また、新たな（Ｘｓ，Ｙ）と先に描画した（Ｘｅ，Ｙ）の間隔は従前のｌｘよりΔｘだけ短くなる。描画処理部２０は、これに応じ、ｎｘを１デクリメントし、また、新たなＸｓを用いてｌｘ＝Ｘｅ−Ｘｓの演算を実行する（２１４）。ここでは、従前のｎｘが１５であったから、新たなｎｘは１４となる。
【００２９】
描画処理部２０は、ステップ２０８終了後、ｎｘが１であるか否かを判定する（２１６）。この判定はＸ方向描画を終了させるための判定であり、ｎｘが１４である現時点では成立しない。そのため、描画処理部２０の処理はステップ２０６に戻る。ステップ２０６では、ｎｘが１４、すなわち偶数であるため、描画処理部２０の処理は中点描画に関するステップ２１８に移行する。ステップ２１８においては、描画処理部２０は、ｌｘを２で除した値をワーク用の変数Ｘ１に代入し、このＸ１をＸｓに加算しその結果をＸｍに代入する（２２０）。このＸｍは、（Ｘｓ＋Ｘｅ）／２に等しくなる。描画処理部２０は、このようにして得られた中点（Ｘｍ，Ｙ）に要素図形を描画する（２２２）。すると、図３（ｃ）に示されるような状態となる。（Ｘｍ，Ｙ）が中点であることから明らかなように、（Ｘｓ，Ｙ）と（Ｘｍ，Ｙ）の間の分割数や（Ｘｍ，Ｙ）と（Ｘｅ，Ｙ）の間の分割数は、（Ｘｓ，Ｙ）と（Ｘｅ，Ｙ）の間の分割数の１／２である。ここでは、（Ｘｓ，Ｙ）と（Ｘｅ，Ｙ）の間の分割数ｎｘを１４の場合を考えているため、（Ｘｓ，Ｙ）と（Ｘｍ，Ｙ）の間の分割数や（Ｘｍ，Ｙ）と（Ｘｅ，Ｙ）の間の分割数は７となる。そこで、描画処理部２０は、ｎｘを１ビット右シフトした値、すなわちｎｘ／２（ここでは７）を、新たなｎｘに設定する（２２４）。描画処理部２０は、後の処理のためＸｍを記憶し、またＸｍをＸｅに設定する。但し、その前に、従前のＸｅも記憶しておく。
【００３０】
描画処理部２０は、ステップ２１８終了後も、やはりステップ２１６を実行する。現時点ではｎｘ＝７であるためステップ２１６の判定は成立せず、描画処理部２０の処理はステップ２０６に戻る。この時点では、ｎｘが奇数であるためステップ２０８が実行される。但し、ステップ２０８にて中点を分割した結果、要素図形をまだ描画していない領域が（Ｘｓ，Ｙ）と（Ｘｍ，Ｙ）の間にある領域と（Ｘｍ，Ｙ）と（Ｘｅ，Ｙ）の間にある領域とに分かれている。従って、ステップ２０８の処理を現時点でのＸｓについて実行するだけでは、（Ｘｓ，Ｙ）と（Ｘｍ，Ｙ）の間にある領域について端点更新・描画が行われるのみとなってしまう。そこで、描画処理部２０は、（Ｘｓ，Ｙ）と（Ｘｍ，Ｙ）の間にある領域についてステップ２０８を実行するのみならず、前回ステップ２２４を実行した際に記憶したＸｍをＸｓに、またステップ２２４実行前のＸｅをＸｅに、それぞれ設定することにより、（Ｘｍ，Ｙ）と（Ｘｅ，Ｙ）の間にある領域についてもステップ２０８を実行する。すると、図３（ｄ）に示されるような状態となる。この時点では、ｎｘ＝６であるためステップ２１６の判定は成立せず、描画処理部２０の処理はステップ２０６に戻る。
【００３１】
ステップ２０６では、ｎｘ＝６であるためｎｘが偶数であると判定される。描画処理部２０はこれに応じてステップ２１８を実行する。ステップ２１８を実行すると、図３（ｅ）に示される状態となり、またｎｘは３となる。従って、その直後のステップ２１６における判定は成立せず、その後のステップ２０６ではｎｘが奇数であると判定される。描画処理部２０はこれに応じてステップ２０８を実行する。ステップ２０８を実行すると、図３（ｆ）に示される状態となり、またｎｘは２となる。従って、その直後のステップ２１６における判定は成立せず、その後のステップ２０６ではｎｘが偶数であると判定される。描画処理部２０はこれに応じてステップ２１８を実行する。ステップ２１８を実行すると、図３（ｇ）に示されるように、Ｙ座標がＹｓの直線上に要素図形がＸ方向格子間隔Δｘでならんで描画された状態となり、またｎｘは１となる。従って、この時点でステップ２１６の判定が成立し、描画処理部２０の処理は図１に示されるステップ１０８に移行する。
【００３２】
なお、図２ではステップ２１２実行後にｎｘが２であるか否かを判定し（２２６）、ｎｘが２である場合にはステップ２１４に代えステップ２２８を実行している。ステップ２２８では、ｎｘに１が設定される。この処理は、後述のように、ステップ２１４における演算を省略して描画速度を高めるための処理である。
【００３３】
図１のステップ１０８においては、描画処理部２０は、描画に係る座標ＹにＹｅを設定する。描画処理部２０は、その後Ｘ方向描画手順を実行する（１１０）。すると、図２に示される手順が、（Ｘ，Ｙｅ）に関して繰り返される。これにより、Ｙ座標がＹｅの直線上に要素図形がＸ方向格子間隔Δｘでならんで描画される。描画処理部２０は、その後、Ｘ方向描画におけるステップ２０６〜２２８と同様の手順にて、Ｙ方向描画を行う。ここにいうＹ方向描画とは、描画に係るＹ座標を順次変更しながらＸ方向描画を行わせる手順である。Ｙ方向描画が終了すると、（Ｘｓ，Ｙｓ）及び（Ｘｅ，Ｙｅ）を対角頂点とする矩形表示領域に、グリッドが表示されることになる。
【００３４】
Ｙ方向描画に係る手順は、具体的には次のような手順である。まず、描画処理部２０は、ｎｙが奇数であるかそれとも偶数であるかを判定する（１１２）。ｎｙが奇数である場合には、ｘをｙと置き換えたのみでステップ２０８と同様の内容のステップ１１４が実行される。ステップ１１４を構成するステップ１１６〜１２４のうち、ステップ１１６はステップ２１０に、ステップ１１８及び１２０はステップ２１２に、ステップ１２０〜１２４はステップ２１４、２２６及び２２８に、それぞれ対応している。なお、ステップ２１２に対応するステップが２個あるのは、Ｘ方向描画手順を実行する（１２０）ためＹにＹｓを設定する（１１８）必要があるからである。ｎｘが偶数である場合には、ｘをｙと置き換えたのみでステップ２１８と同様の内容のステップ１２６が実行される。ステップ１２６を構成するステップ１２８〜１３４のうち、ステップ１２８はステップ２２０に、ステップ１３０及び１３２はステップ２２２に、ステップ１３４はステップ２２４に、それぞれ対応している。なお、ステップ２２２に対応するステップが２個あるのは、Ｘ方向描画手順を実行する（１３２）ためＹにＹｍを設定する（１３０）必要があるからである。ステップ１１４及び１２６は、ステップ１３６の判定が成立するまでステップ１１２での判定結果に応じて繰り返し実行される。ステップ１３６にてｎｙ＝１であると判定されると、Ｙ方向描画、従ってグリッド描画が終了する。
【００３５】
このように、本実施例においては、グリッドを好適に描画することができる。また、それは、高速かつ高精度な描画とすることができる。
【００３６】
ここで、加算、減算、シフトの各演算に２００ｎｓ程度の時間が、乗算に３μｓ程度の時間が、除算に５μｓ程度の時間が、それぞれ必要であると仮定する。従来の高精度グリッド描画手法（図５参照）では、Ｘｓ＋Δｘ×ｉ／ＮｘやＹｓ＋Δｙ×ｉ／Ｎｙの演算に、乗算１回（Δｘ×ｉやΔｙ×ｉの演算）、除算１回（乗算結果をＮｘ又はＮｙで除す演算）及び加算１回（除算結果にＸｓ又はＹｓを加える演算）が必要であるから、要素図形１個を描画するため８．２μｓ程度の時間が必要になる。本実施例においては、要素図形１個を描画するため必要になるのは、Ｘ方向描画を例にすると、
【数３】
0003670322.tif 000002
であるから、ｎｘが奇数の場合加算１回減算２回合計６００ｎｓとなり、ｎｘが偶数の場合シフト２回加算１回合計６００ｎｓとなる。また、ステップ２２８が実行された場合には、Ｘｓ＝Ｘｓ＋Δｘの加算１回のみとなるから２００ｎｓで足りる。これらは、Ｙ方向描画に関しても同様である。
【００３７】
また、従来の高速グリッド描画手法（図６参照）と比較した場合、当該従来手法では要素図形１個を描画するため必要になるのは加算１回のみであるから本実施例より高速での描画が可能となる。しかし、当該従来手法では加算の繰り返し（積算）により累積誤差が発生する。これに対し、本実施例では積算を行っていないため、このような累積誤差は発生しない。
【００３８】
従って、本実施例によれば、従来の高速グリッド描画手法に比べ精度の良いグリッド描画を、従来の高精度グリッド描画手法と同様高い精度で実現できる。
【００４０】
【発明の効果】
本発明のグリッド描画方法によれば、少なくともＸ（又はＹ）方向について、あるいはＸ，Ｙ両方について、上述の本発明の図形描画方法による描画を行うようにしたため、高速かつ高精度のグリッド描画が可能になる。
【図面の簡単な説明】
【図１】本発明の一実施例に係るグリッド描画方法の流れを示すフローチャートである。
【図２】図１に示される実施例におけるＸ方向描画の流れを示すフローチャートである。
【図３】この実施例において実行されるＸ方向描画の手順を示す図である。
【図４】グラフィックディスプレイ装置の一例構成を示すブロック図である。
【図５】一従来例に係る高精度グリッド描画手法を示す図である。
【図６】一従来例に係る高速グリッド描画手法を示す図である。
【符号の説明】
１４  表示装置
１６  処理部
１８  フレームメモリ
２０  描画処理部
（Ｘｓ，Ｙｓ）  始点
（Ｘｅ，Ｙｅ）  終点
Ｎｘ，Ｎｙ  Ｘ又はＹ方向の分割数
Δｘ，Δｙ  Ｘ又はＹ方向の格子点間隔
ｌｘ，ｌｙ  Ｘ又はＹ方向の描画長
Ｘｍ，Ｙｍ  Ｘ又はＹ方向描画の中点
【図１】
0003670322.tif 000003
【図２】
0003670322.tif 000004
【図３】
0003670322.tif 000005
【図４】
0003670322.tif 000006
【図５】
0003670322.tif 000007
【図６】
0003670322.tif 000008