(57)【要約】【課題】  破線の画面描画において、少ない計算量で高速に破線の画像データ生成を行うことができる画面高速描画装置およびその描画処理方法を提供する。【解決手段】  Ｘ軸およびＹ軸で規定されるＸＹ平面上にて、線が描かれる実線部Ｒと線が描かれない空白部Ｂとの繰り返しで構成させる破線を、表示部４０に表示させる画面高速描画装置であって、破線の座標データが入力される入力部１０と、座標データに示される線分に対して、所定方向について所定幅および所定間隔にてマスクするマスク処理を、座標データに示される線分の傾きに応じてマスクする方向を異ならせて行い、マスク処理した部分を空白部とする描画データを作成し、出力する演算処理部２０２と、描画データに基づいて表示部に破線を表示させる出力部４０とを備えた画面高速描画装置およびその描画処理方法である。【選択図】      図１
2006302127.tif 000002
【特許請求の範囲】
【請求項１】
Ｘ軸およびＹ軸で規定されるＸＹ平面上にて、線が描かれる実線部と線が描かれない空白部との繰り返しで構成させる破線を、表示部に表示させる画面高速描画装置であって、
前記破線の座標データが入力される入力部と、
前記座標データに示される線分に対して、所定方向について、所定幅および所定間隔にてマスクするマスク処理を、前記座標データに示される線分の傾きに応じて前記マスクする方向を異ならせて行い、前記マスク処理した部分を前記空白部とする描画データを作成し、出力する演算処理部と、
前記描画データに基づいて前記表示部に前記破線を表示させる出力部と、
を備えたことを特徴とする画面高速描画装置。
【請求項２】
請求項１に記載の画面高速描画装置において、
前記演算処理部は、前記線分の傾きが、前記Ｘ軸に対して＋４５度以下であると判定された場合には前記Ｘ軸方向に前記マスク処理を行い、前記Ｘ軸に対して＋４５度を超えると判定された場合には前記Ｙ軸方向に前記マスク処理を行う画面高速描画装置。
【請求項３】
請求項１または２に記載の画面高速描画装置において、
前記演算処理部は、前記所定幅を数値ｗとし、前記所定間隔を数値ｍとし、前記線分上の位置を示す数値ｐとしたときに、ｍを法とする数値ｐの剰余算ｐＭｏｄｍが、ｐＭｏｄｍ＞ｗを満たす場合に前記マスク処理を実行する画面高速描画装置。
【請求項４】
請求項１〜３いずれかに記載の画面高速描画装置において、
前記演算処理部が、前記傾きが＋４５度もしくは−４５度と判定された場合に、前記線分の両端のうち一端を前記線分の始点とし、前記線分の他端を終点としたとき、前記終点が前記マスク処理される場合には、前記終点がマスク処理される前記所定幅の前記マスク処理を解除する画面高速描画装置。
【請求項５】
Ｘ軸およびＹ軸で規定されるＸＹ平面上にて、線が描かれる実線部と線が描かれない空白部との繰り返しで構成させる破線を、表示部に表示させる画面高速描画処理方法であって、
前記破線の座標データが入力されるステップと、
前記座標データに示される線分に対して、所定方向について、所定幅および所定間隔にてマスクする処理を、前記座標データに示される線分の傾きに応じて前記マスクする方向を異ならせて行い、前記マスク処理した部分を前記空白部とする描画データを作成し、出力するステップと、
前記描画データに基づいて前記表示部に前記破線を表示させるステップと、
を備え、前記破線を描画させることを特徴とする画面高速描画処理方法。
【請求項６】
請求項５に記載の画面高速描画処理方法において、
前記座標データに示される２つの前記座標で結ばれる線分に対して、前記Ｘ軸に対する傾きを判定させるステップと、
前記傾きが４５度以下であると判定された場合には、前記Ｘ軸方向について、前記所定幅および前記所定間隔にてマスクするマスク処理を行わせるステップと、
前記傾きが４５度を超えると判定された場合には、前記Ｙ軸方向について、前記所定幅および前記所定間隔にてマスクするマスク処理を行わせるステップと、
をさらに有する画面高速描画処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イメージデータ処理を行う装置に係り、特に陰極線管上に破線を描画させる画面高速描画ロジックに関する。
【背景技術】
【０００２】
従来技術の画面上における破線生成は、座標点を繋ぐ線分上の実線部と空白部の長さのデータによって、繰り返し描画することで行われていた。
【０００３】
従来の破線生成方法を、図１１及び図１２を用いて説明する。
【０００４】
図１１は、破線の状態を示す拡大図である。
【０００５】
図１１を参照すると、長さＬ１の実線部Ｒと長さＬ２の空白部Ｂの長さとの和をＬ０とし、Ｌ０を破線の１周期とする。破線は、この実線部Ｒおよび空白部Ｂが繰り返し何周期も描かれて、所望の長さの破線となる。
【０００６】
図１２は、Ｘ軸方向に座標点が昇順の順に並び、この昇順の座標点群を昇順に結んだ折れ線を破線として処理するフローチャートを示す。従来の描画方式は、以下に示す方法で破線の実線部Ｒと空白部Ｂの長さを算出して、破線となる描画データを出力し描画していた。
【０００７】
まず、図に示したように初期設定を行う。累積移動量Ｄは、描く破線の１周期の始点からの累積の移動量とする。
【０００８】
要素番号ｉは、Ｘ軸方向に昇順の順に並んだ座標点の番号を表し（以下、要素番号ｉは、座標点を示す）、Ｘ軸を基準に昇順に割り当てられる。
【０００９】
描画状態ｋは、現在の描画状態を示し（以下、ｋは描画状態を示す）実線部Ｒ描画中は描画状態ｋ＝１であり、空白部Ｂ描画中は描画状態ｋ＝０とする。要素数ｎは、座標点群の要素数を表す。
【００１０】
ここで初期設定は、図中に示したように、累積移動量Ｄ＝０、描画状態ｋ＝１、要素番号ｉ＝１とする（ステップ３０１）。
【００１１】
次に、処理終了判定を行う。現在処理中の要素番号ｉの座標点と、所望の座標点の要素数ｎとの比較を行いｉ＜ｎを満たす限り、ステップ３０３以降の動作を繰り返す。
【００１２】
要素番号ｉと要素数ｎとが、ｉ＜ｎを満たすか否かを判定し（ステップ３０２）ｉ＜ｎを満たさないと判定した場合は、ステップ３０２の左側のＮに沿った流れをたどり、処理は終了する（図中、終了と表示したステップ）。
【００１３】
ステップ３０２の判定において、ｉ＜ｎを満たす場合には、ステップ３０２の下側のＹに沿った流れをたどり、次のステップ３０３に進む。
【００１４】
次に、要素番号ｉの座標点と、次の要素番号（ｉ＋１）の座標点との距離ｄ（ｉ，ｉ＋１）を算出する。要素番号ｉの座標点の座標を（ｘi，ｙi）、次の要素番号（ｉ＋１）の座標点の座標を（ｘi+1，ｙi+1）と表示すると、距離ｄ（ｉ，ｉ＋１）は、ｄ（ｉ，ｉ＋１）＝｛（ｘi+1−ｘi）2＋（ ｙi+1−ｙi）2｝1/2で表される（ステップ３０３）。
【００１５】
ある特定の長さＬｋを設定し、この算出された距離ｄ（ｉ，ｉ＋１）を用いて、Ｄ＋ｄ（ｉ，ｉ＋１）＞Ｌｋが成立するか否かを判定する（ステップ３０４）。
【００１６】
Ｄ＋ｄ（ｉ，ｉ＋１）＞Ｌｋが不成立の場合は、ステップ３０４の左側Ｎに沿った流れをたどり、描画状態ｋで要素番号ｉの座標点から次の要素番号（ｉ＋１）の座標点を結ぶ。この要素番号ｉの座標点から次の要素番号（ｉ＋１）の座標点までを結んで実線部Ｒの線もしくは空白部Ｂを描画する動作の処理命令を、Ｌｉｎｅ（（ｘi，ｙi）， （ｘi+1，ｙi+1），ｋ）と定義して表す。
【００１７】
ここで、描画状態ｋ＝１の場合には、要素番号ｉの座標点から次の要素番号（ｉ＋１）の座標点までを実線で結び実線部Ｒとして描かれ、描画状態ｋ＝０の場合には、要素番号ｉの座標点から次の要素番号（ｉ＋１）の座標点までが空白部Ｂとして描かれる（ステップ３０５）。
【００１８】
描画状態ｋでｉから（ｉ＋１）を結んだ後、ステップ３０５の処理での要素番号ｉの座標点から次の要素番号（ｉ＋１）の座標点までの移動量を移動累積量Ｄに加えて移動累積量Ｄを更新する（ステップ３０６）。
【００１９】
ｉに１を加え処理を次の要素番号ｉ＋１の座標点に移し（ステップ３０７）、図中ステップ３０２に戻る。
【００２０】
ステップ３０４の判定において、Ｄ＋ｄ（ｉ，ｉ＋１）＞Ｌｋが成立する場合は、ステップ３０４の右側のＹに沿った流れをたどり、（ｘi，ｙi）と（ｘi+1，ｙi+1）を結ぶ線分上で（ｘi，ｙi）より距離（Ｌｋ−Ｄ）の点を算出し、その座標点を新たに要素番号ｉ’とし、その座標点を新たに（ｘi’，ｙi’）と定義する（ステップ３０８）。
【００２１】
次に、（ｘi，ｙi）と（ｘi’，ｙi’）とを、描画状態ｋで処理命令Ｌｉｎｅ（（ｘi，ｙi）， （ｘi+1，ｙi+1），ｋ）によって結ぶ。ステップ３０５と同様、描画状態ｋ＝１の場合には、要素番号ｉの座標点から次の要素番号（ｉ＋１）の座標点を実線で結び実線部Ｒとして描かれ、描画状態ｋ＝０の場合には、要素番号ｉの座標点から次の要素番号（ｉ＋１）の座標点が空白部Ｂとして描かれる（ステップ３０９）。
【００２２】
次に、描画状態ｋ＝１−ｋを実行し、描画状態ｋの値を反転させる（ステップ３１０）。
【００２３】
この反転させた結果描画状態ｋが、ｋ＝１か否かを判定する（ステップ３１１）。
【００２４】
ステップ３１１において描画状態ｋが、ｋ＝１でない場合は、ステップ３１１の左側のＮに沿った流れをたどり、要素番号ｉの座標点から要素番号ｉ’の座標点までの距離ｄ（ｉ，ｉ’）を算出し（ステップ３１２）、累積移動量Ｄにその値距離ｄ（ｉ，ｉ’）を加えて累積移動量Ｄを更新する（ステップ３１３）。
【００２５】
ステップ３１３の更新処理の後、要素番号ｉ’を要素番号ｉに代入し、座標点ｘｉ＝ｘi’、ｙi＝ｙi’と更新し（ステップ３１５）、ステップ３０２に戻る。
【００２６】
ステップ３１１においてこの反転させた結果描画状態ｋが、描画状態ｋ＝１である場合は、破線の１周期を終えたことを示し、ステップ３１１の下側のＹをたどり、累積移動量ＤをＤ＝０として初期化する（ステップ３１４）。
【００２７】
ステップ３１４の初期化処理の後、ｉ’をｉに代入し座標点ｘi＝ｘi’、ｙi＝ｙi’と更新し（ステップ３１５）、ステップ３０２に戻る。
【００２８】
このように従来技術の破線生成は、破線の長さに基づいた描画を行っていた。
【００２９】
このような、破線の長さに基づいた描画を行う公知の技術として、基準点と描画点との距離の自乗を演算する手段を有する破線発生装置がある（特許文献１参照）。
【００３０】
また、線画像の各格子点距離ｄｉを自乗して求めることでユークリッド距離を計算する距離計算部を有する線画像描画装置がある（特許文献２参照）。
【００３１】
また、破線表示パターンの実線表示部の長さと、描画すべき区間の直線距離とを比較して実線表示するか空白表示するかを判定するトレース破線制御方式がある（特許文献３参照）。
【００３２】
また、破線を形成する線描部と空白部とを一つのユニットとみなし、このユニット数から線描部と空白部との長さを調整する手段を有した破線生成機構がある（特許文献４参照）。
【００３３】
また、与えられた半径の円周の長さと画要素の長さとを演算する円周・画要素演算手段を用いた円図形描画方式がある（特許文献５参照）。
【特許文献１】特開平５−８０９７０号公報
【特許文献２】特開平５−５４１４６号公報
【特許文献３】特開平２−１０４７０号公報
【特許文献４】特開昭６２−２５６０９１号公報
【特許文献５】特開昭５９−２１７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００３４】
しかしながら、上に示したような長さを基準とした破線生成方法では、計算量が膨大になる。
【００３５】
ステップ３０３における２点間の距離ｄ（ｉ，ｉ＋１）の算出には、べき乗と平方根の処理が必要である。
【００３６】
また、ステップ３０８における直線上の一点の座標を算出する際には、始点からの距離のみから三角関数を用い直線の角度を算出した後に座標を算出する事となる。
【００３７】
例えば、直線の始点を座標（０，０）とし 直線の終点を座標（ｘ，ｙ）とした場合には、  直線のＸ軸からの角度θ［単位：ｄｅg］は、θ＝ｔaｎ-1（ｙ／ｘ）と表され、直線の始点から距離ｌの座標点の座標（ｘl，ｙl）は、次に示すようになる。
【００３８】
ｘl＝ｌｃｏｓθ
ｙl＝ｌｃｏｓ（９０−θ）
このように従来の破線描画方法は、乗算・除算などの複雑な計算を繰り返し行う事が多く、計算機に対して負担となり、計算機の処理能力の低い環境においては十分に機能できず、高速な描画の妨げになるという問題があった。
【００３９】
そこで本発明の目的は、乗算・除算を行わない計算量の少ない高速の破線生成方法を提供することである。
【課題を解決するための手段】
【００４０】
上記目的を達成するために、本発明による画面高速描画装置の第１の発明は、Ｘ軸およびＹ軸で規定されるＸＹ平面上にて、線が描かれる実線部と線が描かれない空白部との繰り返しで構成させる破線を、表示部に表示させる画面高速描画装置であって、
前記破線の座標データが入力される入力部と、
前記座標データに示される線分に対して、所定方向について、所定幅および所定間隔にてマスクするマスク処理を、前記座標データに示される線分の傾きに応じて前記マスクする方向を異ならせて行い、前記マスク処理した部分を前記空白部とする描画データを作成し、出力する演算処理部と、
前記描画データに基づいて前記表示部に前記破線を表示させる出力部と、
を備えた画面高速描画装置である。
【００４１】
第２の発明は、第１の発明に記載の画面高速描画装置において、
前記演算処理部は、前記線分の傾きが、前記Ｘ軸に対して＋４５度以下であると判定された場合には前記Ｘ軸方向に前記マスク処理を行い、前記Ｘ軸に対して＋４５度を超えると判定された場合には前記Ｙ軸方向に前記マスク処理を行うものである。
【００４２】
第３の発明は、第１または第２の発明に記載の画面高速描画装置において、
前記演算処理部は、前記所定幅を数値ｗとし、前記所定間隔を数値ｍとし、前記線分上の位置を示す数値ｐとしたときに、ｍを法とする数値ｐの剰余算ｐＭｏｄｍが、ｐＭｏｄｍ＞ｗを満たす場合に前記マスク処理を実行するものである。
【００４３】
第４の発明は、第１〜３の発明いずれかに記載の画面高速描画装置において、
前記演算処理部が、前記傾きが＋４５度もしくは−４５度と判定された場合に、前記線分の両端のうち一端を前記線分の始点とし、前記線分の他端を終点としたとき、前記終点が前記マスク処理される場合には、前記終点がマスク処理される前記所定幅の前記マスク処理を解除するものである。
【００４４】
第５の発明は、Ｘ軸およびＹ軸で規定されるＸＹ平面上にて、線が描かれる実線部と線が描かれない空白部との繰り返しで構成させる破線を、表示部に表示させる画面高速描画処理方法であって、
前記破線の座標データが入力されるステップと、
前記座標データに示される線分に対して、所定方向について、所定幅および所定間隔にてマスクする処理を、前記座標データに示される線分の傾きに応じて前記マスクする方向を異ならせて行い、前記マスク処理した部分を前記空白部とする描画データを作成し、出力するステップと、
前記描画データに基づいて前記表示部に前記破線を表示させるステップと、
を備え、前記破線を描画させる画面高速描画処理方法である。
【００４５】
第６の発明は、第５の発明に記載の画面高速描画処理方法において、
前記座標データに示される２つの前記座標で結ばれる線分に対して、前記Ｘ軸に対する傾きを判定させるステップと、
前記傾きが４５度以下であると判定された場合には、前記Ｘ軸方向について、前記所定幅および前記所定間隔にてマスクするマスク処理を行わせるステップと、
前記傾きが４５度を超えると判定された場合には、前記Ｙ軸方向について、前記所定幅および前記所定間隔にてマスクするマスク処理を行わせるステップと、
をさらに有する方法である。
【００４６】
このような画面高速描画処理を行うことで、線分の傾きを判定し、判定された傾きの度合いにより、Ｘ軸方向にマスク処理するか、Ｙ軸方向にマスク処理するかを選択することができる。
【００４７】
このマスク処理する方向がＸ軸方向のみである処理方法であると、線分の傾きが４５°を超えるような急な傾きの線分にマスク処理した際に、所定幅および所定間隔にてのマスク処理に対して破線の実線部および空白部がそれぞれ長くなり、周期の間延びした破線が描画される。
【００４８】
またマスク処理する方向がＹ軸方向のみである処理方法であると、線分の傾きが４５°以下の緩やかな傾きの線分にマスク処理した際に、所定幅および所定間隔にてのマスク処理に対して破線の実線部および空白部がそれぞれ長くなり、周期の間延びした破線が描画される。
【００４９】
本発明は、簡単な演算処理によって、破線を描画できるうえに、このマスク処理の方向を選択することで、破線の実線部と空白部との間隔が間延びすることなく、破線の実線部の長さと空白部の長さとを一定の範囲内に納めることを可能としている。
【００５０】
また、入力された線分の傾きが＋４５°もしくは−４５°の場合には、この線分の終点部分で破線が空白部となる特異点が生じるが、この特異点を有する線分の傾きを検出して、マスクを解除させる事によりマスクが連続して破線の空白部が連続して、線分の連続で形成された線が転回して折れ曲がった部分の角が欠けるような不自然な状態になることを防ぎ、線分の終点部分のマスクが所定幅分だけ解除処理されることにより、線分の終点部分で破線が実線部として描画される。
【００５１】
この画面高速描画処理は、加算、減算といった負荷の軽い演算処理のみを行っているので、処理能力の低い環境においても高速に描画できると優れた効果を奏する。
【００５２】
本発明によれば、手書き入力によるコンピューターグラフィックス描画といった用途に適用できる。また、処理能力に制限があるモバイル分野の機器における表示装置の高速化の手段にも適用可能である。
【発明の効果】
【００５３】
本発明によれば、乗算・除算を行わない計算量の少ない処理により、計算機の処理能力の低い環境においても充分高速に機能する画面高速描画装置およびその描画処理方法を提供することができる。
【発明を実施するための最良の形態】
【００５４】
本発明を実施するための実施形態について、図面を参照して詳細に説明する。
【００５５】
本実施形態の画面高速描画装置は、Ｘ軸およびＹ軸で規定されるＸＹ平面上にて、線が描かれる実線部と線が描かれない空白部との繰り返しで構成させる破線を、表示部に表示させる装置である。
【００５６】
図１は、本実施形態の画面高速描画装置の構成例を示すブロック図である。
【００５７】
図１を参照すると、画面高速描画装置は、描画を行う際に描画する破線の座標データを入力する入力部１０と、この入力部１０に入力された破線の座標データを処理して、画面上に描画するための描画データを生成するデータ生成処理部２０と、このデータ生成処理部２０で生成された描画データに基づいて画面上に表示する出力部４０と、入力部１０からの入力によりデータ生成処理部２０が描画データを生成して出力部４０に出力する処理を制御するＣＰＵ（Central Processing Unit：中央処理装置）などからなる制御部３０とを備えて構成される。
【００５８】
入力部１０と、データ生成処理部２０と、出力部４０と、制御部３０とは、互いに接続されている。
【００５９】
入力部１０は、描画するための破線の座標データ（破線描画の座標点）を画面高速描画装置のユーザが入力して、描画指示をするタッチパネル、マウスなどの入力端末である。
【００６０】
出力部４０は、入力部１０に入力された描画するための破線の座標データをデータ生成処理部２０が演算処理して、この演算処理の結果生成された描画データを用いて、入力部４０で指示された描画を画面高速描画装置の画面上に破線を描画・表示するＬＣＤ（Liquid Crystal Display：液晶表示装置）、ＣＲＴ（Cathode Ray Tube：陰極線管）などの表示部を有する出力端末である。
【００６１】
データ生成処理部２０は、ユーザが入力した破線の座標データ（破線描画の座標点）を記憶する入力記憶部２０１と、入力された破線の座標データ（破線描画の座標点）を処理して描画する破線の座標データを出力する演算処理部２０２と、演算処理部２０２で処理された座標データを記憶する演算出力記憶部２０３とを備えて構成される。
【００６２】
入力記憶部２０１は、入力部１０にてユーザが指定した破線の座標データを一時記憶する記憶部である。
【００６３】
演算処理部２０２は、入力記憶部２０１に記憶された破線の座標データにより、描画を行うための破線の演算を行う処理部であり、座標データに示される線分に対して、所定方向について所定幅および所定間隔にてマスクするマスク処理を座標データに示される線分の傾きに応じてマスクする方向を異ならせて行い、マスク処理した部分を空白部とする描画データを作成して出力する線分データ設定の機能を有している。
【００６４】
演算出力記憶部２０３は、演算処理部２０２で演算処理した結果による描画データ（座標点のデータ）を記憶し、この座標点のデータを出力部４０に出力する記憶部である。
【００６５】
次に、この画面高速描画装置の動作について、図１〜図４を参照して詳細に説明する。
【００６６】
図２は、図１に示した構成により描画を行う画面高速描画ロジックを示すフローチャートである。
【００６７】
先ず、画面高速描画装置のユーザが、タッチパネル、マウスなどの入力部１０を介して、描画するための破線の座標データを入力する。
【００６８】
この入力部１０に入力された描画するための破線の座標データは、データ生成処理部２０に転送される。
【００６９】
データ生成処理部２０に転送された描画するための破線の座標データ（破線描画の座標点）は、入力記憶部２０１に一時記憶されると共に、演算処理部２０２に転送される。
【００７０】
この描画するための破線の座標データは、Ｘ軸およびＹ軸で規定されるＸＹ平面上にて破線を描画するためのデータである。
【００７１】
演算処理部２０２は、この描画するための破線の座標データが入力されると、この破線の座標データに基づいて、座標データで示される破線となる元の線を直線として近似できる線分に分割する。
【００７２】
この分割する前の破線となる座標データで示す線が、一筆書きできるような連続した直線または曲線でありかつこの一筆書きの始点および終点が線の両端として存在する場合には、この座標データで示される線の両端のいずれかＸＹ平面上の原点Ｏに近い点をこの線の始点として、この始点から分割された線分の座標データが出現する順に要素番号ｉ（要素番号ｉは、自然数とする）を１，２，３，．．．，と割り当て、この座標データで示される線の両端のうち原点Ｏから遠い点を終点として要素番号ｉ＝ｎを割り当てることで、各座標データの座標点に要素番号ｉ＝１，２，３，．．．，ｎを割り振る。
【００７３】
この分割する前の破線となる座標データで示す線が、例えば円、楕円のように線の両端が存在しないような連続した直線または曲線で描かれる場合には、ＸＹ平面上の原点Ｏに最も近い点をこの線の始点として、この始点から分割された線分の座標データが出現する順に要素番号ｉ（要素番号ｉは、自然数とする）を１，２，３，．．．，と割り当て、この座標データで示される線の始点に再び戻った時に、この点を終点として要素番号ｉ＝ｎを割り当てることで、各座標データの座標点に要素番号ｉ＝１，２，３，．．．，ｎを割り振る。
【００７４】
なお、この分割する前の破線となる座標データで示す線が、一筆書きできるような連続した直線または曲線でありかつこの一筆書きの始点および終点が線の両端として存在し、この座標データで示される線の両端のいずれもがＸＹ平面上の原点Ｏから等距離にある場合には、両端のいずれかを始点と決めて、この始点から分割された線分の座標データが出現する順に要素番号ｉ（要素番号ｉは、自然数とする）を１，２，３，．．．，と割り当て、この座標データで示される線の両端の他方の点を終点として要素番号ｉ＝ｎを割り当てることで、各座標データの座標点に要素番号ｉ＝１，２，３，．．．，ｎを割り振る。
【００７５】
また、この分割する前の破線となる座標データで示す線が、例えば円、楕円のように線の両端が存在しないような連続した直線または曲線で描かれる場合で、ＸＹ平面上の原点Ｏに近く原点Ｏからの距離が等しい点が複数存在する場合は、この複数の点のうちのいずれかをこの線の始点として、この始点から分割された線分の座標データが出現する順に要素番号ｉ（要素番号ｉは、自然数とする）を１，２，３，．．．，と割り当て、この座標データで示される線の始点に再び戻った時に、この点を終点として要素番号ｉ＝ｎを割り当てることで、各座標データの座標点に要素番号ｉ＝１，２，３，．．．，ｎを割り振る。
【００７６】
次に、図３（ａ）は、座標データで示される破線となる元の線を直線として近似できる線分に分割した結果、Ｘ軸、Ｙ軸上の線分を示す図である。図３（ｂ）は、破線の状態を示す拡大図である。
【００７７】
ここで、図３（ａ）に示すように、演算処理部２０２は、ＸＹ平面上の要素番号ｉの座標点をＰiと表し、座標点Ｐiの座標を（ｘi，ｙi）と表す。同様に、次の要素番号ｉ＋１の座標点をＰi+1と表し、座標点Ｐi+1の座標を（ｘi+1，ｙi+1）と表す。座標点Ｐiと座標点Ｐi+1とで結ぶ線分を、線分ＰiＰi+1と表し、この線分ＰiＰi+1は、描画される破線の元となる線分であり、上で入力された座標データから直線に近似されて分割された線分に当たる。
【００７８】
また、この描画するための座標データに基づいて、描画する画面上の座標点群の要素数を要素数ｎ（要素数ｎは、自然数とする）で表すと、上で定義したことから分かるように、当然要素番号ｉ＝１，２，３，．．．，ｎとなる。
【００７９】
なお、本実施の形態では、この線分ＰiＰi+1の両端のうち一端の座標点Ｐiをこの線分ＰiＰi+1の始点とし、この線分ＰiＰi+1の両端のうち他端の座標点をこの線分ＰiＰi+1の終点とする。
【００８０】
ここで、描画する破線のパターン（この描画する破線のパターンは、一般的には線分分割用格子線データとも称される）の条件を描画判定式（描画判定式は、一般的にパターン方程式と称されることも多い）Ａ（ｐ）で表す。
【００８１】
描画判定式Ａ（ｐ）は、描画判定式で表す部分（領域）ｐを描画するか、描画しないかを示すもので、描画判定式Ａ（ｐ）＝１は描画判定式Ａ（ｐ）で示した領域ｐを描画することを示し、描画判定式Ａ（ｐ）＝０は描画判定式Ａ（ｐ）で示した領域ｐを描画しないことを示すものと定義することにより、線分分割用格子線データの設定がなされる（ステップ１０１）。
【００８２】
図３（ｂ）に示したように、破線は、長さＬ１の線が描画される実線部Ｒと線が描画されない長さＬ２の空白部Ｂの長さとの和を長さＬ０とし、長さＬ０を破線の１周期とし、この実線部Ｒおよび空白部Ｂが繰り返し何周期も描かれて構成され、所望の長さの破線となる。
【００８３】
説明の簡単のため、図３（ｂ）においては、破線がＸＹ平面上のＸ軸上もしくはＸ軸に平行して描画される場合を想定する。
【００８４】
図３（ｂ）における実線部Ｒの長さＬ１と空白部Ｂの長さＬ２＝Ｌ０−Ｌ１の長さとを定義する。例えばＬ１＝５、Ｌ２＝Ｌ０−Ｌ１＝５とする場合を想定する。
【００８５】
ここで、ｐＭｏｄｍは、数値ｍを法とする数値ｐの剰余算を示すものとすると、例えば、描画判定式Ａ（ｐ）は、ｐＭｏｄ１０≦５ の場合に描画判定式Ａ（ｐ）＝１を返し、ｐＭｏｄ１０＞５の場合に描画判定式Ａ（ｐ）＝０を返す関数として定義する。
【００８６】
このように定義することにより、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1とで結ばれるある線分ＰiＰi+1のある領域（位置）ｐは、この描画判定式Ａ（ｐ）によればその領域（位置）ｐが、マスク処理されない実線部Ｒに該当する線になるのか、マスク処理される空白部Ｂに該当する線になるのかを規定することになる。
【００８７】
この規定によれば、線分上の位置を示す数値ｐは、所定幅ｗ＝５、所定間隔ｍ＝１０で定められたマスク処理されない実線部Ｒであるか、マスク処理される空白部Ｂであるかを描画判定式Ａ（ｐ）が示していることに他ならない。
【００８８】
なお、ｐＭｏｄｍにおける数値ｐおよび数値ｍは、通常整数であるので、上で規定する長さが小数点で表すような数値となっている場合には、何らかの形で整数化した上で、描画判定式Ａ（ｐ）を適用するとよく、所定幅を示す数値ｗも同様である（ステップ１０１）。
【００８９】
次に、ステップ１０１で設定された描画判定式Ａ（ｐ）の条件に従い、演算処理部２０２は描画する描画データ（線分データ）を設定する（ステップ１０２）。
【００９０】
図４は、図２に示したフローチャートのステップ１０２の描画データ（線分データ）の設定について、その手順を詳細に示したフローチャートである。
【００９１】
図示したように、まず、演算処理部２０２は、初期設定を行い、要素番号ｉ＝１とする（ステップ４０１）。
【００９２】
次に、演算処理部２０２は、線分データを設定する処理の終了判定を行う。要素番号ｉと要素数ｎとの比較を行い、要素番号ｉ＜ｎを満たすと判定（ステップ４０２）される限りは、ステップ４０２の下側のＹの流れをたどり、演算処理部２０２は、線分データを設定する処理を繰り返し、要素番号ｉ＜ｎを満たさないと判定（ステップ４０２）された場合には、ステップ４０２の左側のＮの流れをたどり、演算処理部２０２は、処理を終了する。
【００９３】
ステップ４０２において要素番号ｉ＜ｎを満たすと判定された場合には、次に、演算処理部２０２は、図３（ａ）に示すような要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1とを結ぶ線分ＰiＰi+1の傾きを判定する。
【００９４】
図示したように、｜ｘi+1−ｘi｜＝｜ｙi+1−ｙi｜が成立する場合は、演算処理部２０２は、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1の傾きが４５°であると判定する（ステップ４０３）。
【００９５】
｜ｘi+1−ｘi｜＝｜ｙi+1−ｙi｜が成立しない場合は、演算処理部２０２は、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1の傾きが４５°ではないと判定する（ステップ４０３）。
【００９６】
要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1の傾きが４５°であると判定された場合は、演算処理部２０２は、ステップ４０３の左側に示すＹに沿った流れをたどり、ステップ４０４に示す判定処理を行う。
【００９７】
すなわち、演算処理部２０２は、線分ＰiＰi+1の傾きが負であるか否かの判定処理を行い、線分ＰiＰi+1の傾きが負でないと判定された場合には、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1の傾きがＸ軸に対して上向き４５°（傾きが、Ｘ軸に対して反時計回り方向になされる正の傾き４５°）であると判定する（ステップ４０４）。
【００９８】
線分ＰiＰi+1の傾きが負でないと判定された場合には、演算処理部２０２は、ステップ４０４の下側に示すＮに沿った流れをたどり、次にステップ４０５に示すマスク処理を行う。
【００９９】
ステップ４０４で線分ＰiＰi+1の傾きが負でないと判定された場合、もしくは後述するステップ４０６で判定された結果ステップ４０６の左側のＮに沿った流れをたどる場合は、演算処理部２０２は、次に示すようにステップ４０５においてＸ軸方向に対してマスク処理を行う。
【０１００】
ここで、ステップ１０１で定義された描画判定式Ａ（ｐ）で表す描画する部分（領域）ｐであって、この描画する部分がＸ軸方向に帯状に規定される場合を改めて、描画判定式Ａ（ｘ）と定義するものとする。描画判定式Ａ（ｘ）は、式で表すＸ軸方向の部分（領域）ｘを描画するか、描画しないかを示すもので、Ａ（ｘ）＝１は描画判定式Ａ（ｘ）で指定したＸ軸方向の領域ｘを描画することを示し、Ａ（ｘ）＝０は描画判定式Ａ（ｘ）で指定したＸ軸方向の領域ｘを描画しないものと定義する。
【０１０１】
このようにして定義されたＸ軸方向の部分（領域）ｘにおいて、座標点Ｐiと座標点Ｐi+1とを結ぶ線分ＰiＰi+1の上で、描画判定式Ａ（ｘ）＝０を満たす部分は既に説明した通り描画しない部分であるが、画面上ではこの描画しない部分をＸ軸方向に所定幅および所定間隔にてマスクするマスク処理を行う。
【０１０２】
このマスク処理された状態を図５に示す。
【０１０３】
図５を参照すると、マスク処理は、Ｘ軸方向について、所定幅５でかつ所定間隔１０にてマスクされており、Ｘ軸方向に帯状に網掛けになった部分（例えば、図中ｘ＝１０からｘ＝１５までの部分）と、Ｘ軸方向に帯状に網掛けのない白い部分（例えば、図中ｘ＝１５からｘ＝２０までの部分）とが交互に繰り返し現れている。
【０１０４】
この帯状の網掛け部分は、描画判定式Ａ（ｘ）＝１で指定された部分を示し、この網掛け部分には図３（ａ）で示した破線の実線部Ｒに相当する部分が含まれている。
【０１０５】
この帯状に網掛けのない白い部分は、描画判定式Ａ（ｘ）＝０で指定された部分を示し、この網掛けのない白い部分はＸ軸方向にマスク処理されており、このマスク処理のため、この網掛けのない白い部分には図３（ａ）で示した破線の空白部Ｂに相当する部分が含まれている。
【０１０６】
このようにして、座標（ｘi，ｙi）で示される座標点Ｐiと、座標（ｘi+1，ｙi+1）で示される座標点Ｐi+1とで結ばれる線分ＰiＰi+1上で、描画判定式Ａ（ｘ）＝０を満たす範囲がＸ軸方向にマスクされる（ステップ４０５）。
【０１０７】
ステップ４０３において、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1の傾きが４５°でないと判定された場合は、ステップ４０３の右側に示すＮに沿った流れをたどり、次にステップ４０６に示す判定処理を行う。
【０１０８】
ステップ４０６においては、演算処理部２０２は、｜ｘi+1−ｘi｜＜｜ｙi+1−ｙi｜の判定を行うことにより、要素番号ｉの座標点と（ｉ＋１）を結ぶ線分ＰiＰi+1の傾きがＸ軸に対して４５°を超えるか否かを判定する（ステップ４０６）。
【０１０９】
｜ｘi+1−ｘi｜＜｜ｙi+1−ｙi｜が成立する場合すなわち線分ＰiＰi+1の傾きが４５°を超えると判定された場合は、演算処理部２０２は、ステップ４０６の下側のＹの流れをたどり、次にステップ４０７の処理を行う。
【０１１０】
｜ｘi+1−ｘi｜＜｜ｙi+1−ｙi｜が成立しない場合すなわち線分ＰiＰi+1の傾きが４５°を超えない（４５°以下）と判定（ステップ４０６）された場合は、ステップ４０６の左側のＮの流れをたどり既に説明したステップ４０５の処理を行う。
【０１１１】
ステップ４０６において、｜ｘi+1−ｘi｜＜｜ｙi+1−ｙi｜が成立すると判定された場合、もしくは既に説明したステップ４０４で判定された結果ステップ４０４の右側のＹに沿った流れをたどる場合は、次に示すようにステップ４０７においてＹ軸方向に対して所定幅および所定間隔にてマスクするマスク処理を行う。
【０１１２】
ここで、ステップ１０１で定義された描画判定式Ａ（ｐ）で表す描画する部分（領域）ｐであって、この描画する部分がＹ軸方向に帯状に規定される場合を改めて、描画判定式Ａ（ｙ）と定義するものとする。描画判定式Ａ（ｙ）は、式で表すＹ軸方向の部分（領域）ｙを描画するか、描画しないかを示すもので、Ａ（ｙ）＝１は描画判定式Ａ（ｙ）で指定したＹ軸方向の領域ｙを描画することを示し、Ａ（ｙ）＝０は描画判定式Ａ（ｙ）で指定したＹ軸方向の領域ｙを描画しないものと定義する。
【０１１３】
このようにして演算処理部２０２は、定義されたＹ軸方向の部分（領域）ｙにおいて、座標点Ｐiと座標点Ｐi+1とを結ぶ線分ＰiＰi+1の上で、描画判定式Ａ（ｙ）＝０を満たす部分は既に説明した通り描画しない部分であるが、画面上ではこの描画しない部分をＹ軸方向に所定幅および所定間隔にてマスクするマスク処理を行う。
【０１１４】
このマスク処理された状態を図６に示す。
【０１１５】
図６を参照すると、マスク処理は、Ｙ軸方向について、所定幅５でかつ所定間隔１０にてマスクされており、Ｙ軸方向に帯状に網掛けになった部分（例えば、図中ｙ＝０からｙ＝５までの部分）と、Ｙ軸方向に帯状に網掛けのない白い部分（例えば、図中ｙ＝５からｘ＝１０までの部分）とが交互に繰り返し現れている。
【０１１６】
この帯状の網掛け部分は、描画判定式Ａ（ｙ）＝１で指定された部分を示し、この網掛け部分には図３（ａ）で示した破線の実線部Ｒに相当する部分が含まれている。
【０１１７】
このようにして、座標（ｘi，ｙi）で示される座標点Ｐiと、座標（ｘi+1，ｙi+1）で示される座標点Ｐi+1とで結ばれる線分ＰiＰi+1上で、描画判定式Ａ（ｙ）＝０を満たす範囲がＹ軸方向にマスクされる（ステップ４０７）。
【０１１８】
次に、ステップ４０５もしくはステップ４０７のマスク処理の後、演算処理部２０２は、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1とを結ぶ線分ＰiＰi+1の傾きを判定する。
【０１１９】
図示したように、｜ｘi+1−ｘi｜＝｜ｙi+1−ｙi｜が成立する場合は、演算処理部２０２は、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1の傾きが＋４５°もしくは−４５°のいずれかであると判定する（ステップ４２０）。
【０１２０】
｜ｘi+1−ｘi｜＝｜ｙi+1−ｙi｜が成立しない場合は、演算処理部２０２は、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1の傾きが＋４５°、−４５°のいずれでもないと判定する（ステップ４２０）。
【０１２１】
ステップ４２０で｜ｘi+1−ｘi｜＝｜ｙi+1−ｙi｜が成立しないと判定された場合は、ステップ４２０の下側のＮの流れをたどり、次にステップ４２３の処理を行う。
【０１２２】
要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1の傾きが＋４５°もしくは−４５°のいずれかであると判定された場合は、演算処理部２０２は、ステップ４２０の左側に示すＹに沿った流れをたどり、ステップ４２１に示す判定処理を行う。
【０１２３】
すなわち、演算処理部２０２は、線分ＰiＰi+1の傾きが＋４５°であり、線分ＰiＰi+1がステップ４０５によりＸ軸方向にマスクされている場合には、描画判定式Ａ（ｘ）で規定された座標点Ｐi+1のｘ座標ｘi+1が描画判定式Ａ（ｘi+1）＝０をみたすか否かを判定する（ステップ４２１）。
【０１２４】
また、演算処理部２０２は、線分ＰiＰi+1の傾きが−４５°であり、線分ＰiＰi+1がステップ４０７によりＹ軸方向にマスクされている場合には、描画判定式Ａ（ｙ）で規定された座標点Ｐi+1のｙ座標ｙi+1が描画判定式Ａ（ｙi+1）＝０をみたすか否かを判定する（ステップ４２１）。
【０１２５】
ステップ４２１において、描画判定式Ａ（ｘi+1）＝０または描画判定式Ａ（ｙi+1）＝０が成立すると判定された場合には、演算処理部２０２は、ステップ４２１の下側のＹの流れをたどり、次にステップ４２２の処理を行う。
【０１２６】
ステップ４２２においては、線分ＰiＰi+1の終点である座標点Ｐi+1を含む描画判定式Ａ（ｘi+1）＝０または描画判定式Ａ（ｙi+1）＝０で示された所定幅の領域のマスクを解除する。
【０１２７】
例えば、図５に示したＸＹ平面上に傾き＋４５°の線分ＰiＰi+1が（ｘi，ｙi）＝（０，０）から（ｘi+1，ｙi+1）＝（５０，５０）まであると想定すると、座標（ｘi+1，ｙi+1）＝（５０，５０）の座標点Ｐi+1を含むｘ＝４５からｘ＝５０までの領域のマスクがその部分だけ解除される。
同様に、例えば、図６に示したＸＹ平面上に傾き−４５°の線分ＰiＰi+1が（ｘi，ｙi）＝（５０，０）から（ｘi+1，ｙi+1）＝（０，５０）まであると想定すると、座標（ｘi+1，ｙi+1）＝（０，５０）の座標点Ｐi+1を含むｙ＝４５からｙ＝５０までの領域のマスクがその部分だけ解除される。
【０１２８】
このように、入力された元の線分ＰiＰi+1の傾きが＋４５°もしくは−４５°の場合には、この線分ＰiＰi+1の終点Ｐi+1の部分で破線が空白部Ｂとなる特異点が生じるが、この特異点を有する線分ＰiＰi+1の傾きを検出して、マスクを解除させる事によりマスクが連続して破線の空白部Ｂが連続することで線が転回して折れ曲がった部分の角が欠けるような不自然な状態になることを防ぎ、線分ＰiＰi+1の終点Ｐi+1の部分のマスクが所定幅分だけ解除処理されることにより、線分ＰiＰi+1の終点Ｐi+1の部分で破線が実線部Ｒとして描画される。
【０１２９】
このように、座標（ｘi+1，ｙi+1）の座標点Ｐi+1を含む領域のマスクを解除（ステップ４２２）した後、次のステップ４２３に進む。
【０１３０】
このステップ４２２における処理は、角度が＋４５°もしくは−４５°の傾きの線分ＰiＰi+1が次の線分Ｐi+1Ｐi+2に続く際に、この線分ＰiＰi+1と次の線分Ｐi+1Ｐi+2とが折れ線となる部分がマスクされて折れ線の角の部分が描画されないことを防ぐためのマスク処理解除の処理であり、このマスク処理解除の処理のため、角度が＋４５°もしくは−４５°の傾きの線分ＰiＰi+1の終点Ｐi+1に当たる座標（ｘi+1，ｙi+1）を含む部分が実線部Ｒとして描画され、角度が＋４５°もしくは−４５°の線分ＰiＰi+1の終点Ｐi+1の部分が消えることが解消されるという効果を有する。
【０１３１】
ステップ４２１において、描画判定式Ａ（ｘi+1）＝０、描画判定式Ａ（ｙi+1）＝０のいずれも成立しないと判定された場合には、演算処理部２０２は、ステップ４２１の右側のＮの流れをたどり、次にステップ４２３の処理を行う。
【０１３２】
ステップ４２０で｜ｘi+1−ｘi｜＝｜ｙi+1−ｙi｜が成立しないと判定された場合および、ステップ４２１で描画判定式Ａ（ｘi+1）＝０、描画判定式Ａ（ｙi+1）＝０のいずれも成立しないと判定された場合ならびに、ステップ４２２の処理がなされた後、次にステップ４２３の処理を行う。
【０１３３】
ステップ４２３において、演算処理部２０２は、ステップ４０５によりｘ軸方向にマスク処理された図５の平面か、ステップ４０７によりｙ軸方向にマスク処理された図６の平面のいずれかに、要素番号ｉの座標点Ｐiとその次の要素番号（ｉ＋１）の座標点Ｐi+1を結ぶ線分ＰiＰi+1を描画するように指示を出す。
【０１３４】
このとき、線分ＰiＰi+1を描画する命令をＬｉｎｅ（（ｘi，ｙi），（ｘi+1，ｙi+1））と定義し、座標（ｘi，ｙi）から座標（ｘi+1，ｙi+1）までの線分を描くコマンド（命令）Ｌｉｎｅとなっている。
【０１３５】
このコマンド（命令）Ｌｉｎｅにより、図５に示す平面上にＸ軸に対する傾きが４５°以下の傾斜の緩やかな線分ＰiＰi+1により破線を描く描画データを、図７に示す。
【０１３６】
図７を参照すると、帯状の網掛け部分は、描画判定式Ａ（ｘ）＝１で指定された部分を示し、この網掛け部分には図３（ａ）で示した破線の実線部Ｒに相当する部分が描画されている。
【０１３７】
この帯状に網掛けのない白い部分は、描画判定式Ａ（ｘ）＝０で指定された部分を示し、この網掛けのない白い部分はＸ軸方向に所定幅および所定間隔だけマスク処理されており、このマスク処理のため、描画判定式Ａ（ｘ）＝０で指定された領域においては、図１に示す出力部４０への出力には反映されないようになっており、この部分は図に示したように描画されず空白部（図３（ｂ）の空白部Ｂに相当する）となっている。
【０１３８】
帯状の網掛け部分（塗りつぶされた領域）への描画は、図１に示す出力部４０への出力に反映され、帯状の網掛け部分への描画がなされる描画データとなっている（ステップ４２３）。
【０１３９】
なお、図７に示された線分は、この線分の傾きが＋４５°、−４５°のいずれでもない角度となっているため、当然ステップ４２２のマスク解除処理は行われていない。
【０１４０】
命令Ｌｉｎｅ（（ｘi，ｙi），（ｘi+1，ｙi+1））により、図６に示す平面上にＸ軸に対する傾きが４５°を超える傾斜の急な線分ＰiＰi+1により破線を描く描画データを図８に示す。
【０１４１】
図８を参照すると、図７と同様に帯状の網掛け部分は、描画判定式Ａ（ｙ）＝１で指定された部分を示し、この網掛け部分には図３（ａ）で示した破線の実線部Ｒに相当する部分が描画される描画データとなっている。
【０１４２】
この帯状に網掛けのない白い部分は、描画判定式Ａ（ｙ）＝０で指定された部分を示し、この網掛けのない白い部分はマスク処理されており、このマスク処理のため、描画判定式Ａ（ｙ）＝０で指定された領域においては、図１に示す出力部４０への出力には反映されないようになっており、この部分は図に示したように描画されない描画データとなっている。
【０１４３】
帯状の網掛け部分（塗りつぶされた領域）への描画は、図１に示す出力部４０への出力に反映され、帯状の網掛け部分への描画がされる描画データとなっている。（ステップ４２３）。
【０１４４】
なお、図８に示された線分は、この線分の傾きが＋４５°、−４５°のいずれでもない角度となっているため、当然ステップ４２２のマスク解除処理は行われていない。
【０１４５】
このようにしてステップ４０５またはステップ４０７で施したマスク処理をされたことにより、マスク処理された部分の描画がされず、ステップ４２２のマスク解除の処理をされた領域を含むマスク処理されない部分の描画がなされる描画データは、ステップ４２３における処理の後、設定されたマスクをすべて解除する処理が行われる（ステップ４２４）。
【０１４６】
演算処理部２０２が、この設定されたマスクをすべて解除する処理をすることにより、図９もしくは図１０に示すような、描画のための破線データが残る。
【０１４７】
図９は、設定されたＸ軸方向のマスクがすべて解除され４５°以下の傾斜の緩やかな破線が描かれる描画データを示す図である。
【０１４８】
図から分かるように、図中に描画された破線は、破線の傾きが０°でＸ軸に重なる状態のときに、実線部Ｒの長さＬ１＝５、空白部Ｂの長さＬ２＝５の繰り返しとなる破線となり、Ｘ軸に対して傾きが４５°となる破線のときに、実線部Ｒの長さＬ１＝５×２1/2、空白部Ｂの長さＬ２＝５×２1/2の繰り返しとなる破線となっている。
【０１４９】
図１０は、設定されたＹ軸方向のマスクがすべて解除され４５°よりも傾斜の急な破線が描かれる描画データを示す図である。
【０１５０】
図から分かるように、図中に描画された破線は、Ｘ軸に対して傾きが４５°を超える破線のときに、実線部Ｒの長さは、Ｌ１＝５×２1/2を超えずそれよりも短い長さとなり、同様に空白部Ｂの長さは、長さＬ２＝５×２1/2を超えずそれよりも短い長さとなり、この実線部Ｒと空白部Ｂとの繰り返しとなる破線となっており、破線の傾きが９０°でＹ軸に重なる状態のときに、実線部Ｒの長さＬ１＝５、空白部Ｂの長さＬ２＝５の繰り返しとなる破線となっている。
【０１５１】
このように本実施形態において、線分の傾きを判定することで、線分のＸ軸方向とＹ軸方向の変化量を比較して、線分のＸ軸方向の変化量が大きい場合にはＸ軸方向にマスク処理を行い、線分のＹ軸方向の変化量が大きい場合にはＹ軸方向にマスク処理を行うことが可能となる。
【０１５２】
したがって、画面高速描画装置によって処理された描画データは、加算もしくは減算のような簡単な演算処理を行うだけで生成され、この描画データによる破線は、最大でも、実線部Ｒおよび空白部Ｂの各々の長さが設定した所定の長さ、周期の２1/2倍以内に収まることにより、傾きがＸ軸に対して４５°を超える破線においてもＹ軸方向マスク処理を行うことになり、破線の周期が間延びしたものにならず、破線の傾きによらず実線部と破線部よりなる破線の周期が一定範囲内に収まるという優れた効果を得られる。
【０１５３】
なお、ステップ４２２でマスク処理解除の処理を行うことで、破線の空白部Ｂが連続することを解消する効果も得られる。
【０１５４】
演算処理部２０２は、ステップ４２４において設定されたすべてのマスクを解除する処理を行った後、演算出力記憶部２０３に処理後の描画データを出力する。
【０１５５】
演算処理部２０２は、要素番号ｉに１を加算してｉを更新し（ステップ４２５）、ステップ４０２に戻る。
【０１５６】
ステップ４０２の処理終了判定の結果、要素番号ｉが要素数ｎ以上の時（ｉ≧ｎ）に、図４に示した線分データの設定は終了し、演算出力記憶部２０３に記憶された描画データは、図１に示す出力部４０へ出力され（図２のステップ１０２）、出力部４０は、ステップ１０２で設定された線分データ（描画データ）に基づいて、出力部４０の表示部の画面上に所望の破線を表示させる。
【０１５７】
以上説明したような、本発明による画面高速描画装置およびその描画処理方法は次のような優れた効果を有する。
（１）画面高速描画装置およびその描画処理方法は、加算・減算・剰余算のみの計算量の少ない処理を行い、演算処理部に過大な負荷をかけない破線生成方法であるため、処理能力の低い演算処理部を有するものであっても高速に破線を描画できる。
（２）破線の元となる入力された線分の傾きが４５°以下の場合にはマスク処理をＸ軸方向に行い、４５°を超える場合にはマスク処理をＸ軸方向に行うことで、Ｘ軸、Ｙ軸どちら一方向のみの画一的なマスク処理に比べて、破線の周期の変化の少ないより自然な破線を描画できる。
（３）また、入力された線分の傾きが＋４５°もしくは−４５°の場合には、この線分の終点部分で破線が空白部となる特異点が生じるが、この特異点を有する線分の傾きを検出して、この特異点でマスクを解除させる事によりマスクが連続して破線の空白部が連続することで線が転回して折れ曲がった部分の角が欠けるような不自然な状態になることを防ぎ、線分の終点部分のマスクが所定幅分だけ解除処理されることにより、線分の終点部分で破線が実線部として描画される。
【０１５８】
なお、ステップ４２０の判定は、線分の傾きが＋４５°、−４５度に限定して判定しているが、線分の傾きの判定とそれに基づいたマスク解除の処理は、この角度に限定されるものではなく、任意に設定して所望の傾きの線分におけるマスク処理解除を行ってもよい。
【０１５９】
また、ステップ４０３で線分の傾きの判定を行い、再度ステップ４２０で同様の判定処理を行っているが、ステップ４２０ではステップ４０３の判定結果を利用して処理を行ってもよい。
【図面の簡単な説明】
【０１６０】
【図１】本実施形態の画面高速描画装置の構成例を示すブロック図である。
【図２】本実施形態の画面高速描画装置の描画を行う画面高速描画ロジックを示すフローチャートである。
【図３】図３（ａ）は、破線の状態を示す拡大図である。図３（ｂ）は、Ｘ軸、Ｙ軸上の線分を示す図である。
【図４】図２に示した線分データの設定についての手順を詳細に示したフローチャートである。
【図５】Ｘ軸方向にマスクされた状態を示す図である。
【図６】Ｙ軸方向にマスクされた状態を示す図である。
【図７】Ｘ軸方向にマスクされた状態で４５°以下の傾斜の緩やかな破線を描く描画データを示す図である。
【図８】Ｙ軸方向にマスクされた状態で４５°を超える傾斜の急な破線を描く描画データを示す図である。
【図９】Ｘ軸方向のマスクが解除され４５°以下の傾斜の緩やかな破線を描く描画データを示す図である。
【図１０】Ｙ軸方向のマスクが解除され４５°を超える傾斜の急な破線を描く描画データを示す図である。
【図１１】破線の状態を示す拡大図である。
【図１２】従来技術の描画を行う手順を示すフローチャートである。
【符号の説明】
【０１６１】
１０    入力部（タッチパネル、マウス）
２０      データ生成処理部
２０１    入力記憶部
２０２    演算処理部
２０３    演算出力記憶部
３０    制御部
４０    出力部（ＬＣＤ、ＣＲＴ）
ｉ、ｉ＋１    要素番号
ｎ    要素番号
Ａ（ｐ）、Ａ（ｘ）、Ａ（ｙ）    描画判定式
Ｂ    空白部
Ｐi    要素番号ｉの座標点
Ｐi+1    要素番号ｉ＋１の座標点
（ｘi，ｙi）    座標点Ｐiの座標
（ｘi+1，ｙi+1）    座標点Ｐi+1の座標
１０１    ステップ
１０２    ステップ
１０３    ステップ
３０１〜３１５    ステップ
４０１〜４０７    ステップ
４２０〜４２５    ステップ
Ｌ０    破線の周期の長さ
Ｌ１    実線部の長さ
Ｌ２    空白部の長さ
Ｄ    累積移動量
ｉ    要素番号
ｎ    要素数
Ｒ    実線部
【図１】
2006302127.tif 000003
【図２】
2006302127.tif 000004
【図３】
2006302127.tif 000005
【図４】
2006302127.tif 000006
【図５】
2006302127.tif 000007
【図６】
2006302127.tif 000008
【図７】
2006302127.tif 000009
【図８】
2006302127.tif 000010
【図９】
2006302127.tif 000011
【図１０】
2006302127.tif 000012
【図１１】
2006302127.tif 000013
【図１２】
2006302127.tif 000014