我正在编写一个简单的绘画程序。问题是,当您将 setStroke(new BasicStroke(size)); 增加到一个很大的数字时,该行就会变得困惑。我正在写入带有 2D 图形的缓冲图像。
关于如何使线条看起来更干净有什么想法吗?
代码:
addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
dot=false;
if(graphics2D != null && paint.erase==false)
{
currentX = e.getX();
currentY = e.getY();
graphics2D.setStroke(new BasicStroke(size));
graphics2D.drawLine(oldX, oldY, currentX, currentY);
repaint();
}
}
}
这会绘制缓冲图像。
最佳答案
这看起来像默认线帽的行为,即CAP_SQUARE
。尝试使用 BasicStroke(float width, int cap, int join)
构造函数:
new BasicStroke(
size,
BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND
);
使用 java.awt.geom.Path2D
会获得更好的行为整个鼠标按下...
鼠标向上序列的持续时间。然后将序列中的每一行连接起来。
关于Java - 使绘画程序更干净,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28128476/