我正在尝试用1像素的线条绘制多边形。由于整个多边形被放大了100倍,因此我将线宽设置为0.01。但是由于某种原因,多边形的屏幕线宽看起来似乎是100像素而不是1像素。
我使用
我使用
GeneralPath
作为多边形的形状。如果我使用相同的方法绘制Line2D
形状,则会绘制出细线。g2d.scale(100, 100);
g2d.setStroke(new BasicStroke(0.01f));
g2d.draw(theShape);
新信息:如果我删除setStroke行,则可以正确地获得2像素线,因为之前在Graphics2D对象上设置了0.02f的BasicStroke。
这是真正的setStroke行。
g.setStroke(new BasicStroke((float) (1f / getRoot().scaleX)));
getRoot().scaleX
打印的值是多少? - aioobe