JP2007286942A - 描画データ生成方法及びデータプロセッサ - Google Patents
描画データ生成方法及びデータプロセッサ Download PDFInfo
- Publication number
- JP2007286942A JP2007286942A JP2006114158A JP2006114158A JP2007286942A JP 2007286942 A JP2007286942 A JP 2007286942A JP 2006114158 A JP2006114158 A JP 2006114158A JP 2006114158 A JP2006114158 A JP 2006114158A JP 2007286942 A JP2007286942 A JP 2007286942A
- Authority
- JP
- Japan
- Prior art keywords
- coordinate
- point
- coordinate point
- graphic
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【課題】2度描画される画素を発生させずに、指定された太線で所望の図形を描画するための描画データを生成することができる描画データ生成方法及びデータプロセッサを提供する。
【解決手段】線の太さnの円Aの描画データを生成する場合、描画座標生成プログラム(13A)は、第1の円(21)を構成する画素のy座標の上端yAと下端yBを演算する処理(S1)と、この上端から下端に向かって、y座標毎に、第1の円を構成する画素のうち最も外側に位置する画素のx座標と、第2の円(22)を構成する画素のうち最も内側に位置する画素のx座標と、を対応する水平ライン描画情報バッファ(11)に登録する処理(S3、S5)と、を制御する。画素描画プログラム(14A)は、登録された2つのx座標を1組とし、1組に含まれる一方の座標点から他方の座標点に至る座標点のデータに基づいて、描画データを生成する処理(S8)を制御する。
【選択図】図1
【解決手段】線の太さnの円Aの描画データを生成する場合、描画座標生成プログラム(13A)は、第1の円(21)を構成する画素のy座標の上端yAと下端yBを演算する処理(S1)と、この上端から下端に向かって、y座標毎に、第1の円を構成する画素のうち最も外側に位置する画素のx座標と、第2の円(22)を構成する画素のうち最も内側に位置する画素のx座標と、を対応する水平ライン描画情報バッファ(11)に登録する処理(S3、S5)と、を制御する。画素描画プログラム(14A)は、登録された2つのx座標を1組とし、1組に含まれる一方の座標点から他方の座標点に至る座標点のデータに基づいて、描画データを生成する処理(S8)を制御する。
【選択図】図1
Description
本発明は、所望の図形を表示するためにフレームバッファに格納される描画データを生成する方法及びデータプロセッサに関し、例えば指定された線の太さ及び図形のパラメータに基づいて、図形の描画データを生成する描画データ生成方法及びデータプロセッサに適用して有効な技術に関する。
2次元グラフィックスの描画技術としては、アルファ・ブレンディング、ラスタオペレーション等の混合処理がある。描画とは、所望の図形を構成する複数の画素の座標点、例えばx座標軸とy座標軸で特定される空間上での画素の中心座標を算出し、算出された座標点における画素の属性を示すデータ、例えば特定の色等を示すデータを演算し、画素の座標点に基づいてフレームバッファのアクセスアドレスを生成し、そこに色等のデータを書込む処理とされる。特許文献1には、ビットマップディスプレイ装置に供給する画像情報、例えばフレームバッファにパターン描画を行うときに、パターンの輪郭を線の集合として定義するようなデータ構造を持つアウトラインフォントデータに基づく描画効率を向上させることができる描画システム及び描画方法が開示されている。
本発明者は、指定された線の太さ及び図形のパラメータに基づいて、期待する描画結果を得るための図形の描画データを生成する手段について検討した。混合処理では、例えば下地の色を示すデータが格納されたフレームバッファが用意され、図形を構成する画素の座標点における色を示すデータと、この座標点から生成されるアクセスアドレスにおけるフレームバッファの下地の色を示すデータとを画素演算し、演算結果を描画データとして、フレームバッファに書き戻す処理を行う。これは、図形を構成する画素毎に行われる。要するに、全ての画素の描画データがフレームバッファに書き戻されることで、図形全体が描画されることになる。
しかしながら、指定された太さの太線を描画するためには、太さの中心に位置する1つの画素の描画データだけでなく、画素が矩形であれば、この1つの画素の四辺に隣接する4つの画素の描画データも生成しなければならない。このため、混合処理によって画素の描画データを生成し、太線で円を描画する場合、2度演算される座標点が発生してしまう。つまり、円周上に順次太線を描画すると、上記隣接する4つの画素のうち少なくとも1つの画素が2度描画されてしまう。即ち、混合処理では、同一の座標点が算出された場合、前回の画素演算の演算結果であるデータ、即ちフレームバッファの本来の下地の色とは異なっているデータを参照して、同一の座標点における色を示すデータとの画素演算を行い、演算結果を描画データとしてフレームバッファに書き戻す。その結果、2度の画素演算により生成された描画データは、1度の画素演算により生成された描画データと色が異なってしまう。要するに、混合処理を行い、指定された太線で図形を描画するとき、期待した描画結果を得ることが困難であった。
本発明の目的は、2度描画される画素を発生させずに、指定された太線で所望の図形を描画するための描画データを生成することができる描画データ生成方法及びデータプロセッサを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係る描画データ生成方法は、第1座標軸(x)と第2座標軸(y)で特定される空間上において指定された線の太さ(n)及び図形のパラメータに基づいて、前記図形の描画データを生成する。描画データ生成方法は、第1処理(S1)と、第2処理(S3,S5)と、第3処理(S7)と、第4処理(S8)とを含む。第1処理は、前記線の太さに応じた前記図形の外側の輪郭図形(21)と内側の輪郭図形(22)を含む領域の前記第1座標軸上における始点(yA)と終点(yB)を演算する。第2処理は、前記始点から前記終点に向かって、前記第1座標軸上の第1座標点(yi)毎に前記外側の輪郭図形と前記内側の輪郭図形の各々の前記第2座標軸上の第2座標点を演算する。第3処理は、前記第1座標点毎に演算された前記第2座標点のうち、前記外側の輪郭図形では最も外側の外側座標点(x1,x2)と、前記内側の輪郭図形では最も内側の内側座標点(x3,x4)とを選択し、前記外側座標点と前記内側座標点を大きい順又は小さい順に並べ替える。第4処理は、並べ替えられた順で、前記外側座標点と前記内側座標点を1組((x1,x3)、(x4,x2))とし、前記1組に含まれる前記外側座標点から前記内側座標点に至る座標点のデータに基づいて、描画データを生成する。
上記より、第1座標軸上における始点から終点に向かって、第1座標点毎に外側の輪郭図形の外側座標点と内側の輪郭図形の内側座標点を選択するから、図形の輪郭を構成する画素の座標点のデータを第1座標毎に得ることができる。ここで、座標点のデータとは、例えば図形を構成する画素の座標点と、座標点における画素の属性を示すデータ、即ち特定の色等を示すデータとを含む。図形は指定された線の太さで描画されるので、外側の輪郭図形と内側の輪郭図形の間にも画素が存在する。これらの輪郭図形の間に存在する画素の座標点は、第4処理における1組での外側座標点から内側座標点に至る座標点に含まれる。これにより、第4処理では、図形の輪郭及び内部を構成する画素の座標点のデータに基づいて、第1座標点毎に描画データを生成することになる。このため、アルファ・ブレンディング、ラスタオペレーション等の混合処理による画素演算の結果を、描画データとしてフレームバッファに書き戻す場合、共通の第1座標点を有する複数の画素の座標点のデータは、第4処理において、それぞれ1度しか画素演算されない。言い換えると、2度描画される画素は発生しない。そして、第4処理を行う毎に、第1座標点の値を例えば1つだけインクリメントすれば、始点から終点に至る第1座標点の全てに対して第4処理を行い、図形全体の描画データを生成できる。従って、2度描画される画素を発生させずに、指定された太線で所望の図形を描画することが可能な描画データを生成できる。
本発明の具体的な一つの形態として、前記図形に端点が存在するとき、前記外側の輪郭図形に含まれる第1端点(23a)と、前記内側の輪郭図形に含まれる第2端点(24a)とを結ぶ直線(C)の間の第3座標点(25)を演算する第5処理(S13)をさらに含む。前記第3処理において、前記第2座標点が有する第1座標点と共通の第1座標点(yd)を有する前記第3座標点があるとき、前記第3座標点と前記外側座標点又は前記内側座標点を大きい順又は小さい順に並べ替える。前記第4処理において、前記第3座標点から前記外側座標点又は前記内側座標点に至る座標点のデータに基づいて、描画データを生成する。上記より、端点が存在する図形では、第1端点と第2端点を結ぶ直線の間において、外側座標点と内側座標点からなる1組を得られない場合がある。この場合には、第3座標点を算出することにより、第3座標点と外側座標点又は内側座標点からなる1組を得ることができる。このようにすれば、上記直線の第1座標点についても、座標点のデータに基づいて、描画データを生成することができる。このため、端点の存在する図形を描画するための描画データを生成するとき、2度描画される画素が発生しない。また、端点が存在する図形としては、例えば円の一部である円弧や、双曲線、高次曲線等がある。
本発明の具体的な一つの形態として、前記図形が円(A)であるとき、前記図形のパラメータは、中心点(O)と半径(r)である。前記外側の輪郭図形は、前記中心点を中心とし、前記半径よりも大きい第1の半径を有する第1の円(21)とされる。前記内側の輪郭図形は、前記中心点を中心とし、前記半径よりも小さく、前記第1の半径との差が前記太さとなる第2の半径を有する第2の円(22)とされる。上記より、第1座標軸上の始点は、例えば円の上端となり、終点は円の下端となる。円の上端及び下端付近の第1座標点では、第2の円の第2座標点が存在しない場合がある。この場合には、第1の円の一方の外側座標点から他方の外側座標点に至る座標点のデータに基づいて、第1座標点における描画データを生成することになる。また、円の上端及び下端付近以外の第1座標点では、2つの同心円上での外側座標点から内側座標点に至る座標点のデータに基づいて、第1座標点における描画データを生成することになる。これにより、2度描画される画素を発生させずに、指定された太線で円を描画するための描画データを生成できる。また、円とは、画素で描画されるので、数学上の真円とは異なる。しかし、例えば円を構成する画素のサイズが小さく、かつ画素の数が十分に多ければ、例えば液晶ビットマップディスプレイ上では円として認識可能とされる。
本発明の具体的な一つの形態として、前記半径をr、前記太さをnとしたとき、nが奇数であれば、前記第1の半径は、r+n/2で示される値の整数部分であり、前記第2の半径は、r−n/2で示される値の整数部分である。nが偶数であれば、前記第1の半径は、r+n/2−1で示される値であり、前記第2の半径は、r−n/2で示される値である。上記より、画素の集合体である円を描画するためには、半径、太さ共に整数である必要がある。このため、第1の半径と第2の半径を、上記の式で得られる値とし、第1の円の外側座標点から第2の円の内側座標点に至る座標点のデータに基づいて、半径r、太さnの円を描画するための描画データを生成できる。
〔2〕本発明に係るデータプロセッサは、中央処理装置(2)と、前記中央処理装置が実行するプログラムを格納するプログラムメモリ(10)と、を有する。前記プログラムメモリは、第1座標軸と第2座標軸で特定される空間上において指定された線の太さ及び図形のパラメータに基づいて、前記図形の描画データを生成する描画データ生成プログラム(13A,14A)を有する。前記描画データ生成プログラムは、第1処理と、第2処理と、第3処理と、第4処理とを制御する。第1処理は、前記線の太さに応じた前記図形の外側の輪郭図形と内側の輪郭図形を含む領域の前記第1座標軸上における始点と終点を演算する。第2処理は、前記始点から前記終点に向かって、前記第1座標軸上の第1座標点毎に前記外側の輪郭図形と前記内側の輪郭図形の各々の前記第2座標軸上の第2座標点を演算する。第3処理は、前記第1座標点毎に演算された前記第2座標点のうち、前記外側の輪郭図形では最も外側の外側座標点と、前記内側の輪郭図形では最も内側の内側座標点とを選択し、前記外側座標点と前記内側座標点を大きい順又は小さい順に並べ替える。第4処理は、並べ替えられた順で、前記外側座標点と前記内側座標点を1組とし、前記1組に含まれる前記外側座標点から前記内側座標点に至る座標点のデータに基づいて、描画データを生成する。
上記より、中央処理装置は、上記〔1〕の描画データ生成プログラムを実行することができる。その結果、指定された太線で所望の図形を描画するときに、2度描画する画素を発生させないから、液晶ビットマップディスプレイ等に期待した描画結果を表示できる。
図2には、本発明の実施形態に係るデータプロセッサの一例が示される。データプロセッサ1は、中央処理装置(CPU)2と、液晶ディスプレイ用インタフェース回路3(LCDIF)と、データバス・アドレスバス等のバス制御を行うバスステートコントローラ(BSC)4とを有し、それぞれデータバス・アドレスバスからなる内部バス(IBUS)5を介して接続されている。データプロセッサ1は、液晶ディスプレイ用インタフェース回路3を介して、外部バス(EXBUS)6を経由して液晶ディスプレイ7に接続されている。また、データプロセッサ1は、バスステートコントローラ4を介して、外部メモリバス(EXMBUS)8を経由して外部メモリ9に接続されている。外部メモリ9は、例えばプログラム格納部10、水平ライン描画情報バッファ11及びフレームバッファ12を備えている。
プログラム格納部10には、CPU2が実行する各種プログラムが格納され、ここでは一例として、描画座標生成プログラム13Aと、画素描画プログラム14Aとが示される。水平ライン描画情報バッファ11は、詳細は後述するが、描画座標生成プログラム13A及び画素描画プログラム14Aを実行するときに用いられるバッファであって、図3に例示されるように、登録点数格納部15と、座標データ格納部16〜19とを有する。
CPU2は、不図示の入力装置により指定された線の太さや図形のパラメータに基づいて、描画座標生成プログラム13A及び画素描画プログラム14Aを実行することで、例えば下地の色を示すデータが格納されたフレームバッファ12を用いて混合処理を行い、この図形の描画データを生成する。描画データは、図形を構成する複数の画素の座標点における色等を示すデータと、この座標点から生成されるアクセスアドレスにおけるフレームバッファ12の下地の色を示すデータとを画素演算することで生成される。また、説明の便宜上、図形を構成する全ての画素の座標点における色を示すデータは、例えば赤色とする。これにより、画素の座標点における色を示すデータは、専用のフレームバッファではなく、適宜のレジスタに保持させることができる。画素の座標点は、例えばx座標軸とy座標軸で特定される空間上での画素の中心座標とされる。描画データを生成するための画素演算は、例えばラスタオペレーションによる論理演算やアルファ・ブレンディングによる混合比を用いた色演算等があり、画素毎に行われる。そして、生成された描画データは、フレームバッファ12のアクセスアドレスに書き戻される。CPU2は、フレームバッファ12に書き戻された描画データを、液晶ディスプレイ用インタフェース回路3、外部バス6を経由して、図示を省略する表示コントローラに出力する。液晶ディスプレイ7は、表示コントローラによる表示タイミングに基づいて図形を表示する。
図1には、本発明の実施形態1に係る描画データ生成方法を示すフローチャートが例示される。実施形態1に係る描画データ生成方法は、例えば描画座標生成プログラム13A及び画素描画プログラム14Aが制御する各処理を含む。ここでは、所望の図形の一例として、太さn、中心点O、半径rの円Aの描画データを生成する場合を示している。この円Aは、画素の集合体であるので、いわゆる真円ではない。しかし、画素のサイズが小さく、かつ、液晶ディスプレイ7の解像度が大きければ、円として認識可能とされる。また、画素の形状は正方形とする。描画座標生成プログラム13Aは、ステップS1〜S7、S9、S10を制御する。また、画素描画プログラム14Aは、ステップS8を制御する。
まず、CPU2は、適宜の入力装置によって、図4に例示されるx座標軸とy座標軸で特定される空間上において指定された線の太さnと、図形のパラメータとして指定された、中心点O、半径rに基づいて、第1の円21を構成するy座標の上端yAと下端yBを算出する(S1)。第1の円21は、外側の輪郭図形であって、中心点Oを中心とし、半径rよりも大きい第1の半径を有する。第1の半径は、nが奇数であれば、「r+n/2」で示される値の整数部分であり、nが偶数であれば、「r+n/2−1」で示される値である。ここでは、円Aの半径rは、中心点Oから点Pまでの距離とされる。また、太さnは、点Pを含む画素と、この画素と共通のy座標を有する隣接する画素とからなる。つまり、円Aの太さnは、3つの画素からなるので、画素の一辺を「1」とすれば、「3」となる。この上端yAと下端yBの値は、中心点Oの座標を(xO,yO)とすれば、それぞれ第1の円21の半径だけyOから減算又は加算した値となる。要するに、円Aに含まれる画素のy座標をyiとすると、yA≦yi≦yBとされる。そして、yAを適宜のレジスタにyiの初期値として保持させ、同じく、yBをyiの上限値として保持させる。
次に、CPU2は、水平ライン描画情報バッファ11を、上端yAから下端yBの各水平ライン、即ちx座標軸に平行なラインに対応する分だけ確保する(S2)。ここで、確保される水平ライン描画情報バッファ11の数は、「yB−yA+1」となる。そして、CPU2は、yiでの第1の円21を構成する画素のうち、最も外側に位置する画素のx座標を、水平ライン描画情報バッファ11に登録する(S3)。このとき、第1の円21を構成する画素の座標は、円描画アルゴリズムとして知られているミッチェナーアルゴリズムを用いて算出される。ミッチェナーアルゴリズムでは、x座標が中心点Oと共通であり上端yAを含む画素を始点とし、次に描画する画素として、中心点Oからの角度が45〜90度に位置する画素のうち数学上の真円に近い画素を特定する演算を行う。そして、0〜45度、90〜360度での画素は、円Aの対称性を用いることで演算可能とされる。要するに、ステップS3では、yiの初期値であるyAをレジスタから読み出し、図4に示すように、yAにおいてx座標x3〜x4の間に含まれる5つの画素をミッチェナーアルゴリズムで算出することになるが、そのうち最も外側に位置する画素のx座標は、中心点Oのx座標からの距離が最も大きいx3、x4となる。このため、CPU2は、yAに対応する水平ライン描画情報バッファ11の座標データ格納部16,17に、それぞれx3、x4を登録する。
次に、CPU2は、yAに対応する水平ライン描画情報バッファ11の登録点数格納部15に、ステップS3で登録されたx座標の数を登録する(S4)。ここでは、ステップS3でx3、x4が登録されているから、登録点数には「2」が登録される。そして、CPU2は、中心点O、半径rに基づいて、yiでの第2の円22を構成する画素のうち、最も内側に位置する画素のx座標、即ち中心点Oのx座標からの距離が最も小さいx座標を、水平ライン描画情報バッファ11に登録する(S5)。第2の円22は、内側の輪郭図形であって、中心点Oを中心とし、半径rよりも小さい第2の半径を有する。第2の半径は、nが奇数であれば、「r−n/2」で示される値の整数部分であり、nが偶数であれば、「r−n/2」で示される値である。yiでの第2の円22を構成する画素の座標は、上記ミッチェナーアルゴリズムで演算可能である。ステップS5では、まず、yAを初期値とするが、図4に示すように、yAには第2の円22を構成する画素が存在しない。
次に、CPU2は、yAに対応する水平ライン描画情報バッファ11の登録点数格納部15に、ステップS5で登録されたx座標の数を登録する(S6)。しかし、yAにおけるステップS5では、x座標が登録されていないから、登録点数は「2」のままである。そして、CPU2は、yAに対応する水平ライン描画情報バッファ11に登録されたx座標を昇順に並べ替える(S7)。これは、yiでの水平ライン描画情報バッファ11の例えば座標データ格納部16〜19には、x座標がステップS3,S6での登録順で登録されるからである。
そして、CPU2は、画素描画プログラム14Aを実行し、ステップS7で並べ替えられたx座標を、2つずつ参照して1組とし、この1組に含まれる一方のx座標から他方のx座標に至る座標点のデータに基づいて、この座標点毎に混合処理を行いながら、描画データを生成し、水平ラインを描画する(S8)。ここで、座標点のデータとは、例えば画素の中心座標とされる座標点だけでなく、座標点における画素の属性を示すデータ、即ち特定の色等を示すデータをも含む。ステップS8では、y座標がyAである場合、x3からx4に至る座標点、即ちyAにおける円Aの輪郭及び内部を構成する画素の座標点毎の描画データが生成されることになる。このとき、混合処理による画素演算の結果を、描画データとしてフレームバッファ12に書き戻す処理を行うが、yAを有するx3からx4に至る複数の画素の座標点における色を示すデータは、それぞれ1度しか画素演算されない。要するに、yAにおける水平ラインを描画するときに、2度描画される画素は発生しない。
ここで、y座標がyCである場合について説明する。yCでは、ステップS3でyCに対応する水平ライン描画情報バッファ11の座標データ格納部16,17に登録されるx座標は、図4に示すように、第1の円21の最も外側に位置するx1,x2となる。そして、ステップS4では、登録点数格納部15に「2」が加算される。ステップS5では、第2の円22の最も内側に位置するx3,x4が、座標データ格納部18,19に登録される。これにより、ステップS6で登録点数格納部15に「2」が加算されることで、登録点数は「4」となる。そして、ステップS7により、yCに対応する水平ライン描画情報バッファ11には、座標データ格納部16〜19に、昇順にx1,x3,x4,x2が格納される。ステップS8では、並べられた順で、x1,x3を1組、x4,x2を1組とし、それぞれx1からx3に至る座標点のデータと、x4からx2に至る座標点のデータとに基づいて、この座標点毎に混合処理を行いながら、描画データを生成し、水平ラインを描画する。このとき、yCを有するx1からx3、そしてx4からx2に至る複数の画素の座標点における色を示すデータは、それぞれ1度しか画素演算されない。
次に、CPU2は、yiを1つインクリメントして(S9)、yiが上限値である下端yBであるか否かを判定する(S10)。ステップS10において、yiがyBでなければ、再びステップS3に戻って、上記ステップS10までの処理を繰り返す。要するに、始点から終点に至るyiの全てに対してステップS8での水平ラインの描画を行うから、2度描画される画素を発生させずに、指定された太さn、半径rの円Aを描画することが可能な描画データを生成できる。従って、円Aを構成する全ての画素は、1度しか描画されないので、画素の座標点における色のデータが上記したように赤色であり、例えばフレームバッファ12の下地の色が青色であれば、画素演算により生成された描画データが示す色は、全て紫色となる。これにより、CPU2は、描画座標生成プログラム13A及び画素描画プログラム14Aを実行することにより、液晶ディスプレイ7に期待する描画結果を表示させることができる。
図5には、本発明の実施形態2に係る描画データ生成方法を示すフローチャートが例示される。実施形態2に係る描画データ生成方法は、例えば描画座標生成プログラム13B及び画素描画プログラム14Bが制御する各処理を含む。ここでは、所望の図形の一例として、太さn、半径rの円の一部である円弧Bの描画データを生成する場合を示している。この円弧Bは、円の一部であるので端点を有する。円弧Bは、外側の輪郭図形とされ、端点23a,23bを有する第1の円弧23を構成する画素と、内側の輪郭図形とされ、端点24a,24bを有する第2の円弧24を構成する画素と、第1の円弧23と第2の円弧24の間に存在する画素とからなる。例えば、実施形態1における描画座標生成プログラム13A及び画素描画プログラム14AをCPU2が実行して、y座標のyi毎に、yiを有する円弧Bを構成する画素に基づいて、水平ラインを描画しようとしても、水平ライン描画情報バッファ11にx座標が1つだけしか登録されない場合がある。
即ち、図6に例示される第1の円弧23の端点23aと第2の円弧24の端点24aとを結ぶ直線Cに含まれ、y座標がydである画素25は、第1の円弧23を構成する画素でもなく、第2の円弧24を構成する画素でもない。しかし、この画素25は、円弧Bを構成する画素である。ここで、描画座標生成プログラム13AをCPU2が実行した場合、ydに対応する水平ライン描画情報バッファ11には、第1の円弧23の最も外側に位置する画素の座標点が1つしか登録されない。従って、ydにおいては上記したステップS8の処理を実行できないことになる。このため、実施形態1の描画データ生成方法では、円弧Bの描画データを完全には生成できない。
これに対して、描画座標生成プログラム13Bでは、上記直線Cに含まれる全ての画素のx座標をyi毎に算出して、このx座標を対応する水平ライン描画情報バッファ11に登録する処理、即ち後述のステップS13の処理を含む。この処理によって、ydに対応する水平ライン描画情報バッファ11には、画素25と第1の円弧23の最も外側に位置する画素からなる1組とが登録される。このため、CPU2は、画素描画プログラム14Bが制御する後述のステップS20の処理を実行できる。以下、具体的に説明する。
まず、CPU2は、図6に例示されるx座標軸とy座標軸で特定される空間上において指定された線の太さnと、図形のパラメータとして指定された、図示を省略する中心点、半径r、中心角α等に基づいて、第1の円弧23を構成するy座標の上端yaと下端ybを算出する(S11)。第1の円弧23は、上記した第1の円21と比べて、中心角αが例えば90度であって、端点23a,23bを有する点が異なるが、その半径は上記第1の半径の値と同様である。次に、CPU2は、水平ライン描画情報バッファ11を、上端yaから下端ybの各水平ラインに対応する分だけ確保する(S12)。
そして、CPU2は、上記したように、第1の円弧23の端点23a,23bと、第2の円弧24の端点24a,24bとを結ぶ直線C,Dを構成する画素のx座標を算出し、水平ライン描画情報バッファ11に登録する(S13)。即ち、ステップS13では、直線Cについては、ya,yd,yeに対応する水平ライン描画情報バッファ11の座標データ格納部16に、端点23aを含む画素、上記画素25、端点24aを含む画素のそれぞれのx座標が登録される。また、直線Dについては、ybに対応する水平ライン描画情報バッファ11の座標データ格納部16,17,18に、端点23bを含む画素、画素26、端点24bを含む画素のそれぞれのx座標が登録される。
次に、CPU2は、対応する水平ライン描画情報バッファ11の登録点数格納部15に、登録したx座標の数を登録する(S14)。ここでは、ya,yd,yeに対応する水平ライン描画情報バッファ11の登録点数格納部15に、それぞれ「1」が登録される。さらに、ybに対応する水平ライン描画情報バッファ11の登録点数格納部15に、「3」が登録される。そして、CPU2は、yiでの第1の円弧23を構成する画素のうち、最も外側に位置する画素のx座標を、水平ライン描画情報バッファ11に登録し(S15)、その登録数を登録点数格納部15に登録する(S16)。例えばy座標がycであれば、ycに対応する水平ライン描画情報バッファ11の座標データ格納部16にx4が格納され、登録点数格納部15に「1」が登録される。
次に、CPU2は、yiでの第2の円弧24を構成する画素のうち、最も内側に位置する画素のx座標を、水平ライン描画情報バッファ11に登録し(S17)、その登録数を登録点数格納部15に登録する(S18)。例えばycであれば、ycに対応する水平ライン描画情報バッファ11の座標データ格納部17にx3が格納され、登録点数格納部15に「2」が登録される。さらに、CPU2は、y座標に対応する水平ライン描画情報バッファ11に登録されたx座標を昇順に並べ替える(S19)。
そして、CPU2は、画素描画プログラム14Bを実行し、並べ替えられたx座標を2つずつ参照して1組とし、この1組に含まれる一方のx座標を始点とし、他方のx座標を終点として、始点から終点に至る座標点のデータに基づいて、この座標点毎に混合処理を行いながら、描画データを生成し、水平ラインを描画する(S20)。例えばycでは、x3からx4に至る座標点毎の描画データが生成されることになる。特に、ydに対応する水平ライン描画情報バッファ11には、ステップS13で画素25のx座標が登録され、ステップS15で第1の円弧23を構成する画素のうち、最も外側に位置する画素のx座標が登録されている。このため、ステップS20によれば、CPU2は、ydにおける円弧Bの輪郭及び内部を構成する画素の座標点毎の描画データを生成できる。要するに、ydにおける水平ラインを描画するとき、2度描画される画素は発生しない。
さらに、CPU2は、yiを1つインクリメントして(S21)、yiが下端ybであるか否かを判定する(S22)。CPU2は、yiがybでなければ、再びステップS15に戻って、上記ステップS22までの処理を繰り返す。要するに、始点から終点に至るyiの全てに対してステップS20での水平ラインの描画を行うから、2度描画される画素を発生させずに、指定された太さn、半径rの円の一部である円弧Bの描画データを生成できる。これにより、CPU2は、描画座標生成プログラム13B及び画素描画プログラム14Bを実行することにより、液晶ディスプレイ7に期待する描画結果を表示させることができる。
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、CPU2は、円Aや円弧Bの描画データを生成するときに、ステップS8,S20を実行した後、y座標を1つだけインクリメントして、y座標の上端から下端に向かって上記各処理を実行したが、これに限定されない。即ち、円Aや円弧Bには対称性があるから、例えば円Aでy座標の上端yAから下端yBまで必ずしも演算する必要はなく、上端yAから中心点Oのy座標まで演算し、残りの座標点については対称性を利用して演算するようにしてもよい。このようにすれば、ステップS1において下端yBを算出する必要がなく、さらに、ステップS2で確保される水平ライン描画情報バッファ11の数は略半分で済むことになる。また、端点の存在する図形としては、円弧Bに限らず、双曲線、高次曲線等であってもよい。このような場合であっても、端点同士を結ぶ直線に含まれる画素の座標点のデータを算出して、水平ライン描画情報バッファ11に格納すればよい。これにより、水平ライン描画情報バッファ11には、直線に含まれる画素のx座標と、例えば外側の輪郭図形を構成する画素のうち最も外側に位置する画素のx座標、又は内側の輪郭図形を構成する画素のうち最も内側に位置する画素のx座標とが登録される。そして、CPU2は、登録された2つのx座標を1組とし、1組に含まれる一方の座標点から他方の座標点に至る座標点のデータに基づいて、描画データを生成できる。また、x座標軸、y座標軸とは、図形が存在する空間を特定するための適宜の座標軸であって、限定されるものではない。
1 データプロセッサ
2 中央処理装置(CPU)
3 液晶ディスプレイ用インタフェース回路(LCDIF)
6 バスステートコントローラ(BSC)
7 液晶ディスプレイ(LCD)
9 外部メモリ
10 プログラム格納部
11 水平ライン描画情報バッファ
12 フレームバッファ
13A,13B 描画座標生成プログラム
14A,14B 画素描画プログラム
15 登録点数格納部
16〜19 座標データ格納部
21 第1の円
22 第2の円
23 第1の円弧
24 第2の円弧
23a,23b,24a,24b 端点
A 円
B 円弧
2 中央処理装置(CPU)
3 液晶ディスプレイ用インタフェース回路(LCDIF)
6 バスステートコントローラ(BSC)
7 液晶ディスプレイ(LCD)
9 外部メモリ
10 プログラム格納部
11 水平ライン描画情報バッファ
12 フレームバッファ
13A,13B 描画座標生成プログラム
14A,14B 画素描画プログラム
15 登録点数格納部
16〜19 座標データ格納部
21 第1の円
22 第2の円
23 第1の円弧
24 第2の円弧
23a,23b,24a,24b 端点
A 円
B 円弧
Claims (5)
- 第1座標軸と第2座標軸で特定される空間上において指定された線の太さ及び図形のパラメータに基づいて、前記図形の描画データを生成する描画データ生成方法であって、
前記線の太さに応じた前記図形の外側の輪郭図形と内側の輪郭図形を含む領域の前記第1座標軸上における始点と終点を演算する第1処理と、
前記始点から前記終点に向かって、前記第1座標軸上の第1座標点毎に前記外側の輪郭図形と前記内側の輪郭図形の各々の前記第2座標軸上の第2座標点を演算する第2処理と、
前記第1座標点毎に演算された前記第2座標点のうち、前記外側の輪郭図形では最も外側の外側座標点と、前記内側の輪郭図形では最も内側の内側座標点とを選択し、前記外側座標点と前記内側座標点を大きい順又は小さい順に並べ替える第3処理と、
並べ替えられた順で、前記外側座標点と前記内側座標点を1組とし、前記1組に含まれる前記外側座標点から前記内側座標点に至る座標点のデータに基づいて、描画データを生成する第4処理と、を含む描画データ生成方法。 - 前記図形に端点が存在するとき、前記外側の輪郭図形に含まれる第1端点と、前記内側の輪郭図形に含まれる第2端点とを結ぶ直線の間の第3座標点を演算する第5処理をさらに含み、
前記第3処理において、前記第2座標点が有する第1座標点と共通の第1座標点を有する前記第3座標点があるとき、前記第3座標点と前記外側座標点又は前記内側座標点を大きい順又は小さい順に並べ替え、
前記第4処理において、前記第3座標点から前記外側座標点又は前記内側座標点に至る座標点のデータに基づいて、描画データを生成する請求項1記載の描画データ生成方法。 - 前記図形が円であるとき、前記図形のパラメータは、中心点と半径であり、
前記外側の輪郭図形は、前記中心点を中心とし、前記半径よりも大きい第1の半径を有する第1の円とされ、
前記内側の輪郭図形は、前記中心点を中心とし、前記半径よりも小さく、前記第1の半径との差が前記太さとなる第2の半径を有する第2の円とされる請求項1記載の描画データ生成方法。 - 前記半径をr、前記太さをnとしたとき、nが奇数であれば、前記第1の半径は、r+n/2で示される値の整数部分であり、前記第2の半径は、r−n/2で示される値の整数部分であり、
nが偶数であれば、前記第1の半径は、r+n/2−1で示される値であり、前記第2の半径は、r−n/2で示される値である請求項3記載の描画データ生成方法。 - 中央処理装置と、前記中央処理装置が実行するプログラムを格納するプログラムメモリと、を有するデータプロセッサであって、
前記プログラムメモリは、第1座標軸と第2座標軸で特定される空間上において指定された線の太さ及び図形のパラメータに基づいて、前記図形の描画データを生成する描画データ生成プログラムを有し、
前記描画データ生成プログラムは、前記線の太さに応じた前記図形の外側の輪郭図形と内側の輪郭図形を含む領域の前記第1座標軸上における始点と終点を演算する第1処理と、
前記始点から前記終点に向かって、前記第1座標軸上の第1座標点毎に前記外側の輪郭図形と前記内側の輪郭図形の各々の前記第2座標軸上の第2座標点を演算する第2処理と、
前記第1座標点毎に演算された前記第2座標点のうち、前記外側の輪郭図形では最も外側の外側座標点と、前記内側の輪郭図形では最も内側の内側座標点とを選択し、前記外側座標点と前記内側座標点を大きい順又は小さい順に並べ替える第3処理と、
並べ替えられた順で、前記外側座標点と前記内側座標点を1組とし、前記1組に含まれる前記外側座標点から前記内側座標点に至る座標点のデータに基づいて、描画データを生成する第4処理と、を制御するデータプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006114158A JP2007286942A (ja) | 2006-04-18 | 2006-04-18 | 描画データ生成方法及びデータプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006114158A JP2007286942A (ja) | 2006-04-18 | 2006-04-18 | 描画データ生成方法及びデータプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007286942A true JP2007286942A (ja) | 2007-11-01 |
Family
ID=38758649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006114158A Withdrawn JP2007286942A (ja) | 2006-04-18 | 2006-04-18 | 描画データ生成方法及びデータプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007286942A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11341654B2 (en) | 2016-11-23 | 2022-05-24 | Robert Bosch Gmbh | Correspondence search between matrix elements |
-
2006
- 2006-04-18 JP JP2006114158A patent/JP2007286942A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11341654B2 (en) | 2016-11-23 | 2022-05-24 | Robert Bosch Gmbh | Correspondence search between matrix elements |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2637920B2 (ja) | コンピュータ・グラフィック・システム及びフレーム・バッファ使用方法 | |
JP2019505939A (ja) | コンピューティングシステムにおけるアンチエイリアシング動作の実行 | |
US8525843B2 (en) | Graphic system comprising a fragment graphic module and relative rendering method | |
JP2006018811A (ja) | 対応するアウトラインに制御点が欠けている場合のグラフィカルオブジェクトの適切なレンダリング | |
JP2006202211A (ja) | 画像描画装置および画像描画方法 | |
JP2007286942A (ja) | 描画データ生成方法及びデータプロセッサ | |
US20050195207A1 (en) | Image processing method and apparatus | |
JPH06176122A (ja) | 図形編集装置 | |
JP2010134654A (ja) | 描画処理装置 | |
CN112419445A (zh) | 基于图层切换的图元状态切换方法、装置和存储介质 | |
JP3872056B2 (ja) | 描画方法 | |
JP3729187B2 (ja) | 画像表示装置 | |
JP4320604B2 (ja) | 画像処理方法および画像処理装置 | |
JP2011028641A (ja) | 画像処理装置及び画像処理方法 | |
JPH05298058A (ja) | グラフィックデータ処理装置 | |
JP2010009271A (ja) | 画像処理装置 | |
CN115049564A (zh) | 一种图片锐化处理方法及处理终端 | |
JPH02270082A (ja) | 比較を行い信号を発生する装置およびその方法 | |
JP2013015952A (ja) | 情報処理装置 | |
KR101666131B1 (ko) | 서브 픽셀의 패턴을 고려한 벡터 글꼴의 렌더링 방법 | |
JP2803235B2 (ja) | ディジタル画像処理方法 | |
JP5885827B2 (ja) | 描画制御装置及び描画制御プログラム | |
WO2017203675A1 (ja) | グラフィックス描画装置、グラフィックス描画方法、表示システム、及びグラフィックス描画プログラム | |
JPH0330076A (ja) | 描画装置 | |
JP2005202218A (ja) | 画像データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090707 |