【问题标题】:How to replace DrawClosedCurve / FillClosedCurve when moving from WinForms (GDI+) to WPF?从 WinForms (GDI+) 迁移到 WPF 时如何替换 DrawClosedCurve / FillClosedCurve?
【发布时间】:2018-11-22 19:21:16
【问题描述】:

我有一组点 (X,Y),它们构成了一个凸包(一个简单的、不规则形状的轮廓)。我不想用直边渲染多边形,而是用穿过所有这些点的近似“平滑弯曲”轮廓来渲染它们。

在 WinForms/GDI+ 中,这可以通过 Graphics.DrawClosedCurveGraphics.FillClosedCurve 方法来完成。 WPF 中似乎没有等效项。

我已经研究过使用 PathBezierSegment 之类的东西进行绘图,但我不确定是否(以及如何)在给定一组点的情况下,它们是否可以用于生成连续闭合曲线。看来要做到这一点,我可能必须根据我的轮廓生成一组控制点作为中间步骤?

我尝试使用 GDI+ 方法渲染到 System.Drawing.Bitmap,然后在 WPF 应用程序中显示它。这行得通,但性能(特别是从System.Drawing.BitmapBitmapSource 的转换)很差,对于应用程序来说还不够。这就是我寻找纯 WPF 解决方案的原因。

有没有人能够根据 WPF 中的一组点绘制闭合曲线?

【问题讨论】:

    标签: c wpf gdi+ bezier curve


    【解决方案1】:

    不幸的是,在 WPF 中没有等效于 DrawClosedCurve 的单一方法,即使 it's been requested 也是如此。所以你至少有两个选择:

    【讨论】:

    • 非常感谢!你的回答正是我需要的信息。特别是最后一个链接。
    猜你喜欢
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    相关资源
    最近更新 更多