glätten Die unten ist Android-Code.Wie man WPF Liniensegment von Pfad Abbildung
path.moveTo(xx, yy);
for (...) {
path.lineTo(xx, yy);
}
canvas.drawPath(this.path, paint);
Um die scharfe Ecke, ich
final CornerPathEffect cornerPathEffect = new CornerPathEffect(50);
paint.setPathEffect(cornerPathEffect);
Wann WPF kommt, ich den folgenden Code verwende bin mit zu entfernen .
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);
Ich bekomme den folgenden Effekt.
Beachten Sie, dass ich vermeiden PolyQuadraticBezierSegment
oder PolyBezierSegment
verwenden. Es neigt dazu, instabil zu werden. Dies bedeutet, dass, wenn ich dem Liniendiagramm einen neuen Eingangspunkt hinzufüge, der neu hinzugefügte Punkt dazu neigt, den alten Pfad zu ändern, der bereits auf dem Bildschirm gezeichnet wurde. Als Endergebnis können Sie den gesamten Liniendiagramm beobachten Schütteln
Kann ich in WPF wissen, wie ich das Liniensegment glätten kann? Obwohl ich lineSegment.IsSmoothJoin = true;
verwendet habe, kann ich immer noch die scharfe Ecke sehen. Kann ich etwas Ähnliches wie CornerPathEffect von Android haben?