●前回まで
[画像処理](x1,y1,x2,y2) vs (x,y,width,height)
[画像処理](x1,y1,x2,y2) vs (x,y,width,height) その2
[画像処理](x1,y1,x2,y2) vs (x,y,width,height) その3
※以下PnPとPnSは私の造語です。
PnP・・・Point and Point。座標2つで矩形領域を表す方式
PnS・・・Point and Size。座標1つと領域のサイズで矩形領域を表す方式
前エントリー最後に示した「横4ドット縦3ドットの矩形を表示する」について。
色々なコメントいただいたことも踏まえて、
GDIとGDI+で出てきた答えに私なりの解釈をつけてみます。
ご注意:私の解釈は本当に軽いものです。
いわば円周率とか年号を歌で丸暗記するのと同じく、
「こう考えたら頭に入りやすいかも~」くらいのすっごい軽い解釈です。
くれぐれも鵜呑みにして他の人に話しとかしないようにしてください。
きっと後悔しますよ><
●GDIのRectangleの私の解釈
座標軸はピクセル間を通っており与えられた矩形領域に内接する矩形を描画していると解釈。
Rectangle(hdc,0,0,4,3)
●GDI+のGraphics.DrawRectangleの私の解釈
凪瀬さんがコメントしてくれたJAVAの仕組みそのままだと解釈します。
「座標軸は無限に細く、出力デバイスのピクセル間に存在します。
図形の輪郭を描く操作は、ピクセルサイズのペンをピクセル間の無限に細い輪郭線に沿って動かしていくことによって動作します。
ペンは、輪郭線のアンカーポイントにぶら下がり、かつ右側に位置しています。」
Graphics.DrawRectangle(pen, 0, 0, 3, 2)
●GDI+のGraphics.FillRectangleの私の解釈
DrawRectangleと矩形領域の定義までは同じで内接する矩形を塗りつぶしていると解釈。
Graphics.FillRectangle(pen, 0, 0, 4, 3)
●アレを考慮していない
何とか上手く誤魔化せたかな?とか思っていたんですが
「ん?アレを考慮してないぞ・・」
というアレに思い当たってしまいました。
実験してみなければわからないのですが、
場合によっては上の解釈は自分でいきなりぶっ壊してしまうかもです(汗。それは一体なんの事でしょう?
続きは次のエントリーへ引っ張ります・・・