1
我画了一个带有特化笔划的圆角矩形,然后我尝试围绕此矩形画一条线 。但在边缘它永远不会真正匹配对方。用圆角矩形计算外线
g.setStroke(new BasicStroke(radius + .5f));
g.drawRoundRect(x + radius/2, y + radius/2, width - radius, height - radius, radius, radius);
// Outer border
g.setColor(outer);
g.setStroke(new BasicStroke(1));
g.drawRoundRect(x, y, width - 1, height - 1, radius, radius);
你知道如何计算外边界半径吗?
好的,我尝试了一下,我得到了一个更好的,但仍然不完美;
float scale = radius/2.0f;
g.setPaint(p);
g.setStroke(new BasicStroke(2 * scale));
g.drawRoundRect(x + radius/2, y + radius/2, width - radius, height - radius, radius, radius);
// Outer border
g.setColor(outer);
g.setStroke(new BasicStroke(1));
g.drawRoundRect(x, y, width - 1, height - 1, Math.round(4*scale), Math.round(4*scale));
有人有更好的吗?
在这种情况下,我仍然有问题,边界在边缘有不同的蜱虫。我刚添加了一段新的代码,效果好得多,但并不完美。 – 2010-09-16 20:41:42
是的。那就是我所期望的。我不知道如何解决这个问题。您可以通过在每个内边框像素旁边填充外边框来手动执行此操作。但是,这种方法涉及到并不完全是单线的栅格数据...... – aioobe 2010-09-16 21:10:26