我遇到图形 2d 描边的问题,似乎没有人遇到这个问题,因为我搜索了类似的东西但没有结果。这是图片。
如您所见,我的划水有尖峰,我不想要那些。这是我的代码。
类扩展为JButton,方法为paintComponent。
Graphics2D g2d = (Graphics2D)g2.create();
TextLayout tl = new TextLayout(getText(), getFont(), g2d.getFontRenderContext());
Shape to = tl.getOutline(null);
int x = (getSize().width-to.getBounds().width)/2;
int y = (getSize().height+(to.getBounds().height-8))/2;
System.out.println(to.getBounds().height);
g2d.translate(x, y);
g2d.setStroke(new BasicStroke(15.0f));
g2d.setColor(new Color(155,155,155));
g2d.draw(to);
g2d.dispose();
当降低笔画粗细时,尖峰也会变小。
最佳答案
您是否尝试过将 BasicStroke
与 JOIN_BEVEL
或 JOIN_ROUND
一起使用?您使用的默认连接是 JOIN_MITER
,这可能是造成那些丑陋(很酷?)尖峰的原因。
关于java - Java 上的 Graphics2D 笔划尖峰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23313487/