(57)【特許請求の範囲】
【請求項１】
入力された情報から描画する太線の始点及び終点と該太線の線幅とを認識する初期値認識手段と、
該初期値認識手段で認識された始点と終点とを結ぶ直線上の座標を走査する基準線走査手段と、
該基準線走査手段で走査された座標と前記始点との間の距離を演算する距離演算手段と、
該距離演算手段での演算結果と前記基準線走査手段で走査された座標とを基に、前記始点と終点とを結ぶ直線に直交しかつ前記初期値認識手段で認識された太線の線幅と等しい長さを有する画素列を生成する法線ベクトル生成手段と、
該法線ベクトル生成手段で生成された画素列を前記基準線走査手段で走査された座標毎に発生させる太線描画手段と、
前記太線の描画領域内で画素が発生していない画素抜けがあるか否かを判定する画素抜け判定手段と、
前記画素抜け判定手段で画素抜けがあると判定された際にその画素抜けのある座標上に画素を補充する法線ベクトルに基づく描画手段とを備えてなり、
前記距離演算手段は、前記基準線走査手段で走査された座標と前記始点との間の距離を演算するのにあたり、当該座標の前に前記基準線走査手段が走査した座標を２つまで逆上り、これら２つの座標間の距離を用いて当該演算を行う
ことを特徴とする太線描画装置。
【請求項２】
入力された情報から描画する太線の始点及び終点と該太線の線幅とを認識する初期値認識ステップと、
該初期値認識ステップで認識された始点と終点とを結ぶ直線上の座標を走査する基準線走査ステップと、
該基準線走査ステップで走査された座標と前記始点との間の距離を演算する距離演算ステップと、
該距離演算ステップでの演算結果と前記基準線走査ステップで走査された座標とを基に、前記始点と終点とを結ぶ直線に直交しかつ前記初期値認識ステップで認識された太線の線幅と等しい長さを有する画素列を生成する法線ベクトル生成ステップと、
該法線ベクトル生成ステップで生成された画素列を前記基準線走査ステップで走査された座標毎に発生させる太線描画ステップと、
前記太線の描画領域内で画素が発生していない画素抜けがあるか否かを判定する画素抜け判定ステップと、
該画素抜け判定ステップで画素抜けがあると判定された際にその画素抜けのある座標上に画素を補充する法線ベクトルに基づく描画ステップとを備えてなり、
前記距離演算ステップでは、前記基準線走査ステップで走査された座標と前記始点との間の距離を演算するのにあたり、当該座標の前に前記基準線走査ステップで走査した座標を２つまで逆上り、これら２つの座標間の距離を用いて当該演算を行う
ことを特徴とする太線描画方法。
【請求項３】
入力された情報から描画する破線の線分の長さ及び線分間隔を認識する破線初期値認識手段と、
該破線初期値認識手段での認識結果と前記距離演算手段での演算結果とに基づき、前記線分間隔に相当する位置に前記画素列を発生しないように前記太線描画手段に指示を与える線分間隔判定手段と
が設けられたことを特徴とする請求項１記載の太線描画装置。
【請求項４】
前記基準線走査手段で走査された座標の中で水平方向または垂直方向のいずれか一方が連続して同一である座標の数を算出する連続座標数算出手段と、
該連続座標数算出手段により算出された座標の数でかつ該座標が連続する方向に、前記画素列に伴って新たに画素を一括して発生するように前記太線描画手段に指示を与える連続画素描画手段と
が設けられたことを特徴とする請求項１または３記載の太線描画装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、プリンタ装置やプロッタ装置等を用いて太線を描画したり、ＣＡＤ（Computer Aided Design ）システムやコンピュータグラフィックス等において太線を描画する太線描画装置および太線描画方法に関するものである。
【０００２】
【従来の技術】
従来、太線描画装置としては、例えば、描画しようとする太線の始点及び終点とこの太線の線幅が入力されると、図１４に示すような方法を用いて所望する太線を描画するものが知られている。
図１４（ａ）に示す方法を用いた太線描画装置では、公知の技術であるＤＤＡ（Digital Differential Analyzer;ディジタル微分解析機）アルゴリズムに基づき、設定された線幅を直径とする円形の画素パターンを、設定された始点から終点まで重ね合わせることによって、所望する太線を描画するようになっている。また、例えば、特開平４−２３１７９号公報に開示された太線描画装置のように、始点において円形の画素パターンが描画された後は、この円形の画素パターンから矩形の画素パターンを生成することによって、画素パターンを重ね合わせる際に重複してアクセスされる画素の数を低減させたものもある。
【０００３】
また、図１４（ｂ）に示す方法を用いた太線描画装置では、ＤＤＡアルゴリズムに基づき１画素分の線幅を有する直線を、設定された始点から終点まで生成し、この生成した直線を複数本、即ち入力された太線の線幅分描画することにより所望する太線を描画するようになっている。このような太線描画装置としては、例えば特開平５−２４２２５９号公報に開示された装置がある。
さらに、図１４（ｃ）に示す方法を用いた太線描画装置では、先ず入力された始点及び終点と線幅から太線の輪郭線を描画し、その後に公知の技術である塗りつぶし処理を用いて前記輪郭線の内側を塗りつぶすことにより、所望する太線を描画するようになっている。
【０００４】
【発明が解決しようとする課題】
ところで、これらの太線描画装置では、太線の描画角度がどのような角度であっても、入力された線幅でその太線を描画しなければならない。
図１４（ａ）に示す方法を用いた太線描画装置や特開平４−２３１７９号公報に開示された太線描画装置では、画素パターンの重ね合わせにより太線を描画するので、その太線がどの描画角度であっても入力された線幅で描画が行われるが、そのために重複してアクセスされる画素が発生し、太線の描画に多くの時間を費やしてしまう。また、入力された線幅から円形の画素パターンを生成する処理や予め画素パターンを登録しておく処理等が必要になるため、処理が煩雑になってしまい、そのための処理時間が発生してしまう。
【０００５】
また、図１４（ｂ）に示す方法を用いた太線描画装置（例えば、特開平５−２４２２５９号公報に開示された装置）では、太線の描画角度によって線幅に対応する１画素分の直線の本数が異なるため、その本数を算出するための算出時間が必要である。また、描画角度によっては１画素分の直線の始点と終点、即ち太線の端縁を設定する処理が複雑になってしまい、その処理に多くの時間を費やしてしまう。
さらに、図１４（ｃ）に示す方法を用いた太線描画装置では、太線の描画角度によって太線の輪郭線を描画するための処理が複雑になってしまい、また、輪郭線の内側の塗りつぶし処理を行う領域が大きくなると、前記輪郭線の座標を保持するために膨大なメモリ容量が必要となってしまう。よって、これらの処理を行うための処理時間が多く必要となってしまう。
【０００６】
そこで、本発明は、描画する太線の描画角度がどの角度であっても、設定された太線の線幅でかつ高速処理による描画を行う太線描画装置および太線描画方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、上記目的を達成するために案出された太線描画装置で、入力された情報から描画する太線の始点及び終点とこの太線の線幅とを認識する初期値認識手段と、この初期値認識手段で認識された始点と終点とを結ぶ直線上にある座標を走査する基準線走査手段と、この基準線走査手段で走査された座標と前記始点との間の距離を演算する距離演算手段と、この距離演算手段での演算結果と前記基準線走査手段で走査された座標とを基に、前記始点と終点とを結ぶ直線に直交しかつ前記初期値認識手段で認識された太線の線幅と等しい長さを有する画素列を生成する法線ベクトル生成手段と、この法線ベクトル生成手段で生成された画素列を前記基準線走査手段で走査された座標毎に発生させる太線描画手段と、前記太線の描画領域内で画素が発生していない画素抜けがあるか否かを判定する画素抜け判定手段と、この画素抜け判定手段で画素抜けがあると判定された際にその画素抜けのある座標上に画素を補充する法線ベクトルに基づく描画手段とを備えてなり、前記距離演算手段は、前記基準線走査手段で走査された座標と前記始点との間の距離を演算するのにあたり、当該座標の前に前記基準線走査手段が走査した座標を２つまで逆上り、これら２つの座標間の距離を用いて当該演算を行うものである。
また、本発明は、上記目的を達成するために案出された太線描画方法で、入力された情報から描画する太線の始点及び終点とこの太線の線幅とを認識する初期値認識ステップと、この初期値認識ステップで認識された始点と終点とを結ぶ直線上の座標を走査する基準線走査ステップと、この基準線走査ステップで走査された座標と前記始点との間の距離を演算する距離演算ステップと、この距離演算ステップでの演算結果と前記基準線走査ステップで走査された座標とを基に、前記始点と終点とを結ぶ直線に直交しかつ前記初期値認識ステップで認識された太線の線幅と等しい長さを有する画素列を生成する法線ベクトル生成ステップと、この法線ベクトル生成ステップで生成された画素列を前記基準線走査ステップで走査された座標毎に発生させる太線描画ステップと、前記太線の描画領域内で画素が発生していない画素抜けがあるか否かを判定する画素抜け判定ステップと、この画素抜け判定ステップで画素抜けがあると判定された際にその画素抜けのある座標上に画素を補充する法線ベクトルに基づく描画ステップとを備えてなり、前記距離演算ステップでは、前記基準線走査ステップで走査された座標と前記始点との間の距離を演算するのにあたり、当該座標の前に前記基準線走査ステップで走査した座標を２つまで逆上り、これら２つの座標間の距離を用いて当該演算を行うことを特徴とする。
【０００８】
【作用】
上記構成の太線描画装置および上記手順の太線描画方法において太線を描画する際には、先ず初期値認識手段（ステップ）によって描画しようとする太線の始点及び終点とその線幅が認識される。
続いて、基準線走査手段（ステップ）では、初期値認識手段（ステップ）で認識された始点と終点とを結ぶ直線上にある座標を、前記始点から順に走査する。このとき、距離演算手段（ステップ）では、基準線走査手段（ステップ）で走査された座標と始点との間の距離を演算により求めている。
そして、距離演算手段（ステップ）による演算結果と初期値認識手段（ステップ）で認識された線幅とが等しくなる座標まで基準線走査手段（ステップ）が走査すると、法線ベクトル生成手段（ステップ）では、例えば、前記座標と始点との間で走査された全ての座標を９０°回転させ、回転後の座標上に太線の描画に必要な画素を発生させる。つまり、法線ベクトル生成手段（ステップ）では、初期値認識手段で認識された始点と終点とを結ぶ直線に直交し、かつ太線の線幅と等しい長さを有する画素列を生成する。
法線ベクトル生成手段で画素列が生成されると、太線描画手段（ステップ）では、この画素列を、初期値認識手段（ステップ）で認識された始点から終点まで基準線走査手段（ステップ）で走査された座標毎に発生させる。このとき、画素抜け判定手段（ステップ）は、太線の描画領域内で画素抜けがあるか否かを判定する。そして、画素抜けがあると、法線ベクトルに基づく描画手段（ステップ）は、その画素抜けのある座標上に画素を補充する。
この画素列および補充画素の発生により、所望する線幅の太線が始点から終点まで描画される。
【０００９】
【実施例】
以下、図面に基づき本発明に係わる太線描画装置および太線描画方法について説明する。
【００１０】
〔第１実施例〕
ここでは、請求項１記載の発明に係わる太線描画装置および請求項２記載の発明に係わる太線描画方法について説明する。
先ず、太線描画装置の構成について説明する。本実施例の太線描画装置は、例えばパーソナルコンピュータやワークステーション等からなるもので、図１のブロック図に示すように、初期値認識手段１と、基準線走査手段２と、距離演算手段３と、法線ベクトル生成手段４と、太線描画手段５と、フレームメモリ６とを備えたものである。
初期値認識手段１は、キーボードやマウス等の入力装置からなるもので、使用者（ユーザ）が入力した描画しようとする太線の初期値（始点及び終点の座標とその線幅）を認識するものである。但し、三角関数を用いた演算機能を設けて、例えばユーザが入力した始点の座標、太線の長さ及び線幅、描画角度から、始点及び終点の座標と線幅を認識するものであってもよい。
【００１１】
基準線走査手段２、距離演算手段３、法線ベクトル生成手段４、太線描画手段５は、それぞれＣＰＵ（Central Processing Unit ）等の演算装置からなるものである。これらの各手段によって、図２に示すように、初期値設定手段１で入力された始点と終点とを結ぶ方向に直交し、かつ入力された線幅と等しい大きさの法線ベクトルが生成され、この法線ベクトルを活用して所望する太線が描画されるようになっている。
また、図１において、フレームメモリ６は、ＲＡＭ（Random Access Memory）等の半導体メモリやハードディスク装置等の外部記憶装置からなるもので、太線描画手段５で発生された太線を描画するための画素を格納するものである。尚、このフレームメモリ６に格納された太線は、図示しないプリンタ装置やＣＲＴ（Cathode-Ray Tube）装置等の表示装置によって出力されるようになっている。
【００１２】
次に、本発明の特徴部分である基準線走査手段２、距離演算手段３、法線ベクトル生成手段４、太線描画手段５のそれぞれについて、図３のブロック図を参照して説明する。
基準線走査手段２は、ＤＤＡによる座標発生手段２ａと、走査座標格納手段２ｂとを備えてなるものである。
ＤＤＡによる座標発生手段２ａは、ＤＤＡアルゴリズムに基づいて、初期値認識手段１で認識された始点と終点とを結ぶ直線（以下、基準線と称す）上に位置する座標を始点から順に終点まで走査するものである。
走査座標格納手段２ｂは、ＤＤＡによる座標発生手段２ａで走査された座標を一時的に保持するものである。
【００１３】
距離演算手段３は、移動距離演算手段３ａと、線副走査判定手段３ｂとを備えてなるものである。
移動距離演算手段３ａは、後述する方法を用いてＤＤＡによる座標発生手段２ａで走査された座標と始点との間の距離を演算するものである。
線副走査判定手段３ｂは、移動距離演算手段３ａによって演算された距離と、初期値認識手段１で認識された太線の線幅とを比較して、始点からの距離が前記太線の線幅に最も近い位置にある座標を判定するものである。
【００１４】
法線ベクトル生成手段４は、９０°回転手段４ａと、法線ベクトル格納手段４ｂとを備えてなるものである。
９０°回転手段４ａは、走査座標格納手段２ｂに保持されている座標を、初期値認識手段１で認識された始点を中心に時計方向に９０°回転させて、回転後の座標上に太線の描画に必要な画素を発生するものである。但し、９０°回転手段４ａでは、線副走査判定手段３ｂにより判定された座標と始点との間にある座標だけを回転させるようになっている。
法線ベクトル格納手段４ｂは、９０°回転手段４ａが発生した画素を一時的に保持するものである。即ち、法線ベクトル格納手段４ｂには、基準線に直交し、かつ初期値認識手段１で認識された線幅と同等の長さをもつ画素列（以下、法線ベクトルと称す）が保持されるようになっている。
【００１５】
太線描画手段５は、基準線移動処理手段５ａと、画素抜け判定手段５ｂと、法線ベクトルに基づく描画手段５ｃと、終了条件判定手段５ｄとを備えてなるものである。
基準線移動処理手段５ａは、後述するように法線ベクトルに基づく描画手段５ｃが基準線上の座標に法線ベクトルを発生させる際に、この法線ベクトルを基準線上の座標に対してどの位置に発生させるかを設定するものである。即ち、基準線移動処理手段５ａは、法線ベクトルを、例えば基準線の始点から終点に向かう方向に対して基準線の右側に発生させるか、或いは左側に発生させるか、或いは基準線の両側に振り分けて発生させるか等を設定するものである。但し、この基準線移動処理手段５ａにおける設定は、予めユーザにより行われるようになっている。
画素抜け判定手段５ｂは、法線ベクトルに基づく描画手段５ｃが法線ベクトルを発生させる際に、描画する太線の領域内で画素が発生していない部分、所謂画素抜けがあるか否かを判定するものである。但し、この画素抜け判定手段５ｂでは、例えばＤＤＡによる座標発生手段２ａによって走査された基準線上の座標のｙ座標の値を基に、画素抜けがあるか否かを判定するようになっている。
【００１６】
法線ベクトルに基づく描画手段５ｃは、基準線移動処理手段５ａでの設定に従って、基準線上の座標、即ちＤＤＡによる座標発生手段２ａで走査され走査座標格納手段２ｂに保持されている座標上に、法線ベクトル格納手段４ｂに保持されている法線ベクトルを発生させるものである。また、法線ベクトルに基づく描画手段５ｃは、画素抜け判定手段５ｂで画素抜けがあると判定された際に、その画素抜けのある座標上に画素を補充するものである。
終了判定手段５ｄは、法線ベクトルに基づく描画手段５ｃが法線ベクトルを初期値入力手段１で入力された終点まで発生したか否かを判定するものである。
【００１７】
次に、以上のように構成された太線描画装置の基本的な動作例、即ち太線描画方法の手順について説明する。ここでは、先ず、本実施例の太線描画装置が法線ベクトルを生成する動作例について、図４のフローチャートを参照して説明する。
初期値認識手段１で描画しようとする太線の始点及び終点とその線幅とが認識されると（ステップ１０１、以下ステップをＳと略す）、ＤＤＡによる座標発生手段２ａでは、基準線上の座標を前記始点に隣接する座標から順に走査する（Ｓ１０２）。そして、走査座標格納手段２ｂでは、ＤＤＡによる座標発生手段２ａで走査された座標を一時的に保持する（Ｓ１０３）。
【００１８】
このとき、移動距離演算手段３ａがＤＤＡによる座標発生手段２ａで走査された座標と始点との間の距離を演算しているので（Ｓ１０４）、線副走査判定手段３ｂでは、その演算結果と初期値認識手段１で認識された太線の線幅とを比較する（Ｓ１０５）。そして、移動距離演算手段３ａでの演算結果、即ち始点からの距離が太線の線幅に最も近い座標がＤＤＡによる座標発生手段２ａによって走査されるまで、上述のステップ（Ｓ１０２〜Ｓ１０５）が繰り返される。
始点からの距離が太線の線幅に最も近い座標が走査されると、９０°回転手段４ａでは、走査座標格納手段２ｂに保持されている座標を全て取り出して、始点を中心として時計方向に９０°回転させ、回転後の座標上に太線の描画に必要な画素を発生させる（Ｓ１０６）。そして、法線ベクトル格納手段４ｂでは、これらの画素を法線ベクトルとして一時的に保持する（Ｓ１０７）。
【００１９】
ここで、上述の法線ベクトルの生成の動作例について、図５を参照して具体的に説明する。尚、図中に示す格子は、この太線描画装置の解像度によって定められるもので、その格子の交点（座標）が画素の中心位置となっている。
初期値認識手段１で始点ｐ０と終点ｐｅとが認識されると、ＤＤＡによる座標発生手段２ａでは、基準線上で始点ｐ０に最も近い座標ｐ１から走査して、走査座標格納手段２ｂに保持する。
このとき、移動距離演算手段３ａでは、走査された座標ｐ１と始点ｐ０との間の距離を演算し、さらに線副走査判定手段３ｂでは、その演算結果と初期値設定手段１で認識された太線の線幅とを比較する。但し、走査された座標ｐ１と始点ｐ０との間の距離は、太線の線幅に満たないので、ＤＤＡによる座標発生手段２ａでは、次の座標ｐ２を走査する。
【００２０】
このようにして、始点からの距離が太線の線幅に最も近い座標ｐ３が走査されるまで、走査座標格納手段２ｂには順次走査された座標が保持される。
座標ｐ３が走査座標格納手段２ｂに保持されると、９０°回転手段４ａでは、走査座標格納手段２ｂに保持されている全ての座標ｐ１、ｐ２、ｐ３を取り出して、始点ｐ０を中心としてこれらを９０°回転させて、回転後の位置にある座標ｐ１′、ｐ２′、ｐ３′と始点ｐ０とにそれぞれ画素を発生させる。そして、法線ベクトル格納手段４ｂには、これらの画素、即ちｖ０〜ｖ３に連続する画素列が法線ベクトルとして保持される。
【００２１】
以上のようにして法線ベクトルが生成されると、続いて、本実施例の太線描画装置では、図６のフローチャートに示すように、生成された法線ベクトルを活用して太線の描画を行う。
法線ベクトル格納手段４ｂに法線ベクトルが保持されると、ＤＤＡによる座標発生手段２ａでは、基準線上の座標を始点から順に走査する（Ｓ２０１）。そして、法線ベクトルに基づく描画手段５ｃでは、基準線移動処理手段５ａでの設定に従って、走査された座標上に法線ベクトルを発生させる（Ｓ２０２）。
このとき、画素抜け判定手段５ｂでは、ＤＤＡによる座標発生手段２ａによって走査された基準線上の座標のｙ座標の値を基に、画素抜けがあるか否かを判定しているので（Ｓ２０３）、画素抜けがある場合には、法線ベクトルに基づく描画手段５ｃが画素抜けのある座標上に画素を補充する（Ｓ２０４）。
【００２２】
画素抜けがない場合や画素の補充が終了した場合には、法線ベクトルに基づく描画手段５ｃで発生された法線ベクトル或いは補充された画素が、フレームメモリ６へ送出されて、このフレームメモリ６に格納される（Ｓ２０５）。
但し、法線ベクトル或いは補充された画素がフレームメモリ６へ送出される際に、終了判定手段５ｄでは、ＤＤＡによる座標発生手段２ａが基準線上の座標を終点まで走査したか否か、即ち法線ベクトルに基づく描画手段５ｃが法線ベクトルを終点上に発生したか否かを判定しているので（Ｓ２０６）、終点上に法線ベクトルを発生するまで上述のステップ（Ｓ２０１〜Ｓ２０６）が繰り返される。
【００２３】
法線ベクトルに基づく描画手段５ｃが終点上に法線ベクトルを発生すると、フレームメモリ６には基準線上の始点から終点までの間の各座標上に発生された法線ベクトルが格納される。つまり、フレームメモリ６には、所望する太線を描画するために必要な画素が全て格納されている。そして、これらの画素が、このフレームメモリ６から外部の表示装置へ送出されて、太線として出力される。
【００２４】
ここで、上述の太線の描画の動作例について、図７を参照して具体的に説明する。
法線ベクトル（図５におけるｖ０〜ｖ３）が生成されると、ＤＤＡによる座標発生手段２ａでは、始点ａ０と終点ｆ０とを結ぶ基準線上の座標を始点ａ０から順に走査する。ＤＤＡによる座標発生手段２ａが始点ａ０を走査すると、法線ベクトルに基づく描画手段５ｃでは、始点ａ０上に法線ベクトルａ０〜ａ３を発生させる。但し、ここでは、基準線移動処理手段５ａでの設定に従い、基準線の始点から終点に向かう方向に対して右側（図中の法線方向）に法線ベクトルを発生させるようになっている。そして、この法線ベクトルａ０〜ａ３は、フレームメモリ６に格納される。
【００２５】
続いて、ＤＤＡによる座標発生手段２ａが基準線上で始点ａ０に隣接する座標ｂ０を走査し、その座標ｂ０上に法線ベクトルに基づく描画手段５ｃが法線ベクトルｂ０〜ｂ３を発生させ、その法線ベクトルｂ０〜ｂ３がフレームメモリ６に格納される。そして、以下同様に、ＤＤＡによる座標発生手段２ａが終点ｆ０を走査するまで、法線ベクトルの発生とその格納が行われる。
但し、座標ｃ０上に発生された法線ベクトルｃ０〜ｃ３と、座標ｄ０上に発生された法線ベクトルｄ０〜ｄ３との間のように、基準線上におけるｙ座標が異なると、画素抜けが生じてしまう場合がある。そのために、画素抜け判定手段５ｂでは、ＤＤＡによる座標発生手段２ａにより座標ｄ０が走査された時点で、座標ｃ０と座標ｄ０とのｙ座標の値が異なるので、画素抜けが生じてしまうことを判定する。そして、法線ベクトルに基づく描画手段５ｃでは、画素抜け判定手段５ｂによる判定に従い、法線ベクトルｄ０〜ｄ３を座標ｄ０上に発生させるとともに、画素抜けが生じてしまう座標上に画素を補充する。
このようにして、本実施例の太線描画装置では、所望する太線の描画が行われる。
【００２６】
次に、移動距離演算手段３ａにおける基準線上のそれぞれの座標と始点との間の距離の演算について説明する。
基準線上の座標はＤＤＡによる座標発生手段２ａにより始点から順次走査されているので、移動距離演算手段３ａでは、隣接する座標間の距離を累積することにより、始点からの距離を演算するようになっている。但し、本実施例における移動距離演算手段３ａでは、演算による累積誤差を低減するために、演算する座標の前に走査した座標を２つまで逆上り、これら２つの座標間の距離を用いて演算を行うようになっている。
【００２７】
つまり、移動距離演算手段３ａでは、図８に示すように、新たに走査する座標（以下、次座標と称す）Pn+1についての演算を行う場合に、先ずこの次座標Pn+1と既に走査している座標（以下、現座標と称す）Pnとの間の移動距離を暫定移動距離Dnとして演算する。このとき、隣接する座標間の単位距離をｘ軸方向、ｙ軸方向共に１とすると、次座標Pn+1と現座標Pnとの間の暫定移動距離Dnは、１または√２のいずれか一方である。
そして、この暫定移動距離Dnと、現座標Pnの前に走査した座標（以下、前座標と称す）Pn-1から現座標Pnまでの移動距離Dpとに基づき、新たに現座標Pnから次座標Pn+1までの移動距離を演算し直して、その演算結果を始点から現座標Pnまでの距離に加算することにより、始点から次座標Pn+1までの距離とする。
【００２８】
具体的には、例えば、前座標Pn-1から現座標Pnまでの移動距離Dpが１、現座標Pnから次座標Pn+1までの暫定移動距離Dnが√２であるとすると、前座標Pn-1から次座標Pn+1までの距離は√５である。よって、最終的に移動距離演算手段３ａでは、現座標Pnから次座標Pn+1までの加算距離を√５−１として、始点から現座標Pnまでの累積距離に加算する。
この累積距離の加算結果は、移動距離演算手段３ａ内のレジスタ等に保持されて、さらに次の座標Pn+2までの累積距離を演算する際に用いられる。
【００２９】
即ち、本実施例の移動距離演算手段３ａでは、以下のような計算アルゴリズムを用いて、基準線上の座標と始点との間の距離の演算を行っている。
それは、図９に示すように、先ず現座標Pnから次座標Pn+1までの暫定移動距離Dnと、前座標Pn-1から現座標Pnまでの移動距離Dpを認識する（Ｓ３０１）。
そして、暫定移動距離Dnが１であるか否かを判断する（Ｓ３０２）。
暫定移動距離Dnが１であれば、続いて移動距離Dpが√２であるか否かを判断する（Ｓ３０３）。
移動距離Dpが√２でなければ、現座標Pnから次座標Pn+1までの加算距離を１として、始点から現座標Pnまでの累積距離に加算する（Ｓ３０４）。また、移動距離Dpが√２であれば、現座標Pnから次座標Pn+1までの加算距離を√５−√２として、始点から現座標Pnまでの累積距離に加算する（Ｓ３０５）。
【００３０】
一方、暫定移動距離Dnが１でなければ、続いて移動距離Dpが１であるか否かを判断する（Ｓ３０６）。
移動距離Dpが１であれば、現座標Pnから次座標Pn+1までの加算距離を√５−１として、始点から現座標Pnまでの累積距離に加算する（Ｓ３０７）。また、移動距離Dpが１でなければ、現座標Pnから次座標Pn+1までの加算距離を√２として、始点から現座標Pnまでの累積距離に加算する（Ｓ３０８）。
【００３１】
以上のように、本実施例の太線描画装置および太線描画方法では、太線の描画を行う際に、法線ベクトル生成手段４が生成した法線ベクトルを、描画する太線の始点と終点とを結ぶ基準線上の各座標に太線描画手段５が発生させ、かつ画素抜けを画素抜け判定手段５ｂにより未然に防ぐことにより、太線の描画を行うようになっている。従って、太線の描画角度がどのような角度であっても、法線ベクトルの長さを線幅とした太線を始点から終点まで描画することができる。
また、法線ベクトルが基準線上の座標に発生されるので、太線の描画する際に重複してアクセスされる画素が無く、太線の描画の高速処理を実現することができる。さらに、基準線上を走査された座標より法線ベクトルを生成するので、予め画素パターンを登録しておく等の煩雑な処理が必要ない。また、描画角度がどのような角度であっても、太線の線幅及びその端縁が法線ベクトルによって描画されるので、複雑な処理やその処理を行うための膨大なメモリ容量を必要としない。従って、太線の描画する際の処理時間を従来のものに比べて短縮することができる。
【００３２】
尚、本実施例では、画素抜け判定手段５ｂが基準線上の座標のｙ座標の値を基に画素抜けの判定を行う場合について説明したが、これは描画する太線の描画角度が水平方向に対して４５°以下である場合に適用するものであって、例えば描画する太線の描画角度が水平方向に対して４５°以上である場合には、基準線上の座標のｘ座標の値を基に画素抜けの判定を行わなければならない。つまり、画素抜け判定手段５ｂでは、太線の描画角度によって画素抜けの判定を行うためのパラメータを可変させる機能を有することにより、全ての描画角度に対応可能となる。
【００３３】
〔第２実施例〕
ここでは、請求項３記載の発明に係わる太線描画装置について説明する。
但し、上述した第１実施例と同一の構成要素については、同一の符号を付与しその説明を省略する。
本実施例の太線描画装置は、図１０に示すように、第１実施例の太線描画装置加えて、破線初期値認識手段１ａと、線分間隔判定手段３ｃとが設けられたものである。
【００３４】
破線初期値認識手段１ａは、初期値認識手段１と同様にキーボードやマウス等の入力装置からなるもので、描画しようとする太線が破線である場合に、その破線の線分の長さ及び線分間隔を認識するものである。
線分間隔判定手段３ｃは、距離演算手段３に設けられたものであり、移動距離演算手段３ａでの演算結果に基づき、破線初期値認識手段１ａで認識された破線の線分間隔に相当する位置の座標には、法線ベクトルを発生しないように法線ベクトルに基づく描画手段５ｃに対して指示を与えるものである。
【００３５】
次に、本実施例の太線描画装置で太線の破線を描画する動作例について、図１１を参照して具体的に説明する。
本実施例の太線描画装置では、第１実施例と同様に、法線ベクトル（図５におけるｖ０〜ｖ３）を生成した後に、ＤＤＡによる座標発生手段２ａが始点ａ０と終点ｊ０とを結ぶ基準線上の座標を始点ａ０から順に走査し、法線ベクトルに基づく描画手段５ｃが走査された座標上に法線ベクトルを発生させる。
このとき、線分間隔判定手段３ｃでは、破線初期値認識手段１ａで認識された破線の線分の長さ及び線分間隔と、移動距離演算手段３ａでの演算結果とを比較して、ＤＤＡによる座標発生手段２ａの走査した座標が、前記破線の線分部分に位置するか或いは線分間隔に位置するかを判定している。
【００３６】
そして、法線ベクトルに基づく描画手段５ｃでは、座標ｅ０及びｆ０のように線分間隔判定手段３ｃで線分間隔に位置すると判定された座標には、線分間隔判定手段３ｃからの指示に従い、法線ベクトルを発生しない。
よって、描画しようとする太線が破線であっても、破線初期値認識手段１ａでの認識と線分間隔判定手段３ｃのよる指示に従い、法線ベクトルを活用して所望する線幅の破線が描画される。
【００３７】
以上のようにして、本実施例の太線描画装置では、破線初期値認識手段１ａでの認識に従い、線分間隔判定手段３ｃが破線の線分間隔には法線ベクトルを発生しないように法線ベクトルに基づく描画手段５ｃに指示を与えるので、描画する太線が破線である場合であっても、法線ベクトルを活用して破線が描画される。従って、破線の描画角度がどのような角度であっても、所望する線幅の破線を始点から終点まで描画することができる。また、破線を描画するための複雑な設定やそれに伴う煩雑な処理、特に破線の線分の端縁を描画する際に複雑な処理を必要としないので、描画する太線が破線である場合であっても、容易に対応することができるという効果を奏する。
【００３８】
〔第３実施例〕
ここでは、請求項４記載の発明に係わる太線描画装置について説明する。
但し、上述した第１実施例或いは第２実施例と同一の構成要素については、同一の符号を付与しその説明を省略する。
本実施例の太線描画装置は、図１２に示すように、第２実施例の太線描画装置加えて、連続座標数算出手段５ｅと、連続画素描画手段５ｆとが設けられたものである。
【００３９】
連続座標数算出手段５ｅは、ＤＤＡによる座標発生手段２ａにより基準線上の座標が始点から順に走査され、画素抜け判定手段５ｂで画素抜けが生じると判定されるまでに、水平方向に連続する座標、即ち前記始点とｙ座標の値が同一である座標が幾つあるかを算出するものである。
連続画素描画手段５ｆは、法線ベクトルに基づく描画手段５ｃがＤＤＡによる座標発生手段２ａにより走査された座標上に法線ベクトルを発生させる際に、この法線ベクトルの発生に伴い、水平方向に連続する画素を連続座標数算出手段５ｅにより算出された数だけ一括して発生させるものである。
【００４０】
次に、本実施例の太線描画装置で太線（但し、ここでは連続線とする）を描画する動作例について、図１３を参照して具体的に説明する。
本実施例の太線描画装置では、第１実施例及び第２実施例と同様に、法線ベクトル（図５におけるｖ０〜ｖ３）を生成した後に、ＤＤＡによる座標発生手段２ａが始点ａ０と終点ｊ０とを結ぶ基準線上の座標を始点ａ０から順に走査する。このとき、ＤＤＡによる座標発生手段２ａが、座標ｄ０のように基準線上でｙ座標の異なる座標を走査すると、画素抜け判定手段５ｂでは、画素抜けが生じると判定される。そして、連続座標数算出手段５ｅでは、始点ａ０から座標ｄ０までの間に始点ａ０とｙ座標の値が同一である座標が、始点ａ０、座標ａ０１、座標ａ０２の３つであると算出する。
【００４１】
連続座標数算出手段５ｅによりｙ座標の値の同一である座標の数が３つであると算出されると、連続画素描画手段５ｆでは、法線ベクトルに基づく描画手段５ｃが始点ａ０上に法線ベクトルａ０〜ａ３を発生させる際に、この法線ベクトルａ０〜ａ３から水平方向に連続する画素を３つ一括して発生させるように指示を与える。この連続画素描画手段５ｆからの指示に従い、法線ベクトルに基づく描画手段５ｃでは、始点ａ０〜座標ａ０２上に一括して画素を発生させ、続いて座標ａ１〜座標ａ１３、座標ａ２〜座標ａ２３、座標ａ３〜座標ａ３３上にそれぞれに一括して画素を発生させる。
【００４２】
そして、法線ベクトルａ０〜ａ３及びこれに連続する画素を一括して発生させると、次に連続画素描画手段５ｆでは、法線ベクトルに基づく描画手段５ｃに対して、基準線上でｙ座標の異なる座標ｄ０上に、始点ａ０の場合と同様に法線ベクトルｄ０〜ｄ３及びこれに連続する画素を一括して発生させるように指示を与える。但し、このとき画素抜け判定手段５ｂでは画素抜けが生じると判定しているので、画素抜けが生じる座標ｄ３′においては、そこに補充する画素を加えた４画素ｄ３′〜ｄ３３が、法線ベクトルに基づく描画手段５ｃによって一括して発生される。
そして、上述の動作を終点まで繰り返すことにより、法線ベクトルを活用した所望する線幅の破線が描画される。
【００４３】
以上のように、本実施例の太線描画装置では、連続座標数算出手段５ｅにより基準線上で水平方向に連続する座標の数が算出され、この算出結果と連続画素描画手段５ｆによる指示に従って、この法線ベクトルと共に水平方向に連続する画素が一括して発生されるようになっている。即ち、太線描画手段５で発生された画素がフレームメモリ６へ送出される際に、連続座標数算出手段５ｅで算出された数の水平方向に連続する画素が、一括して送出されるようになっている。
このとき、フレームメモリ６では、一般的にその記憶領域内の主走査方向（水平方向）を走査した後に副走査方向（垂直方向）を走査して、送出された画素を格納するように構成されているので、太線描画手段５から水平方向に連続する画素を一括して送出することにより、フレームメモリ６に対する見掛け上のアクセス回数が減り、太線を描画するために必要な処理時間をより短縮することができるという効果を奏する。
【００４４】
尚、本実施例では、連続座標数算出手段５ｅ及び連続画素描画手段５ｆが、水平方向に連続する座標及び画素に対応している場合について説明したが、垂直方向に連続する場合であっても同様に対応可能である。
【００４５】
【発明の効果】
以上に説明したように、本発明の太線描画装置は、法線ベクトル生成手段により生成された画素列（法線ベクトル）を、描画する太線の始点と終点とを結ぶ直線（基準線）上の各座標に太線描画手段が発生させることにより、太線の描画を行うようになっている。そして、基準線上におけるｙ座標が異なると画素抜けが生じてしまうこともあるが、その場合には画素抜け有無の判定を経た後、画素抜けが生じてしまう座標上に画素を補充する。従って、法線ベクトルの長さを線幅とした太線が始点から終点まで描画されるので、太線の描画角度がどのような角度であっても、所望する線幅を有する太線を得ることができる。
また、基準線上の座標に法線ベクトルを発生することにより太線が描画されるので、太線の描画する際に重複してアクセスされる画素が無く、また予め画素パターンを登録しておく等の煩雑な処理が必要ない。さらに、太線の線幅及びその端縁が法線ベクトルによって描画されるので、描画角度がどのような角度であっても、複雑な処理やその処理を行うための膨大なメモリ容量を必要としない。
従って、太線の描画する際の処理時間を従来のものに比べて短縮することができ、太線の描画の高速処理を実現できるという効果を奏する。
【図面の簡単な説明】
【図１】  本発明に係わる太線描画装置の基本的な構成を示すブロック図である。
【図２】  図１の太線描画装置での法線ベクトルによる太線描画方法を示す説明図である。
【図３】  図１の太線描画装置の第１実施例の詳細な構成を示すブロック図である。
【図４】  図３の太線描画装置における法線ベクトル生成の動作例を示すフローチャートである。
【図５】  図３の太線描画装置における法線ベクトル生成の具体例を示す説明図である。
【図６】  図３の太線描画装置における太線描画の動作例を示すフローチャートである。
【図７】  図３の太線描画装置における太線描画の具体例を示す説明図である。
【図８】  移動距離演算手段における距離の演算の説明図である。
【図９】  移動距離演算手段での計算アルゴリズムを示すフローチャートである。
【図１０】  本発明に係わる太線描画装置の第２実施例の詳細な構成を示すブロック図である。
【図１１】  図１０の太線描画装置における太線描画の具体例を示す説明図である。
【図１２】  本発明に係わる太線描画装置の第３実施例の詳細な構成を示すブロック図である。
【図１３】  図１２の太線描画装置における太線描画の具体例を示す説明図である。
【図１４】  従来の太線描画装置での太線描画方法を示す説明図である。
【符号の説明】
１  初期値認識手段
２  基準線走査手段
３  距離演算手段
４  法線ベクトル生成手段
５  太線描画手段
【図１】
0003731221.tif 000002
【図２】
0003731221.tif 000003
【図３】
0003731221.tif 000004
【図４】
0003731221.tif 000005
【図５】
0003731221.tif 000006
【図６】
0003731221.tif 000007
【図７】
0003731221.tif 000008
【図８】
0003731221.tif 000009
【図９】
0003731221.tif 000010
【図１０】
0003731221.tif 000011
【図１１】
0003731221.tif 000012
【図１２】
0003731221.tif 000013
【図１３】
0003731221.tif 000014
【図１４】
0003731221.tif 000015