JP5120174B2 - 描画装置 - Google Patents
描画装置 Download PDFInfo
- Publication number
- JP5120174B2 JP5120174B2 JP2008239269A JP2008239269A JP5120174B2 JP 5120174 B2 JP5120174 B2 JP 5120174B2 JP 2008239269 A JP2008239269 A JP 2008239269A JP 2008239269 A JP2008239269 A JP 2008239269A JP 5120174 B2 JP5120174 B2 JP 5120174B2
- Authority
- JP
- Japan
- Prior art keywords
- rectangular area
- overlap
- rectangular
- area
- gon
- 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.)
- Expired - Fee Related
Links
Landscapes
- Image Generation (AREA)
Description
三角形と重なるハッチされた矩形領域が描画処理の対象となり、その矩形領域内部にある一つ一つのピクセルが同時の処理されることになる。このような描画を行う場合、矩形領域と描画対象の三角形との重なりを判定する必要がある。三角形と矩形領域との重なりの判定は、図形の描画処理に限らず様々な処理で利用される。
特許文献1〜3はすべて、「矩形領域の4隅の点」が描画対象となる三角形の内部に入るか否かを判定し、その結果を用いて矩形領域と三角形との重なりを判定している。
1.4隅の点すべてが三角形内部にある場合は、三角形と完全に重なると判定する。
2.4隅の点すべてが三角形のひとつの辺から見て外側にある場合は、三角形と重ならないと判定する。
3.1,2が成立せず、矩形領域が三角形のバウンディング領域(境界領域)の外部にあれば三角形と重ならないと判定する。
4.1,2が成立せず、矩形領域が三角形のバウンディング領域(境界領域)の内部にあれば三角形と重なると判定する。
f(x, y) = ax + by + c
このエッジ関数を三角形のそれぞれの辺に対して用意し、次の条件を満たすように係数を調節する。
・ひとつの辺の上で関数の値が0 になる
・関数の勾配が三角形の内部を向く
以上のように関数を定義すると、点が三角形の内部に存在するときのみ3つのエッジ関数の値が全て正の値となる。このようにしてある1点が三角形の内部にあるか外部にあるかを判定することが可能である。
図中には3 本の直線があり、それぞれの方程式はf0(x, y) = 0, f1(x, y) = 0, f2(x, y) = 0 という形で表されている。そして、f0(x, y), f1(x, y), f2(x, y)の勾配が3 本の直線で形成される三角形の内部を向いているため、この三角形の内部では3 つの関数の値がすべて正の値となり、外部では少なくとも一つの関数の値が負となる。
<矩形領域と直線との重なりの判定>
判定対象の矩形領域の中心点を(xd, yd) とし、幅と高さを2w, 2h とする。そして、直線の方程式をf(x, y) = 0 とする。ただし、f(x, y) はエッジ関数であり、f(x, y) = ax+by +c であるとする。このとき、エッジ関数に対してD[f] = |a|w + |b|h なる量を定義する。D[f] のa, b はそれぞれエッジ関数f のx とy の係数である。
・−D[f] ≦ f(xd, yd) ≦ D[f] の場合、矩形領域と直線は重なる。
・f(xd, yd) ≦ −D[f] またはD[f] ≦ f(xd, yd) の場合、矩形領域と直線は重ならない。
初めに、(x, y) が(xd, yd) から(xd+Δx, yd+Δy) に変化したときのエッジ関数の変化を求める。
f(xd + Δx, yd + Δy) = a(xd + Δx) + b(yd+ Δy) + c
= axd + byd + c + aΔx + bΔy
= f(xd, yd) + aΔx + bΔy
これより、エッジ関数の変化の絶対値は以下の通りとなる。
|f(xd + Δx, yd + Δy) − f(xd, yd)| = |aΔx + bΔy|
≦ |aΔx| + |bΔy|
= |a||Δx| + |b||Δy|
(xd + Δx, yd + Δy) が矩形領域内にあるならば、
|Δx| ≦ w
|Δy| ≦ h
であることから、エッジ関数の変化の絶対値は以下のように押さえられる。
|f(xd + Δx, yd + Δy) − f(xd, yd)| ≦ |a||Δx| + |b||Δy|≦ |a|w + |b|h= D[f]
よって、
−D[f] ≦ f(xd + Δx, yd + Δy) − f(xd, yd ) ≦D[f]
この式より、次のことが言える。
・f(xd, yd) < −D[f] ならば、矩形領域内のすべての点(x, y) でf(x, y) < 0 である。・f(xd, yd) > D[f] ならば、矩形領域内のすべての点(x, y) でf(x, y) > 0 である。
= |a|w +|b|h = D[f] とすることができる。したがって、次のことも言える。
・−D[f] ≦ f(xd, yd) ≦ D[f] ならば、矩形領域内のある点(x, y) でf(x, y) = 0 となる。すなわち、矩形領域内のある点で、エッジ関数と交差する。
以上の議論で矩形領域と直線(エッジ関数)との重なりの条件が正しいことが示された。
「判定方法」
矩形領域と直線の重なりの判定方法を示したので、次に矩形領域と三角形との重なりの判定を示す。
f0(x, y) = a0x + b0y + c0
f1(x, y) = a1x + b1y + c1
f2(x, y) = a2x + b2y + c2
また、それぞれのエッジ関数についてD[f0],D[f1],D[f2] を前述と同様に定義する。
1.矩形領域が三角形の境界領域(バウンディング領域)外部に存在すれば三角形と重ならないと判定する。
2.3つのエッジ関数のうち、fi(xd, yd) < −D[fi] となるものがあれば矩形領域は三角形と重ならないと判定する。
3.矩形領域と三角形の境界領域(バウンディング領域:三角形に外接する、辺が座標軸に平行な矩形領域)が重なり、3つのエッジ関数すべてが、fi(xd, yd) ≧ −D[fi] となれば、矩形領域は三角形と重なると判定する。
4.3つのエッジ関数すべてが、fi(xd, yd) ≧ D[fi] を満たせば矩形領域は三角形の内部に含まれる、つまり、矩形領域内のすべての点が三角形の内部に含まれる、と判定する。
図1を使って、本発明の実施形態に従った、矩形領域が三角形と重なるか否かの判定の例を示す。
f0(x, y) = 2x − y
f1(x, y) = − x + 2y
f2(x, y) = − x − y + 6
f0(−1/2,5/2) = −7/2 < −(|a0|w + |b0|h) = −3
f0(4, 1) = 7 > −(|a0|w + |b0|h) = −3
f1(4, 1) = −2 > −(|a1|w + |b1|h) = −3
f2(4, 1) = 1 > −(|a2|w + |b2|h) = −2
f0(5,11/2) =9/2 > −(|a0|w + |b0|h) = −11
f1(5,11/2) = 6 > −(|a1|w + |b1|h) = −7
f2(5,11/2) = −9/2 > −(|a2|w + |b2|h) = −6
次に、上述の判定方法が正しいということの証明を示す。
1 の場合は、矩形領域が三角形の外部にあるので、重ならないのは自明である。2 の場合、<矩形領域と直線との重なりの判定>での議論から、矩形領域内のすべての点(x, y) で、あるエッジ関数がfi(x, y) < 0 となる。これは、矩形領域の全体が三角形の外にあることを意味する。
同様に4 の場合も、矩形領域内のすべての点(x, y) で、すべてのエッジ関数がfi(x, y) ≧ 0 となる。これは、矩形領域の全体が三角形の内部にあることを意味する。
まず、「矩形領域と三角形の境界領域が重なる」という命題をA、「3つのエッジ関数すべてが、fi(xd, yd) ≧ −D[fi]」という命題をB、「矩形領域は三角形が重なる」という命題をC とする。最終的に示したい命題は以下のものである。
A ∧ B → C
¬C → ¬A ∨ ¬B
≡ C ∨ ¬A ∨ ¬B
≡ ¬(¬C ∧ A) ∨ ¬B
≡ (¬C ∧ A) → ¬B
この状態を図2に示す。
1.fi(x, y) のx の係数ai は負の値である。
2.直線fi(x, y) = 0 はy 軸に平行ではない。
1であるが、X < X′ となる点でfi(X, YB) > fi(X′, YB) = 0 となることから示せる。また、
2であるが、もし、y 軸に平行であるとすると、1 の性質から、直線x = XL 上の点はすべてfi(XL, y) < 0 となる。これは、直線x = XL 上に三角形と重なる点があるという仮定に矛盾する。
今までの性質をまとめると次の通りとなる。
fi(X, YB) = aiX + biYB + ci > 0 (1)
fi(XL, Y ) = aiXL+ biY + ci > 0 (2)
fi(X′, YB) = aiX′ + biYB + ci = 0 (3)
fi(XL, Y′) = aiXL + biY′ + ci = 0 (4)
X < X′ < XL (5)
Y < YB (6)
ai < 0 (7)
まず、(3), (4) より、
X′ = − 1/ai・(biYB + ci)
XL = − 1/ai・(biY′ + ci)
これと(5), (7) から以下の式を得る。
biYB < biY′ (8)
つぎに、(2), (4) より、以下の式を得る。
biY > biY′ (9)
得られた(8), (9) より、以下の式を得る。
biYB < biY (10)
ここで、(6) より、
bi < 0
でなければならないことがわかり、
Y < Y′< YB
を得る。
−D[fi]、すなわち、あるエッジ関数が存在し、領域内のすべての点(x, y) で、fi(x, y) < 0 」が真であることを証明することができた。
ゆえに、矩形領域と三角形との重なりの条件3 も正しいことを示すことができた。
これまでに示した、直線や三角形と矩形領域の重なりの判定では、矩形領域は座標軸に平行な辺をもっていた。ところが、座標軸に対し傾いた辺をもつ矩形領域と直線との重なりの判定を必要とする場合がある。
この矩形領域と直線との重なりを判定するために、座標系x−y を、原点を維持したまま座標軸が矩形領域と平行になるように回転させる。回転して得られた座標系をx′ − y′ とする。そして、変換した座標系の上で矩形領域と直線との重なりの判定を行う。
座標系の変換により影響を受けるものは次のものである。
・矩形領域の中心座標
・エッジ関数の係数
また、以下の量は不変である。
・矩形の幅と高さ
・同じ点に対するエッジ関数の値
特に、同じ点に対するエッジ関数の値が座標変換に対して不変であることから、重なりの判定の為にはD[f] = |a|w + |b|h という量の変化が分かればよい。座標系の変換を表す行列をM とする。変換前の矩形領域の中心座標を(xd, yd)、変換前のエッジ関数をf(x,
y) = ax + by + c とし、変換後の矩形領域の中心座標を(x′d, y′d)、エッジ関数をf′(x′, y′) = a′x′ + b′y′ + c′ とする。それぞれの変換は以下のようにあらわされる。
三角形の頂点データは、バウンディング領域作成部10とエッジ作成部13に入力される。バウンディング領域作成部10では、頂点データで示される三角形に外接する、画面
の座標軸と平行な辺を持つ矩形領域を作成する。エッジ作成部13では、頂点データから、三角形のエッジ関数を作成する。バウンディング領域作成部10で作成されたバウンディング領域(矩形領域)の情報は、矩形領域選択部11に渡される。矩形領域選択部11では、バウンディング領域に含まれる、描画単位の矩形を特定し、その領域のパラメータを算出する。描画単位の矩形の中心座標は、矩形領域評価部12に入力される。矩形領域評価部12には、エッジ作成部13からエッジのパラメータが入力され、描画単位の矩形領域が三角形と重なるか否かの判定が行われる。描画処理部14には、矩形領域選択部11から領域のパラメータが、矩形領域評価部12からは、三角形と描画単位の矩形領域が重なるか否かの評価結果が、エッジ作成部13からはエッジのパラメータが入力され、描画単位の矩形領域を描画する処理が行われる。
初めに三角形のデータを受け取り、その三角形のバウンディング領域(境界領域)をえる。つぎに、境界領域内の一つの矩形領域を選択して、それが描画対象となる三角形と重なるならばその矩形領域に対して処理を行う。矩形領域が三角形と重ならない場合は次の矩形領域を選択する。すべての矩形領域を処理し終えたら描画処理の終了とする。
初めに三角形のエッジ関数の係数を得る。そして、それぞれのエッジ関数についてfi(C) ≧ −D[fi] = −|ai|w −|bi|hとなるかを確認する。ここで、C は矩形領域の中心の点とする。すべてのエッジ関数について不等式が成り立てば、矩形領域は三角形と重なると判定する。そうでない場合、つまり、少なくとも一つのエッジ関数について不等式が成り立たなければ、矩形領域と三角形は重ならないと判定する。
本節では、矩形領域と直線との重なりの判定を用いたOpenGL での線分の描画を実施した例を示す。OpenGL での描画において、あるピクセルが線分により描画されるか否かを判定するためにはDiamond−Exit ルールと呼ばれる判定を行う。この判定では描画対象の線分がピクセルのダイヤモンド領域を交差するか否かを判定する。ただし、ダイヤモンド領域内に線分の終点が含まれている場合は、その線分は描画しない。
RD = {(x, y) | |x − xd| + |y − yd| <1/2}
ピクセルとダイヤモンド領域の関係を図7に示す。
a′ =√2/2・(a − b)
b′ =√2/2・(a + b)
矩形の幅と高さがそれぞれ
√2/4 であることからD[f] の変換であるD[f′] は以下のように表すことができる。
D[f′] = |a′|w + |b′|h
=√2/2・|a − b|√2/4+√2/2・|a + b|√2/4
=1/4・(|a −b| + |a + b|)
これより、中心座標が(xd, yd)であるピクセルと直線f(x, y) = 0とがダイヤモンド領域で重なるか否かの判定を次のように表すことができる。
・f(xd, yd) ≦ −D[f'] もしくは f(xd, yd) ≧ D[f'] の場合、直線はダイヤモンド領域と交差しない
・−D[f'] < f(xd, yd) < D[f'] の場合、直線はダイヤモンド領域と交差する
この判定と端点に対する判定処理を加えれば線分の描画を行うことができる。
描画装置は、入力から描画コマンドを得て、そのコマンドの内容に従って三次元プリミティブを描画し、その結果を画像イメージとして出力する。
・頂点データ
・描画装置の状態
頂点データとは、描画するオブジェクトの個々の頂点の座標と属性をまとめたものである。頂点の属性には、色、テクスチャ座標、法線ベクトルなどを指定することができる。頂点データは次のブロックの頂点処理部23に渡される。
有効であれば、出力先の色と出力する色との混合処理も行う。
ピクセル処理された画像は、画像メモリ26に格納される。
凸n角形は三角形と同様に、すべてのエッジ関数の値が正になる領域として指定することができ、凸n角形の内部の点はすべてのエッジ関数の値が正になる点である、とすることができる。三角形との違いは、評価すべきエッジ関数の数が3からnに増えたことである。
(1)凸n角形のバウンディング領域を算出し、その内部にある矩形領域を得る
(2)(1)で得られた矩形領域に対し、凸n角形を定義するn個のエッジ関数fi (i = 0,
1, ..., n−1) に対し、fi[D] >= − w|ai| − h|bi| ならば、矩形領域は凸n角形と重なると判定する。そうでないならば、矩形領域と重ならないと判定する。
凸n角形の頂点データは、バウンディング領域作成部10aとエッジ作成部13aに入力される。バウンディング領域作成部10aでは、頂点データで示される凸n角形に外接する、画面の座標軸と平行な辺を持つ矩形領域を作成する。エッジ作成部13aでは、頂
点データから、凸n角形のエッジ関数を作成する。バウンディング領域作成部10aで作成されたバウンディング領域(矩形領域)の情報は、矩形領域選択部11aに渡される。矩形領域選択部11aでは、バウンディング領域に含まれる、描画単位の矩形を特定し、その領域のパラメータを算出する。描画単位の矩形の中心座標は、矩形領域評価部12aに入力される。矩形領域評価部12aには、エッジ作成部13aからエッジのパラメータが入力され、描画単位の矩形領域が凸n角形と重なるか否かの判定が行われる。描画処理部14aには、矩形領域選択部11aから領域のパラメータが、矩形領域評価部12aからは、凸n角形と描画単位の矩形領域が重なるか否かの評価結果が、エッジ作成部13aからはエッジのパラメータが入力され、描画単位の矩形領域を描画する処理が行われる。
ステップS30において、凸n角形のバウンディング領域を得る。ステップS31において、バウンディング領域内のすべての矩形領域を処理したか否かを判断する。ステップS31の判断がYesの場合には、描画処理を終了する。ステップS31の判断がNoの場合には、ステップS32において、矩形領域を選択し、ステップS33において、凸n角形との重なりの判定を行い、ステップS34において、凸n角形と重なるか否かの判断を行う。ステップS34の判断がNoの場合には、ステップS31に戻り、ステップS34の判断がYesの場合には、ステップS35において、矩形領域に対して描画を行い、ステップS31に戻る。
ステップS41において、あるエッジについてエッジ関数fiをロードし、ステップS42において、処理中のエッジについて、fi(C)>=−|ai|w−|bi|hが成り立つか否かを判断する。ステップS42の判断がNoの場合には、矩形領域は凸n角形の外であると判断する。ステップS42の判断がYesの場合には、ステップS40において、すべてのエッジについて判定したか否かが判断され、Noの場合には、ステップS41に進み、Yesの場合には、矩形領域は、凸n角形と重なると判断する。
線分の描画も、三角形や凸n角形の描画と同様に、初めにバウンディング領域を得てから、その内部に含まれる描画可能なピクセルについて線分とピクセルとの重なりの判定を行う。
本実施形態のピクセルと線分との交わりの判定方法を用いて、線分を描画する場合、次のような手順を踏めば良い。
(1)線分のバウンディング領域を得る。線分の端点が(x1, y1), (x2, y2)であれば、バウンディング領域は、(min(x1, x2), min(y1, y2), max(x1, x2), max(y1, y2))となる。(2)バウンディング領域内から描画可能なピクセルを選択し、ピクセルと線分との重なりの判定を行う。ピクセルと線分が重なるのであれば描画処理を行う。
(3)(2)の処理を描画可能なピクセルが存在しなくなるまで続ける。
線分の頂点データは、バウンディング領域作成部10bとエッジ作成部13bに入力される。バウンディング領域作成部10bでは、頂点データで示される線分に外接する、画面の座標軸と平行な辺を持つ矩形領域を作成する。エッジ作成部13bでは、頂点データから、線分のエッジ関数と前述のD[f']を作成する。バウンディング領域作成部10bで作成されたバウンディング領域(矩形領域)の情報は、矩形領域選択部11bに渡される。矩形領域選択部11bでは、バウンディング領域に含まれる、描画単位の矩形を特定し、その領域のパラメータを算出する。描画単位の矩形の中心座標は、矩形領域評価部12bに入力される。矩形領域評価部12bには、エッジ作成部13bからエッジのパラメータが入力され、描画単位の矩形領域が線分と重なるか否かの判定が行われる。描画処理部14bには、矩形領域選択部11bから領域のパラメータが、矩形領域評価部12bからは、線分と描画単位の矩形領域が重なるか否かの評価結果が、エッジ作成部13bからはエッジのパラメータが入力され、描画単位の矩形領域を描画する処理が行われる。
ステップS50において、線分のバウンディング領域を得る。ステップS51において、バウンディング領域内の描画可能なすべてのピクセルを処理したか否かを判断する。ステップS51の判断がYesの場合には、描画処理を終了する。ステップS51の判断がNoの場合には、ステップS52において、ピクセルを選択し、ステップS53において、線分との重なりの判定を行い、ステップS54において、線分と重なるか否かの判断を行う。ステップS54の判断がNoの場合には、ステップS51に戻り、ステップS54の判断がYesの場合には、ステップS55において、ピクセルの描画を行い、ステップS51に戻る。
(付記1)
矩形領域と図形との重なった部分を描画する描画装置であって、
a、b、cを定数として、該図形を表現する、変数(x、y)についての1以上の直線の式f(x, y) = ax + by + c = 0を設定する図形設定手段と、
該図形と重なるか否かの判断対象である、中心座標が(xd, yd)、幅2w、高さ2hの該矩形領域を設定する矩形領域設定手段と、
D[f] = |a|w + |b|hとして、−D[f] < f(xd, yd) < D[f] ならば、該図形と該矩形領域が重なり、f(xd, yd) ≦ −D[f]、もしくは、D[f] ≦ f(xd, yd) ならば重ならないと判定する判定手段と、
該図形と該矩形領域が重なる場合に、該矩形領域を描画する描画手段と、
を備えることを特徴とする描画装置。
(付記2)
前記矩形領域の辺が座標軸と平行でない場合に、座標軸を、該矩形領域の辺が座標軸に平行となるように回転変換する回転変換手段を更に備えることを特徴とする付記1に記載の描画装置。
(付記3)
前記図形は、直線であることを特徴とする付記1に記載の描画装置。
(付記4)
前記図形は、三角形であることを特徴とする付記1に記載の描画装置。
(付記5)
矩形領域と凸n角形との重なった部分を描画する描画装置であって、
ai、bi、ci(iは整数)を定数として、該凸n角形を表現する、変数(x、y)についての1以上のエッジ関数の式fi(x, y) = aix + biy + ci= 0を設定する凸n角形設定手段と、
該凸n角形と重なるか否かの判断対象である、中心座標が(xd, yd)、幅2w、高さ2hの該矩形領域を設定する矩形領域設定手段と、
該凸n角形に外接する四角形領域であるバウンディング領域を設定するバウンディング領域設定手段と、
D[fi] = |ai|w + |bi|hとして、該矩形領域がバウンディング領域の外部に存在すれば重ならないとし、少なくとも一つのfiについて、fi(xd, yd) < −D[fi]となれば重ならないと判定し、矩形領域と凸n 角形の境界領域が重なり、すべてのエッジ関数についてfi(xd, yd) ≧ −D[fi] となれば、重なると判定し、すべてのエッジ関数についてfi(xd, yd)
≧ D[fi] となれば、矩形領域内のすべての点は対象の凸n 角形に含まれると判定する判定手段と、
該凸n角形と該矩形領域が重なる、あるいは、該矩形領域が該凸n角形に含まれる場合に、該矩形領域を描画する描画手段と、
を備えることを特徴とする描画装置。
(付記6)
矩形領域と図形との重なった部分を描画する描画方法であって、
a、b、cを定数として、該図形を表現する、変数(x、y)についての1以上の直線の式f(x, y) = ax + by + c = 0を設定し、
該図形と重なるか否かの判断対象である、中心座標が(xd, yd)、幅2w、高さ2hの該矩形領域を設定し、
D[f] = |a|w + |b|hとして、−D[f] < f(xd, yd) < D[f] ならば、該図形と該矩形領域が重なり、f(xd, yd) ≦ −D[f]、もしくは、D[f] ≦ f(xd, yd) ならば重ならないと判定し、
該図形と該矩形領域が重なる場合に、該矩形領域を描画する、
ことを特徴とする描画方法。
(付記7)
矩形領域と凸n角形との重なった部分を描画する描画方法であって、
ai、bi、ci(iは整数)を定数として、該凸n角形を表現する、変数(x、y)についての1以上のエッジ関数の式fi(x, y) = aix + biy + ci= 0を設定し、
該凸n角形と重なるか否かの判断対象である、中心座標が(xd, yd)、幅2w、高さ2hの該矩形領域を設定し、
該凸n角形に外接する四角形領域であるバウンディング領域を設定し、
D[fi] = |ai|w + |bi|hとして、該矩形領域がバウンディング領域の外部に存在すれば重ならないとし、少なくとも一つのfiについて、fi(xd, yd) < −D[fi]となれば重ならないと判定し、矩形領域と凸n 角形の境界領域が重なり、すべてのエッジ関数についてfi(xd, yd) ≧ −D[fi] となれば、重なると判定し、すべてのエッジ関数についてfi(xd, yd)
≧ D[fi] となれば、矩形領域内のすべての点は対象の凸n 角形に含まれると判定し、
該凸n角形と該矩形領域が重なる、あるいは、該矩形領域が該凸n角形に含まれる場合に、該矩形領域を描画する、
ことを特徴とする描画方法。
(付記8)
矩形領域と図形との重なった部分を描画する描画方法をコンピュータに実現させるプログラムを格納した記録媒体であって、
a、b、cを定数として、該図形を表現する、変数(x、y)についての1以上の直線の式f(x, y) = ax + by + c = 0を設定し、
該図形と重なるか否かの判断対象である、中心座標が(xd, yd)、幅2w、高さ2hの該矩形領域を設定し、
D[f] = |a|w + |b|hとして、−D[f] < f(xd, yd) < D[f] ならば、該図形と該矩形領域が重なり、f(xd, yd) ≦ −D[f]、もしくは、D[f] ≦ f(xd, yd) ならば重ならないと判定し、
該図形と該矩形領域が重なる場合に、該矩形領域を描画する、
ことをコンピュータに実現させるプログラムを格納した記録媒体。
(付記9)
矩形領域と凸n角形との重なった部分を描画する描画方法をコンピュータに実現させるプログラムを格納した記録媒体であって、
ai、bi、ci(iは整数)を定数として、該凸n角形を表現する、変数(x、y)についての1以上のエッジ関数の式fi(x, y) = aix + biy + ci= 0を設定し、
該凸n角形と重なるか否かの判断対象である、中心座標が(xd, yd)、幅2w、高さ2hの該矩形領域を設定し、
該凸n角形に外接する四角形領域であるバウンディング領域を設定し、
D[fi] = |ai|w + |bi|hとして、該矩形領域がバウンディング領域の外部に存在すれば重ならないとし、少なくとも一つのfiについて、fi(xd, yd) < −D[fi]となれば重ならないと判定し、矩形領域と凸n 角形の境界領域が重なり、すべてのエッジ関数についてfi(xd, yd) ≧ −D[fi] となれば、重なると判定し、すべてのエッジ関数についてfi(xd, yd)
≧ D[fi] となれば、矩形領域内のすべての点は対象の凸n 角形に含まれると判定し、
該凸n角形と該矩形領域が重なる、あるいは、該矩形領域が該凸n角形に含まれる場合に、該矩形領域を描画する、
ことをコンピュータに実現させるプログラムを格納した記録媒体。
11、11a、11b 矩形領域選択部
12、12a、12b 矩形領域評価部
13、13a、13b エッジ作成部
14、14a、14b 描画処理部
Claims (5)
- 矩形領域と図形との重なった部分を描画する描画装置であって、
a、b、cを定数として、該図形を表現する、変数(x、y)についての1以上の直線の式f(x,y)=ax+by+c=0を設定する図形設定手段と、
該図形と重なるか否かの判断対象である、中心座標が(xd,yd)、幅2w、高さ2hの該矩形領域を設定する矩形領域設定手段と、
D[f]=|a|w+|b|hとして、−D[f]<f(xd,yd)<D[f]ならば、該図形と該矩形領域が重なり、f(xd,yd)≦−D[f]、もしくは、D[f]≦f(xd,yd)ならば重ならないと判定する判定手段と、
該図形と該矩形領域が重なる場合に、該矩形領域を描画する描画手段と、
を備えることを特徴とする描画装置。 - 前記矩形領域の辺が座標軸と平行でない場合に、座標軸を、該矩形領域の辺が座標軸に平行となるように回転変換する回転変換手段を更に備えることを特徴とする請求項1に記
載の描画装置。 - 矩形領域と凸n角形との重なった部分を描画する描画装置であって、
ai、bi、ci(iは整数)を定数として、該凸n角形を表現する、変数(x、y)についての1以上のエッジ関数の式fi(x,y)=aix+biy+ci=0を設定する凸n角形設定手段と、
該凸n角形と重なるか否かの判断対象である、中心座標が(xd,yd)、幅2w、高さ2hの該矩形領域を設定する矩形領域設定手段と、
該凸n角形に外接する四角形領域であるバウンディング領域を設定するバウンディング領域設定手段と、
D[fi]=|ai|w+|bi|hとして、該矩形領域がバウンディング領域の外部に存在すれば重ならないとし、少なくとも一つのfiについて、fi(xd,yd)<−D[fi]となれば重ならないと判定し、矩形領域と凸n角形の境界領域が重なり、すべてのエッジ関数についてfi(xd,yd)≧−D[fi]となれば、重なると判定し、すべてのエッジ関数についてfi(xd,yd)≧D[fi]となれば、矩形領域内のすべての点は対象の凸n 角形に含まれると判定する判定手段と、
該凸n角形と該矩形領域が重なる、あるいは、該矩形領域が該凸n角形に含まれる場合に、該矩形領域を描画する描画手段と、
を備えることを特徴とする描画装置。 - 矩形領域と図形との重なった部分を描画する画像描画装置の描画方法であって、
該画像描画装置は、
a、b、cを定数として、該図形を表現する、変数(x、y)についての1以上の直線の式f(x,y)=ax+by+c=0を設定し、
該図形と重なるか否かの判断対象である、中心座標が(xd,yd)、幅2w、高さ2hの該矩形領域を設定し、
D[f]=|a|w+|b|hとして、−D[f]<f(xd,yd)<D[f]ならば、該図形と該矩形領域が重なり、f(xd,yd)≦−D[f]、もしくは、D[f]≦f(xd,yd)ならば重ならないと判定し、
該図形と該矩形領域が重なる場合に、該矩形領域を描画する、
ことを特徴とする描画方法。 - 矩形領域と図形との重なった部分を描画する描画方法をコンピュータに実現させるプログラムを格納した記録媒体であって、
該コンピュータに、
a、b、cを定数として、該図形を表現する、変数(x、y)についての1以上の直線の式f(x,y)=ax+by+c=0を設定させ、
該図形と重なるか否かの判断対象である、中心座標が(xd, yd)、幅2w、高さ2hの該矩形領域を設定させ、
D[f]=|a|w+|b|hとして、−D[f]<f(xd,yd)<D[f]ならば、該図形と該矩形領域が重なり、f(xd,yd)≦−D[f]、もしくは、D[f]≦f(xd,yd)ならば重ならないと判定させ、
該図形と該矩形領域が重なる場合に、該矩形領域を描画させる、
ことをコンピュータに実現させるプログラムを格納した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008239269A JP5120174B2 (ja) | 2008-09-18 | 2008-09-18 | 描画装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008239269A JP5120174B2 (ja) | 2008-09-18 | 2008-09-18 | 描画装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010072917A JP2010072917A (ja) | 2010-04-02 |
JP5120174B2 true JP5120174B2 (ja) | 2013-01-16 |
Family
ID=42204640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008239269A Expired - Fee Related JP5120174B2 (ja) | 2008-09-18 | 2008-09-18 | 描画装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5120174B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2343598B (en) * | 1998-11-06 | 2003-03-19 | Videologic Ltd | Image processing apparatus |
US6359623B1 (en) * | 1998-11-12 | 2002-03-19 | Hewlett-Packard Company | Method and apparatus for performing scan conversion in a computer graphics display system |
JP4064339B2 (ja) * | 2003-12-19 | 2008-03-19 | 株式会社東芝 | 描画処理装置、描画処理方法および描画処理プログラム |
JP2006323780A (ja) * | 2005-05-20 | 2006-11-30 | Canon Inc | 画像処理装置、画像処理方法 |
KR100793990B1 (ko) * | 2006-09-18 | 2008-01-16 | 삼성전자주식회사 | 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템 |
-
2008
- 2008-09-18 JP JP2008239269A patent/JP5120174B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010072917A (ja) | 2010-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10102663B2 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
KR102122454B1 (ko) | 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치 | |
US9886792B2 (en) | Adaptive mesh refinement | |
KR102276909B1 (ko) | 렌더링 방법 및 장치 | |
US10140750B2 (en) | Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program | |
US9530241B2 (en) | Clipping of graphics primitives | |
KR20160003223A (ko) | 그래픽 파이프라인을 사용한 2 차원 곡선의 테셀레이션 | |
KR102443697B1 (ko) | 경로 스트로크를 수행하는 방법 및 장치 | |
US20210287418A1 (en) | Graphics processing unit render mode selection system | |
CN111260750B (zh) | openFL绘制矢量图形的处理方法、装置及电子设备 | |
US20150015574A1 (en) | System, method, and computer program product for optimizing a three-dimensional texture workflow | |
KR20180039479A (ko) | 그래픽 처리 장치 및 방법 | |
JP6294700B2 (ja) | 画像処理装置及び画像処理方法 | |
US10937233B2 (en) | Graphics processing systems | |
KR102426669B1 (ko) | 경로 렌더링을 수행하는 방법 및 장치. | |
KR20180037839A (ko) | 그래픽스 프로세싱 장치 및 인스트럭션의 실행 방법 | |
JP5120174B2 (ja) | 描画装置 | |
EP3211598B1 (en) | System and method for accelerated rendering of two-dimensional graphics | |
US11989807B2 (en) | Rendering scalable raster content | |
KR102116976B1 (ko) | 렌더링 방법 및 장치 | |
JP5956875B2 (ja) | 画像処理装置、画像処理方法 | |
JP5151946B2 (ja) | 描画装置 | |
KR20150042095A (ko) | 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법 | |
US11776179B2 (en) | Rendering scalable multicolored vector content | |
WO2012114386A1 (ja) | 画像ベクトル化装置、画像ベクトル化方法及び画像ベクトル化プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110613 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120611 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120703 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120903 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120925 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121008 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151102 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |