2017-10-30 14 views
1

私はちょうど、の塗りつぶしの方法では、右と下に1ピクセルずつ塗りつぶしています。Java SwingのGraphics2D塗りつぶしメソッド

たとえば、new Rectangle2D.Double(0,0,10,20)を描画する場合、図にはx = 10y = 20のピクセルが含まれます。同じ四角形を塗りつぶした場合、それらのピクセルは塗りつぶされません。

これらのメソッドは同じオブジェクト上で動作し、同様のタスクを実行しますが、異なる結果を返すのはなぜですか?何らかの理由がありますか、それとも単なる間違いですか?

答えて

3

Graphics APIは内部に充填輪郭と描画との間の差を説明:

座標は無限に薄いと出力装置の画素間の位置です。図形の輪郭を描く操作は、パス上のアンカーポイントの右下に垂れ下がったピクセルサイズのペンで、ピクセル間の無限に細いパスをたどって動作します。フィギュアを埋め尽くす操作は、その無限に細い経路の内部を満たすことによって動作します。特に

指定した矩形をカバーする図形を描画する場合は、その数字がで囲まれる図形の充填に比べて右下端の画素の1つの余分な行を占め同じ長方形。

+1

[QuickDraw](https://en.wikipedia.org/wiki/QuickDraw#Graphics_primitives)は同じモデルを使用しましたが、別のAPIを使用していました。 – trashgod