下面是安卓代码。
path.moveTo(xx, yy);
for (...) {
path.lineTo(xx, yy);
}
canvas.drawPath(this.path, paint);
为了去除尖角,我正在使用
final CornerPathEffect cornerPathEffect = new CornerPathEffect(50);
paint.setPathEffect(cornerPathEffect);
当谈到WPF时,我正在使用以下代码。
PathFigure pathFigure = new PathFigure();
pathFigure.StartPoint = new Point(xx, yy);
for (...) {
LineSegment lineSegment = new LineSegment(new Point(xx, yy), true);
lineSegment.IsSmoothJoin = true;
pathFigure.Segments.Add(lineSegment);
}
PathGeometry pathGeometry = new PathGeometry(new PathFigure[] { pathFigure });
drawingContext.DrawGeometry(null, new Pen(Brushes.White, 3), pathGeometry);
我得到以下效果。
请注意,我避免使用PolyQuadraticBezierSegment
or PolyBezierSegment
。它往往变得不稳定。这意味着,每当我向折线图添加新的输入点时,新添加的点往往会改变已在屏幕上绘制的旧路径。作为最终效果,您可能会观察到整个折线图在晃动
我可以知道在 WPF 中,我怎样才能平滑线段?虽然我用过lineSegment.IsSmoothJoin = true;
,但我仍然可以看到尖角。我可以拥有与 Android 的 CornerPathEffect 等效的东西吗?