如何在WPF中绘制平滑的曲线?

Tow*_*wer 7 .net c# wpf canvas

我有三个已知位置,目前我正在驾驶两条线路:

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);
Run Code Online (Sandbox Code Playgroud)

这是结果:

在此输入图像描述

所以,正如你所看到的,这几乎是我想要的,除了我希望它更平滑,只是一点点.

现在我正在寻找任何可以设置三个点的方法,将一些平滑/弯曲的水平设置到中间点,然后在其上绘制一条带有纯色的线.就像我在Photoshop中如何做到这一点:

在此输入图像描述

或者至少得到类似的平滑度.

pap*_*zzo 9

我想你正在寻找样条

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

Gabe是正确的,来自Forms

在WPF下你可以尝试PolyBezierSegment但它需要4分.可能你可以分三个点和另外一个来塑造它.

<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>
Run Code Online (Sandbox Code Playgroud)

这导致以下曲线

在此输入图像描述

  • 是的,OP正在寻找样条线,但您的链接是针对WinForms的.OP正在使用WPF,因此无济于事. (2认同)