我有图形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();
当降低行程厚度时,尖峰也会变小。
答案 0 :(得分:1)
您是否尝试将BasicStroke
与JOIN_BEVEL
或JOIN_ROUND
一起使用?您正在使用的默认联接是JOIN_MITER
,这可能是那些丑陋(酷?)峰值的原因。
答案 1 :(得分:0)
试试这个
Stroke stroke = new BasicStroke(1,
BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0,
null, 0);
g2.setStroke(stroke);
就像Franz刚刚说的那样,这是JOIN_MITER的那些不守规矩的行为之一。斜接连接将远远超出线的实际交叉点。