gpt4 book ai didi

Java - 使绘画程序更干净

转载 作者:行者123 更新时间:2023-11-30 08:57:30 25 4
gpt4 key购买 nike

我正在编写一个简单的绘图程序。问题是,当您将 setStroke(new BasicStroke(size)); 增加到一个很大的数字时,该行会变得一团糟。我正在写入带有 2D 图形的缓冲图像。

Line all messed up

关于如何使线条看起来更干净有什么想法吗?

代码:

    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,您会获得更好的表现在整个 mouse down...mouse up 序列的持续时间内。然后连接序列中的每一行。

关于Java - 使绘画程序更干净,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28128476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com