2次元グラフィックライブラリを作る的なはなし。(1)
最初は、矩形を描く話でしょう。やっぱり。
矩形といっても、輪郭ではなく、塗りつぶしです。
輪郭の方が、難しいからです^^;ね。
あ、図の網目はピクセルですが、XYは、座標なので、
小数点があるくらいに思っときましょう。
こんな↓矩形を塗りつぶすと、
こんな↓風になりますよ。
ここではこれを、(3,3)-(7,3)-(7,8)-(3,8)の矩形、POLYLINEと呼んで見ます。
早い話、この矩形の中に位置するピクセルだけに色を塗るわけです。
これを、ヨコ方向に考え、↓の絵のごとくSCANしていきます。
要するに、水平方向のスキャンラインと矩形の交点を算定し、
交点と交点の間を塗りつぶします。
ということで、ロジックですが、、、
(3,3)-(7,3)-(7,8)-(3,8)
の、Y方向の最大最小値を調べると、
MIN:3 MAX:8とわかります。
よって、スキャンするライン(ヨコ線)としては、
y=3.5~7.5まで、1.0ずつ増分させていけばそれらしくなります。
なぜ、0.5を足すかというと、なんとなく中間だからなんですけどね。
要するに、左上のピクセルを塗ることは、
(0,0)-(1,0)-(1,1)-(0,1)の矩形を塗りつぶすという意味だと考えれば、
ピクセルの中心座標は、0,0ではなく、0.5,0.5となります。
これが正しいという話ではなく、考え方としてなんとなくそんな感じという風に思えばいいです。
つづく
0 件のコメント:
コメントを投稿