Как нарисовать гладкую кривую линию в WPF?

c#
Вопрос:У меня есть три известных положения, и в настоящее время я управляю двумя строками: Line line = new Line { StrokeThickness = 3, Stroke = lineColor, X1 = MyX, Y1 = MyY, X2 = MyX, Y2 = MiddleY }; Graph.Children.Add(line); line = new Line { StrokeThickness = 3, Stroke = lineColor, X1 = MyX, Y1

Вопрос:

У меня есть три известных положения, и в настоящее время я управляю двумя строками:

Line line = new Line { StrokeThickness = 3, Stroke = lineColor, X1 = MyX, Y1 = MyY, X2 = MyX, Y2 = MiddleY }; Graph.Children.Add(line); line = new Line { StrokeThickness = 3, Stroke = lineColor, X1 = MyX, Y1 = MiddleY, X2 = TargetX, Y2 = TargetY }; Graph.Children.Add(line);

Здесь результат:

enter image description here

Итак, как вы можете видеть, это почти то, что я хочу, за исключением того, что я хочу, чтобы он был более сглажен, немного.

Теперь я ищу любой способ, которым я мог бы установить три точки, установить некоторый гладкий/извилистый уровень в среднюю точку, а затем нарисую линию с сплошным цветом на ней. Как и я могу сделать это в Photoshop:

enter image description here

Или, по крайней мере, получить аналогичную гладкость.

Лучший ответ:

Я думаю, что вы ищете сплайны

http://msdn.microsoft.com/en-us/library/554h284b.aspx

Гейбе правильно, что из форм

В WPF вы можете попробовать PolyBezierSegment, но для этого требуется 4 балла. Возможно, вы могли бы разместить три точки и еще 1, чтобы сформировать его.

<Canvas> <Path Stroke=»Black» StrokeThickness=»10″> <Path.Data> <PathGeometry> <PathGeometry.Figures> <PathFigureCollection> <PathFigure StartPoint=»100,80″> <PathFigure.Segments> <PathSegmentCollection> <PolyBezierSegment Points=»90,200 140,200 160,200 180,200 430,190 430,280″ /> </PathSegmentCollection> </PathFigure.Segments> </PathFigure> </PathFigureCollection> </PathGeometry.Figures> </PathGeometry> </Path.Data> </Path> </Canvas>

В результате получается следующая кривая

Ответ №1

Вы хотите использовать PathFigure, в частности, с набором BezierSegments.

Оцените статью
Добавить комментарий