我用指定的笔划绘制一个圆角矩形,然后尝试绘制一条线 围绕这个矩形。但在边缘,它们从来没有真正匹配。
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) );
有人有更好的吗?
最佳答案
我认为没有简单的方法。 (即使您实现自己的圆角矩形绘图例程也不会。)
我建议你先画一个稍厚的外边框,然后在其上画内“边框”。
关于java - 通过圆角矩形计算外线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3730470/