I've got an array of points (X,Y) which constitute a convex hull (a simple, irregularly shaped contour). Rather than rendering a polygon with straight edges, I want to render them with an approximate "smoothly curved" contour that passes through all of these points.
In WinForms/GDI+, this could be accomplished with the Graphics.DrawClosedCurve
or Graphics.FillClosedCurve
methods. There does not appear to be an equivalent in WPF.
I've looked into drawing using things like Path
and BezierSegment
, but I'm not sure if (and how) these can be used to generate a continuous closed curve, given a set of points. It appears that to do this, I'd perhaps have to generate a set of control points based on my contour as an intermediate step?
I have tried using the GDI+ methods to render onto a System.Drawing.Bitmap
and then displaying that in the WPF application. This works, but the performance (particularly the conversion from System.Drawing.Bitmap
to BitmapSource
) is poor and not sufficient for the application. This is why I'm looking for a pure WPF solution.
Has anyone been able to draw a closed curve based off a set of points in WPF?
Unfortunately, there is no single-method equivalent to DrawClosedCurve
in WPF, even though it's been requested. So you are left with at least two options: