BasicStrokeとRectangularShape
batikにラスタライザにピクセルレベルで癖があるらしい
と書いた(id:eccoHowling:20040711#p1)けど、
- new Rectangle2D.Float(40, 40, 20, 20);
- new Polygon(new int[ ] {40, 40, 60, 60}, new int[ ] {40, 60, 60, 40}, 4);
この二つではストロークがズレている。Mac OS X固有の問題だろうか? 多分BasicStrokeがPathIteratorを描く前にRectangularShapeかどうかを判定してnormalizeしているんだろうと、試しにこうしてみた。
- new GeneralPath(new Rectangle2D.Float(40, 40, 20, 20));
これだとストロークはPolygonと同じになる。STROKE_PUREを指定しても結果は変わらなかった。