如何从线条图中删除颗粒状细节(颤动)



嗨,我正在制作一个只能用手写笔设备画线的绘图应用程序,我展示了高亮笔的方法,图片在链接下面

https://velog.io/@kkorbilionaire/从中删除颗粒状细节

我想制作一条像第二张图片一样的平滑线条

这是我的画家类代码

CustomPainter代码

/// Highlighter Mode Painter Class
class HighlighterDrawingPainter extends CustomPainter {
HighlighterDrawingPainter(this.lines);
final List<List<DotInfo>> lines;
double opacity = 0.3;

@override
void paint(Canvas canvas, Size size) {
for (var oneLine in lines) {
Color? color;
double? size;
var path = Path();
var l = <Offset>[];
for (var oneDot in oneLine) {
color ??= oneDot.color;
size ??= oneDot.size;
l.add(oneDot.offset);
}
path.addPolygon(l, false);
canvas.drawPath(
path,
Paint()
..color = color!.withOpacity(opacity)
..strokeWidth = size!
..strokeCap = StrokeCap.square
..style = PaintingStyle.stroke
..isAntiAlias = true);
}
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => true;
}

我应该使用什么属性来删除粗糙的细节??

我通过添加解决了这个问题

canvas.drawPath(path,
Paint()
..strokeJoin = StrokeJoin.round
..isAntiAlias = true

这些特性去除了颗粒状零件,但压力敏感性仍然过高,因此我正在研究如何降低的压力敏感性

最新更新