从WinForms(GDI +)移到WPF时,如何替换DrawClosedCurve / FillClosedCurve?

时间:2018-11-22 19:21:17

标签: c wpf gdi+ bezier curve

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

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

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

我尝试使用GDI +方法呈现到System.Drawing.Bitmap上,然后在WPF应用程序中显示它。这可以工作,但是性能(尤其是从System.Drawing.BitmapBitmapSource的转换)很差,不足以满足应用程序的需求。这就是为什么我正在寻找纯WPF解决方案。

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

1 个答案:

答案 0 :(得分:1)

不幸的是,即使it's been requested,在WPF中也没有等效于-I的单一方法。因此,您至少有两个选择: