Я пытаюсь нарисовать кривую Безье в примере приложения Winforms.
Я вычисляю точки Безье, а затем рисую, используя DrawImage, чтобы нарисовать собственную кисть изображения в каждой точке.
Однако я не совсем получаю результат, на который надеялся - результирующая кривая не является гладкой в точках, которые она изгибает (обратите внимание, что координаты Y увеличиваются / уменьшаются с 1px):
Вот пример «красивой» кривой, быстро нарисованной в «фотошопе» с помощью инструмента «Кисть»:
Кто-нибудь знает, как добиться такого типа "сглаживания"?
Я в основном делаю это:
using(var g = Graphics.FromImage(bitmap))
{
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
//points - an array with calculated beziere curve points
//image - the "image brush" that is painted at each curve point
foreach (var p in points)
{
g.DrawImage(image, p);
g.Flush();
}
}
Спасибо!