(57)【特許請求の範囲】
【請求項１】
破線パターンのデータを格納するメモリと、
隣接して並行する複数の直線について描画する直線上の各画素を特定するユニットと、
描画する破線の傾きに応じて該メモリの参照アドレスを変化させて該データを参照する際に、該複数の直線毎に該傾きに応じて決定された描画開始点に対する参照アドレスを出発点とし、参照アドレスを順次１つずつシフトさせて該データを参照するパターン参照ユニットと、
該パターン参照ユニットが参照する該データに応じて該各画素に対する描画を行う描画ユニットと、
該複数の直線をカウントする幅方向制御ユニットと、
該描画する直線上の該各画素をカウントする長さ方向制御ユニットと、
該幅方向制御ユニットのカウントに基づいて該複数の直線毎に該傾きに応じて該描画開始点の参照位置を算出し、該参照位置を整数に丸めることで該描画開始点の参照アドレスを算出し、該長さ方向制御ユニットのカウントに応じて該描画開始点以降の参照アドレスを算出する線形補間ユニット
を含み、
該線形補間ユニットは、該複数の直線の第１番目の直線の描画開始点の参照位置に対して該傾きの値の１／２を順次加算していくことで、該複数の直線の該描画開始点の参照位置を算出することを特徴とする描画装置。
【請求項２】
破線パターンのデータを格納するメモリと、
隣接して並行する複数の直線について描画する直線上の各画素を特定するユニットと、
描画する破線の傾きに応じて該メモリの参照アドレスを変化させて該データを参照するパターン参照ユニットと、
該パターン参照ユニットが参照する該データに応じて該各画素に対する描画を行う描画ユニット
を含み、
該パターン参照ユニットは、該複数の直線毎に１つずつシフトされた描画開始点に対する参照アドレスを出発点とし、参照アドレスを該傾きに応じて段階的にシフトさせて該データを参照し、前記複数の直線は水平方向の直線であることを特徴とする描画装置。
【請求項３】
該複数の直線をカウントする第１の制御ユニットと、
該描画する直線上の該各画素をカウントする第２の制御ユニットと、
該第１の制御ユニットのカウントに基づいて該複数の直線毎に１ずつシフトする該描画開始点の参照位置を算出し、該描画開始点の参照位置から出発し該長さ方向制御ユニットのカウントに基づいて該傾きに応じて参照位置を順次シフトさせ、該シフトされた参照位置を整数に丸めることで参照アドレスを算出する線形補間ユニット
を更に含むことを特徴とする請求項２記載の描画装置。
【請求項４】
該線形補間ユニットは、該描画開始点の参照位置に対して該傾きの値の１／２を順次加算していくことで該シフトされた参照位置を算出することを特徴とする請求項３記載の描画装置。
【請求項５】
水平方向アドレス及び垂直方向アドレスを有し指定アドレスに描画されるフレームメモリを更に有し、該破線は該垂直方向が主軸であることを特徴とする請求項２記載の描画装置。
【請求項６】
破線パターンのデータをメモリに格納し、
隣接して並行する複数の直線について描画する直線上の各画素を特定し、
描画する破線の傾きに応じて該メモリの参照アドレスを変化させて該データを参照し、
該参照されたデータに応じて該各画素に対する描画を行う
各段階を含み、
該データを参照する段階は、該破線の傾きの１／２を順次加算することで該参照アドレスを変化させることを特徴とする描画方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に表示画面上に描画する画像描画装置に関し、詳しくは破線を描画する機能を備えた画像描画装置に関する。
【０００２】
【従来の技術】
コンピュータ表示画面上などに描画をする装置においては、描画ツールの一部として、指定したタイプの破線を描画する機能が設けられている。破線のデータは“１”及び“０”によって描画のオン・オフを表現しており、この破線データを読み出し、例えば“１”なら描画して“０”なら描画しないように処理することで、破線を描画する。
【０００３】
【発明が解決しようとする課題】
従来の破線描画装置では、太い幅の破線を描画する場合、同一の破線を水平方向に１ピクセルづつ移動させて複数本描画するか、或いは同一の破線を垂直方向に１ピクセルづつ移動させて複数本描画する。従って、従来の破線描画装置では、直線の傾きに関わらず破線の断面方向がフレームバッファ上での垂直あるいは水平方向になってしまう。即ち、例えば４５°の傾きの太い破線を描いた場合、破線の延長方向は４５°であるのに、破線の断面は水平方向或いは垂直方向に揃ってしまう。例えば右上がり４５°の傾きの破線であれば、破線断面は左上がり４５°となるのが自然である。
【０００４】
このように従来の破線描画装置では、幅の太い破線を描画した場合に、不自然な描画結果となるという問題がある。これを解決して破線断面を正しい方向に描画するには、従来の技術では、三角形や四角形などの基本図形を組み合わせて描画する方法が取られている。この方法では、多大な計算量が必要となり、処理時間が長くなると共に装置規模が大きくなるという問題がある。
【０００５】
以上を鑑みて、本発明は、自然な描画結果となる幅の太い破線を単純な処理で描画可能な破線描画装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明による描画装置は、破線パターンのデータを格納するメモリと、隣接して並行する複数の直線について描画する直線上の各画素を特定するユニットと、描画する破線の傾きに応じて該メモリの参照アドレスを変化させて該データを参照する際に、該複数の直線毎に該傾きに応じて決定された描画開始点に対する参照アドレスを出発点とし、参照アドレスを順次１つずつシフトさせて該データを参照するパターン参照ユニットと、該パターン参照ユニットが参照する該データに応じて該各画素に対する描画を行う描画ユニットと、該複数の直線をカウントする幅方向制御ユニットと、該描画する直線上の該各画素をカウントする長さ方向制御ユニットと、該幅方向制御ユニットのカウントに基づいて該複数の直線毎に該傾きに応じて該描画開始点の参照位置を算出し、該参照位置を整数に丸めることで該描画開始点の参照アドレスを算出し、該長さ方向制御ユニットのカウントに応じて該描画開始点以降の参照アドレスを算出する線形補間ユニットを含み、該線形補間ユニットは、該複数の直線の第１番目の直線の描画開始点の参照位置に対して該傾きの値の１／２を順次加算していくことで、該複数の直線の該描画開始点の参照位置を算出することを特徴とする。
【０００７】
上記描画装置によれば、複数の破線を描画して太い幅の破線を形成する際に、傾き情報に応じてパターン参照位置を順次ずらすことによって、破線断面を破線延長方向に適した方向に調整することが可能となり、自然な見かけの描画結果を得ることが出来る。また上記描画装置によれば、複数の破線を描画して太い幅の破線を形成する際に、傾き情報に応じて描画開始点のパターン参照位置を順次ずらすことによって、破線断面を破線延長方向に適した方向に調整することが可能となる。
【００１０】
また本発明のある側面によれば、描画装置は、破線パターンのデータを格納するメモリと、隣接して並行する複数の直線について描画する直線上の各画素を特定するユニットと、描画する破線の傾きに応じて該メモリの参照アドレスを変化させて該データを参照するパターン参照ユニットと、該パターン参照ユニットが参照する該データに応じて該各画素に対する描画を行う描画ユニットを含み、前記パターン参照ユニットは、該複数の直線毎に１つずつシフトされた描画開始点に対する参照アドレスを出発点とし、参照アドレスを該傾きに応じて段階的にシフトさせて該データを参照し、前記複数の直線は水平方向の直線である。
【００１１】
フレームバッファにおいては、通常、垂直方向に走査して描画するよりも水平方向に走査して描画する方が、描画速度が早い。垂直主軸の破線である場合には垂直主軸の直線を複数本描くのではなく、指定された幅の長さを持つ水平方向の直線を何本も描くようにすれば、フレームバッファに対する描画速度を向上させることができる。上記描画装置によれば、垂直主軸の複数の破線を並べて太い幅の破線を形成する際に、水平直線を繰り返し描画することで高速な描画速度を実現すると共に、描画する水平直線の各画素に対するパターン参照位置を傾き情報に応じて順次ずらすことによって、破線断面を破線延長方向に適した方向に調整することが可能となり、自然な見かけの描画結果を得ることが出来る。
【００１２】
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１３】
一定の画素数分の破線データ（各画素のオン／オフを示すデータ）を、破線パターン記憶装置に破線パターンとして格納しておく。直線（破線）描画の際には、１画素描画する毎に破線データを破線パターン記憶装置より読み出し、読み出した破線データに基づいて描画の制御を行う。ここで破線パターンは、所定の画素数分の破線データとしてデータ０、データ１、データ２、・・・のデータ列からなり、各データの値によって対応する画素のオン／オフ（描画／非描画）を表す。なお、破線の描画に際しては直線上の連続する各画素に対して破線データに応じたオン／オフの描画処理を行うので、表示ＸＹアドレスの走査自体は直線上の連続した各点の走査である。従って、以降の説明においては、「直線」という表現によって、破線を含む一般の直線形状を示すものとする。
【００１４】
太線を描く場合には、複数本の直線を並べて描く。その最初の1本目（一番端の直線）に関しては、直線描画の始点での破線パターンの参照位置を０に設定し、参照位置０に対応するアドレス０にあるデータ０を描画開始データとする。直線を1画素描画するごとに参照データをデータ０、データ１、データ２、・・・と１つずつ移動させていき、参照データの値に応じて描画／非描画を制御する。この部分は、従来の手法による破線描画と同じである。図１（ａ）に、本発明の破線描画方法により第１本目の破線を描画した結果を示す。
【００１５】
最初の直線の描画が終わると、その直線に接する隣の直線の描画が行われる。この際、描画始点における破線パターン参照位置を変更することで、破線断面を破線延長方向に適した方向に調整する。この破線パターン参照位置の変更は、以下のように行われる。まず描画する直線の垂直方向の長さをΔｙ、水平方向の長さをΔΔｘとし、Δｙ＞Δｘ（垂直方向が主軸）の場合、直線の傾きをΔy／Δｘとする。またΔｙ＜Δｘ（水平方向が主軸）の場合、直線の傾きをΔｘ／Δｙとする。このようにして求めた傾き値の１／２を、直前に描画した直線の描画始点におけるパターン参照位置に加算する。
【００１６】
ここで傾き値を１／２にするのは、傾き値をそのまま使うと角度によっては正しい破線断面を表現できないためである。１／２という補正であれば、断面を正しくすることが出来ると共に、右方向へ１ビットシフトするだけの演算でよいので、装置規模も殆ど大きくならない。
【００１７】
ここで例えば、傾きの１／２が0.24であるとする。この場合、描画始点のパターン参照位置は、２本目の破線に対しては0.24となる。パターン参照アドレスは整数でなければならないので、パターン参照位置を四捨五入し、結果を描画始点での破線パターン参照アドレスとする。小数部を含むパターン参照位置は次の直線描画に備えて保存しておく。１本目の直線の描画時と同様に、直線を１画素描画する度にパターン参照アドレスを１ずつずらしていく。図１（ｂ）に、本発明の破線描画方法により第２本目の破線を描画した結果を示す。
【００１８】
３本目の直線についても同様に、傾き値の１／２を直前の開始点パターン参照位置に加算する。その結果、パターン参照位置は（（傾き値）／２）×２となる。これを四捨五入して求めたアドレスをデータ参照の始点として、直線描画を開始する。傾き値の１／２が0.24の場合、３本目の直線ではパターン参照開始位置が0.72となり、四捨五入すると参照開始アドレスは１となり、破線パターンのデータ１から描画を開始することになる。図１（ｃ）に、本発明の破線描画方法により第３本目の破線を描画した結果を示す。
【００１９】
以降この処理を続けていくことにより所望の本数の破線を描画することで、破線断面は、直線の傾きに対応して適宜傾いたものとなり、具体的には直線の方向に対して略９０°の角度となる。
【００２０】
図２は、本発明による描画装置の第１実施例の構成を示す図である。
【００２１】
図２の描画装置１０は、座標算出装置１１、傾き算出装置１２、直線線形補間装置１３、幅方向制御装置１４、長さ方向制御装置１５、画素描画装置１６、右１ビットシフト装置１７、パターン始点位置線形補間装置１８、パターン線形補間装置１９、パターン参照装置２０、破線パターンメモリ２１、及びフレームバッファ２２を含む。
【００２２】
直線描画情報として、描画する直線の始点座標及び終点座標、描画する直線の太さ、等が与えられる。座標算出装置１１は、描画する直線の始点座標から直線の始点座標アドレス（Ｘアドレス及びＹアドレス）を算出する。傾き算出装置１２は、描画する直線の始点座標及び終点座標から、描画する直線の傾きを算出する。直線線形補間装置１３は、座標算出装置１１から供給される直線の始点座標アドレスに対して、傾き算出装置１２から供給される直線の傾きに応じたＸＹ増加分を加算していくことで、描画する直線上の各点のＸＹアドレスを算出する。これによって、描画する直線上に存在する画素を特定することが出来る。
【００２３】
幅方向制御装置１４は、描画する直線の太さに関する描画情報に基づいて、描画する直線の本数をカウントする。このカウント値による制御に基づいて、幅方向制御装置１４は、長さ方向制御装置１５を所定の回数だけ動作させ、所定の本数の直線を順次並べて描画させることで、所定の幅の直線を実現する。何本目の直線を描画するかを示すカウント情報が、パターン始点位置線形補間装置１８に供給される。
【００２４】
長さ方向制御装置１５は、幅方向制御装置１４のカウント値の制御の下に、描画する直線の長さに応じた数だけ画素をカウントする。画素のカウントは、直線線形補間装置１３に供給される。直線線形補間装置１３は、このカウントに応じて、直線の始点座標アドレスに対して直線の傾きに応じたＸＹ増加分を加算していくことで、描画する直線上の各画素のＸＹアドレスを算出する。算出された描画する直線上の画素のＸＹアドレスは、直線線形補間装置１３から画素描画装置１６に供給される。
【００２５】
右１ビットシフト装置１７は、傾き算出装置１２から傾き値データを受け取り、傾き値データを右に１ビットシフトさせることで、傾き値の１／２のデータを生成する。このデータは、パターン始点位置線形補間装置１８に供給される。
【００２６】
パターン始点位置線形補間装置１８は、幅方向制御装置１４からのカウント値が第１本目の直線の描画を示す場合には、描画開始点のパターン参照位置として０を出力する。幅方向制御装置１４からのカウント値が第２本目以降の直線の描画を示す場合には、新規直線の描画が指定される毎に、前回描画した直線の描画開始点のパターン参照位置に対して傾き値の１／２を加算する。こうして算出される開始点パターン参照位置は、パターン線形補間装置１９に供給される。
【００２７】
パターン線形補間装置１９は、長さ方向制御装置１５から供給される画素カウントに応じて、開始点パターン参照位置に対して順次１を加算していく。その結果を四捨五入や切り上げ等の丸め処理によって整数値に変換して、パターン参照装置２０に供給する。なお開始点パターン参照位置を先に整数値に丸めて、その後順次１を加算していく構成としてもよい。結果として求められた整数値は、破線パターンのデータを読み出す参照アドレスに対応する。パターン参照装置２０は、破線パターンメモリ２１の指定される参照アドレスから、破線パターンのデータを読み出して、画素描画装置１６に供給する。
【００２８】
画素描画装置１６は、直線線形補間装置１３から供給される直線上の画素のＸＹアドレスに対して、パターン参照装置２０から供給される破線データに応じた描画処理を実行する。即ち例えば、破線データが“１”であれば指定されるＸＹアドレスの画素を描画し、破線データが“０”であれば指定されるＸＹアドレスの画素を描画しない。
【００２９】
このようにして本発明による描画装置１０によれば、複数の破線を描画して太い幅の破線を形成する際に、傾き情報に応じて描画開始点のパターン参照位置を順次ずらすことによって、破線断面を破線延長方向に適した方向に調整することが可能となり、自然な見かけの描画結果を得ることが出来る。
【００３０】
図３は、図２に示される描画装置１０によって実行される破線描画処理を示すフローチャートである。まず初期値として、幅方向のカウント及び長さ方向のカウントをゼロとしておく。
【００３１】
ステップＳ１において、描画する直線の始点座標及び終点座標から、描画する直線の傾きを算出する。
【００３２】
ステップＳ２において、描画する直線の始点座標から直線の始点座標アドレス（Ｘアドレス及びＹアドレス）を算出する。なお何本目の破線を描いているのかを示す幅方向のカウント値に応じて、描画する直線の始点座標アドレスは随時シフトされる。
【００３３】
ステップＳ３において、幅方向のカウント値がゼロで第１本目の直線の描画を示す場合には、描画開始点のパターン参照位置を０とする。幅方向のカウント値が１以上で第２本目以降の直線の描画を示す場合には、前回描画した直線の描画開始点のパターン参照位置に対して傾き値の１／２を加算する。
【００３４】
ステップＳ４において、四捨五入や切り上げ等の丸め処理によって描画開始点のパターン参照位置を参照アドレスに変換し、参照アドレスから破線パターンのデータを順次読み出す。
【００３５】
ステップＳ５において、始点座標アドレスから出発し、長さ方向カウント値に応じて直線の傾きに応じたＸＹ増加分を加算して、描画する直線上の点を求め、破線パターンデータに応じた描画処理をする。
【００３６】
ステップＳ６において、長さ方向のカウントを１つ増やしてステップＳ５に戻る。なお長さ方向のカウント値が、描画する直線の長さに一致する場合には、１本の破線の描画が終了したとしてステップＳ７に進む。
【００３７】
ステップＳ７において、幅方向のカウントを１つ増やしてステップＳ２及びＳ３に戻る。なお幅方向のカウント値が、描画する直線の太さに一致する場合には、全ての破線の描画が終了したとして描画処理を終了する。
【００３８】
図４は、図２に示される描画装置１０のパターン参照位置制御に関する部分の具体的な構成を示す構成図である。
【００３９】
図４の構成は、右シフタ３１、パターン参照位置レジスタ３２、加算器３３、セレクタ３４、長さ方向カウンタ３５、参照アドレスレジスタ３６、加算器３７、破線パターンメモリ３８、フレームバッファライト制御３９、描画アドレス生成ユニット４０、及びフレームバッファ４１を含む。
【００４０】
右シフタ３１は、図２の右１ビットシフト装置１７に対応し、供給される傾きデータを右に１ビットシフトして、傾き値の１／２を生成する。パターン参照位置レジスタ３２は最初に“０”を格納しており、加算器３３がパターン参照位置レジスタ３２の内容と傾き値の１／２とを加算し、その結果をパターン参照位置レジスタ３２に再格納する。この加算演算は、複数の並行する破線のうち１本を描画して次の１本の描画を開始する度に実行される。このパターン参照位置レジスタ３２及び加算器３３が、図２のパターン始点位置線形補間装置１８に対応する。
【００４１】
加算器３３の出力であるパターン参照位置は、長さ方向カウンタ３５のカウント値が“０”の時に、セレクタ３４を介して参照アドレスレジスタ３６に供給される。参照アドレスレジスタ３６は、例えば整数値を格納するレジスタであり、受け取ったパターン参照位置のデータを整数に丸めた結果を格納する。参照アドレスレジスタ３６に格納されるアドレスは、加算器３７によって“１”が加算され、セレクタ３４に供給される。長さ方向カウンタ３５のカウント値が“１”以上の場合には、セレクタ３４は加算器３７の加算結果を選択して、カウント値が増加するたびに加算結果を参照アドレスレジスタ３６に供給する。これによって、長さ方向カウンタ３５のカウント値に応じて、パターン参照位置に対応する参照アドレスを描画開始点として、参照アドレスが順次増加されていく。ここで長さ方向カウンタ３５が図２の長さ方向制御装置１５に対応し、セレクタ３４、参照アドレスレジスタ３６、及び加算器３７がパターン線形補間装置１９に対応する。
【００４２】
上記のようにして順次生成される参照アドレスは、破線パターンメモリ３８に供給され、破線データが順次読み出される。この破線データは、フレームバッファライト制御３９に供給される。フレームバッファライト制御３９は、描画アドレス生成ユニット４０から供給される描画アドレスに対応するフレームバッファ４１内の各画素に対して、破線データに応じた描画処理を実行する。
【００４３】
以下に、本発明の第２の実施例を説明する。
【００４４】
フレームバッファにおいては、通常、垂直方向に走査して描画するよりも水平方向に走査して描画する方が、描画速度が早い。前述のように直線の垂直方向の長さをΔｙとし水平方向の長さをΔｘとして、Δｙ＞Δｘの場合には、垂直主軸の直線を複数本描くのではなく、指定された幅の長さを持つ水平方向の直線を何本も描くようにすれば、フレームバッファに対する描画速度を向上させることができる。
【００４５】
図５（ａ）乃至（ｃ）に、垂直主軸の直線を何本もの水平直線を引くことで描画する様子を示す。
【００４６】
図５に示されるように、各水平直線の始点における破線パターン参照アドレスは、最初の水平直線に対しては０であり、１本水平直線を引くごとに１、２、・・・と順次増加していく。即ち、描画処理に用いられる破線データの開始点データは、最初の水平直線がデータ０であり、次の水平直線がデータ１、更に次の水平直線がデータ２、・・・と順次増加していく。
【００４７】
また、ある１本の水平直線を描画する際、１画素描くたびに傾き値（Δｘ／Δｙ）／２を破線パターン参照位置に加算していくことによって、破線パターン参照位置を変更させていく。その参照位置を整数に丸めることで、各画素に対する破線パターンの参照アドレスを求めることが出来る。
【００４８】
図６は、本発明による描画装置の第２実施例の構成を示す図である。
【００４９】
図６の描画装置１０Ａは、座標算出装置１１、傾き算出装置１２、直線線形補間装置１３Ａ、幅方向制御装置１４、長さ方向制御装置１５、画素描画装置１６、右１ビットシフト装置１７、パターン始点位置線形補間装置１８Ａ、パターン線形補間装置１９Ａ、パターン参照装置２０、破線パターンメモリ２１、及びフレームバッファ２２を含む。図６において、図２と同一の要素は同一の番号で参照される。
【００５０】
直線描画情報として、描画する直線の始点座標及び終点座標、描画する直線の太さ、等が与えられる。座標算出装置１１は、描画する直線の始点座標から直線の始点座標アドレス（Ｘアドレス及びＹアドレス）を算出する。傾き算出装置１２は、描画する直線の始点座標及び終点座標から、描画する直線の傾きを算出する。直線線形補間装置１３Ａは、座標算出装置１１から供給される直線の始点座標アドレスに対して、傾き算出装置１２から供給される直線の傾きに応じたＸＹ増加分を加算していくことで、描画する直線上の各点のＸＹアドレスを算出する。
【００５１】
長さ方向制御装置１５は、描画情報に基づいて、描画する直線の長さに応じた数だけ画素をカウントする。このカウント値による制御に基づいて、長さ方向制御装置１５は、幅方向制御装置１４を所定の回数だけ動作させ、所定の本数の水平直線を順次並べて描画させることで、所定の幅及び長さの直線を実現する。何本目の直線を描画するかを示すカウント情報が、パターン始点位置線形補間装置１８Ａに供給される。
【００５２】
幅方向制御装置１４は、長さ方向制御装置１５のカウント値の制御の下に、描画する直線の幅に応じた数だけ、即ち実際に走査して描画する水平直線の長さに応じた数だけ画素をカウントする。このカウントに応じて、直線線形補間装置１３Ａが生成した描画する直線上の各点のＸＹアドレスに対して、水平Ｘアドレスをインクリメントしていくことで、実際に走査して描画する水平直線上の各画素のＸＹアドレスが得られる。描画する水平直線上の画素のＸＹアドレスは、画素描画装置１６に供給される。
【００５３】
右１ビットシフト装置１７は、傾き算出装置１２から傾き値データを受け取り、傾き値データを右に１ビットシフトさせることで、傾き値の１／２のデータを生成する。このデータは、パターン線形補間装置１９Ａに供給される。
【００５４】
パターン始点位置線形補間装置１８Ａは、長さ方向制御装置１５からのカウント値が第ｎ本目の直線の描画を示す場合には、描画開始点のパターン参照位置としてｎを出力する。開始点パターン参照位置は、パターン線形補間装置１９Ａに供給される。
【００５５】
パターン線形補間装置１９Ａは、幅方向制御装置１４から供給される画素カウントに応じて、開始点パターン参照位置に対して傾き値の１／２のデータを順次加算していく。その結果を四捨五入や切り上げ等の丸め処理によって整数値に変換して、パターン参照装置２０に供給する。パターン参照装置２０は、破線パターンメモリ２１の指定される参照アドレスから、破線パターンのデータを読み出して、画素描画装置１６に供給する。
【００５６】
画素描画装置１６は、幅方向制御装置１４から供給される走査水平直線上の画素のＸＹアドレスに対して、パターン参照装置２０から供給される破線データに応じた描画処理を実行する。
【００５７】
このようにして本発明による描画装置１０Ａによれば、垂直主軸の複数の破線を並べて太い幅の破線を形成する際に、水平直線を繰り返し描画することで高速な描画速度を実現すると共に、描画する水平直線の各画素に対するパターン参照位置を傾き情報に応じて順次ずらすことによって、破線断面を破線延長方向に適した方向に調整することが可能となり、自然な見かけの描画結果を得ることが出来る。
【００５８】
図７は、図６に示される描画装置１０Ａによって実行される破線描画処理を示すフローチャートである。まず初期値として、幅方向のカウント及び長さ方向のカウントをゼロとしておく。
【００５９】
ステップＳ１において、描画する直線の始点座標及び終点座標から、描画する直線の傾きを算出する。
【００６０】
ステップＳ２において、描画する直線の始点座標から直線の始点座標アドレス（Ｘアドレス及びＹアドレス）を算出し、直線の傾きに応じたＸＹ増加分を加算していくことで、描画する直線上の各点のＸＹアドレスを算出する。この各ＸＹアドレスが、実際に走査して描画する水平直線の開始点座標となる。
【００６１】
ステップＳ３において、長さ方向（垂直主軸の破線の延長方向）のカウント値がｎで第ｎ本目の水平直線の描画を示す場合には、描画開始点のパターン参照位置をｎとする。
【００６２】
ステップＳ４において、開始点パターン参照位置に対して傾き値の１／２のデータを順次加算し、その結果を四捨五入や切り上げ等の丸め処理によって参照アドレスに変換して、参照アドレスから破線パターンのデータを順次読み出す。
【００６３】
ステップＳ５において、始点座標アドレスから出発し、幅方向カウント値に応じてＸアドレスを順次インクリメントして、描画する水平直線上の点を求め、破線パターンデータに応じた描画処理をする。
【００６４】
ステップＳ６において、幅方向のカウントを１つ増やしてステップＳ５に戻る。なお幅方向のカウント値が、描画する垂直主軸の直線の幅に一致する場合には、１本の水平直線の描画が終了したとしてステップＳ７に進む。
【００６５】
ステップＳ７において、長さ方向のカウントを１つ増やしてステップＳ２及びＳ３に戻る。なお長さ方向のカウント値が、描画する垂直主軸の直線の長さに一致する場合には、目的とする破線の描画が終了したとして描画処理を終了する。
【００６６】
図８は、図６に示される描画装置１０Ａのパターン参照位置制御に関する部分の具体的な構成を示す構成図である。図８において、図４と同一の構成要素は同一の番号で参照される。
【００６７】
図８の構成は、バターン始点アドレスレジスタ５１、加算器５２、セレクタ５３、幅方向カウンタ５４、参照アドレスレジスタ５５、右シフタ５６、加算器５７、破線パターンメモリ３８、フレームバッファライト制御３９、描画アドレス生成ユニット４０、及びフレームバッファ４１を含む。
【００６８】
バターン始点アドレスレジスタ５１は最初に“０”を格納しており、加算器５２がバターン始点アドレスレジスタ５１の内容と“１”とを加算し、その結果をバターン始点アドレスレジスタ５１に再格納する。この加算演算は、実際に走査して描画する水平直線の１本を描画して次の１本の描画を開始する度に実行される。このバターン始点アドレスレジスタ５１及び加算器５２が、図６のパターン始点位置線形補間装置１８Ａに対応する。
【００６９】
加算器５２の出力であるパターン参照位置は、幅方向カウンタ５４のカウント値が“０”の時に、セレクタ５３を介して参照アドレスレジスタ５５に供給される。参照アドレスレジスタ５５は、例えば実数値を格納するレジスタであり、受け取ったパターン参照位置のデータをそのまま格納する。
【００７０】
右シフタ５６は、供給される傾きデータを右に１ビットシフトして、傾き値の１／２を生成する。参照アドレスレジスタ５５に格納される参照位置は、加算器５７によって傾き値の１／２が加算され、セレクタ５３に供給される。幅方向カウンタ５４のカウント値が“１”以上の場合には、セレクタ５３は加算器５７の加算結果を選択して、カウント値が増加するたびに加算結果を参照アドレスレジスタ５５に供給する。これによって、幅方向カウンタ５４のカウント値に応じて、描画開始点のパターン参照位置から参照位置が順次増加されていく。
【００７１】
上記のようにして順次生成されるパターン参照位置は整数値に丸められて、参照アドレスとして参照アドレスレジスタ５５から破線パターンメモリ３８に供給される。これによって破線データが順次読み出され、フレームバッファライト制御３９に供給される。フレームバッファライト制御３９は、描画アドレス生成ユニット４０から供給される描画アドレスに対応するフレームバッファ４１内の各画素に対して、破線データに応じた描画処理を実行する。
【００７２】
以上の説明においては、第１の実施例と第２の実施例とを独立したものとして説明したが、両者を組み合わせて、描画対象の直線が水平主軸の場合には第１の実施例の描画方法を実施し、描画対象の直線が垂直主軸の場合には第２の実施例の描画方法を実施するように、描画対象の直線の傾きに応じて処理を切り換えるように構成してよい。
【００７３】
この場合の描画装置の構成としては、図２と図６とで構成が共通する部分、或いは図４と図８とで構成が共通する部分に関しては、第１の実施例の処理と第２の実施例の処理との間で共有する構成とすれば、装置規模をそれ程増大することなく高速な描画処理を実現することが出来る。
【００７４】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００７５】
【発明の効果】
ここに記載の描画装置によれば、破線パターンであって幅のある直線を描画する際、直線の傾きに対して略９０°の断面をもつ破線が描画できる。直線の傾きを利用して破線パターン参照位置を変更する方式を採用しているので、従来の方式に比べて装置規模が小さく、また短い処理時間で描画処理を実行することが出来る。具体的には、傾きの１／２の値を用いて参照位置を変更するが、傾き値を右方向に１ビットシフトさせるだけで傾きの１／２の値を得られるので、そのための装置規模も大きくならない。
【００７６】
また主軸が垂直方向の破線を描画する際には、フレームメモリ上で繰り返し水平方向に走査して複数の水平直線を描くことで、描画処理時間を短縮することが出来ると共に、各画素に対する参照位置を傾きに応じて算出することで、直線の傾きに対して略９０°の断面をもつ破線が描画できる。
【図面の簡単な説明】
【図１】（ａ）は、本発明の破線描画方法により第１本目の破線を描画した結果を示し、（ｂ）は、第２本目の破線を描画した結果を示し、ｃ）は、第３本目の破線を描画した結果を示す図である。
【図２】本発明による描画装置の第１実施例の構成を示す図である。
【図３】図２に示される描画装置によって実行される破線描画処理を示すフローチャートである。
【図４】図２に示される描画装置のパターン参照位置制御に関する部分の具体的な構成を示す構成図である。
【図５】（ａ）乃至（ｃ）は、垂直主軸の直線を何本もの水平直線を引くことで描画する様子を示す図である。
【図６】本発明による描画装置の第２実施例の構成を示す図である。
【図７】図６に示される描画装置によって実行される破線描画処理を示すフローチャートである。
【図８】図６に示される描画装置のパターン参照位置制御に関する部分の具体的な構成を示す構成図である。
【符号の説明】
１０  描画装置
１１  座標算出装置
１２  傾き算出装置
１３  直線線形補間装置
１４  幅方向制御装置
１５  長さ方向制御装置
１６  画素描画装置
１７  右１ビットシフト装置
１８  パターン始点位置線形補間装置
１９  パターン線形補間装置
２０  パターン参照装置
２１  破線パターンメモリ
２２  フレームバッファ
【図１】
0004387611.tif 000002
【図２】
0004387611.tif 000003
【図３】
0004387611.tif 000004
【図４】
0004387611.tif 000005
【図５】
0004387611.tif 000006
【図６】
0004387611.tif 000007
【図７】
0004387611.tif 000008
【図８】
0004387611.tif 000009