【问题标题】:How to draw a smooth curved line in WPF?如何在 WPF 中绘制平滑的曲线?
【发布时间】:2012-05-16 05:53:48
【问题描述】:

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

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);

结果如下:

所以,如您所见,这几乎就是我想要的,只是我希望它更平滑一点。

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

或者至少获得类似的平滑度。

【问题讨论】:

标签: c# .net wpf canvas


【解决方案1】:

我认为您正在寻找样条线

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

Gabe 是正确的,来自 Forms

在 WPF 下,您可以尝试 PolyBezierSegment,但它需要 4 分。可能你可以输入 3 点和 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>

这导致以下曲线

【讨论】:

  • 是的,OP 正在寻找样条曲线,但您的链接是针对 WinForms 的。 OP 正在使用 WPF,所以这无济于事。
  • @Gabe 你是对的,我会寻找一个等效的 WPF 或删除。谢谢
  • 三点加一点来塑造它。反复试验。
【解决方案2】:

您想使用PathFigure,特别是一组BezierSegments

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2013-01-20
    • 2012-06-09
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    相关资源
    最近更新 更多