Я собираю данные с планшета, используя Java (библиотека JPen), и хотел бы иметь возможность рисовать штрихи пера более естественным образом.
В настоящее время я рисую обводку пера в виде отрезков прямых линий, каждый с разной толщиной обводки.
В графической библиотеке Java должно быть что-то, что позволяет мне делать это более эффективно.
Правильно?




PostScript RIP часто преобразует круги в кривые, а кривые - в серию отрезков прямых линий. Количество сегментов зависит от настройки плоскостности, которая по умолчанию соответствует разрешению растрового изображения.
Толстую линию или сегменты толстой линии можно преобразовать в многоугольник с тонкой заливкой.
Я никогда этого не делал, но вот пара вещей, которые вы могли бы попробовать. Во-первых, вы можете реализовать собственный Гладить, который создает тонкие трапеции. Ширина торцевых заглушек будет функцией давления в конечных точках. Если это сработает, вы можете попытаться сделать линейные сегменты более естественными, используя Кривые Безье для формирования «кривых трапеций». Возможно, вы сможете использовать QuadCurve2D, чтобы помочь.
По крайней мере, есть более общее решение. Эта функция была добавлена в Inkscape на основе последний алгоритм. Вы можете увидеть, как он применяется непосредственно к вашей проблеме в несколько скриншотов. Он может выдавливать любую кисть формы по пути, чтобы, например, имитировать кисть, но вам придется перенести ее на Java из алгоритма в первой ссылке или из источников Inkscape. Кроме того, он защищен патентами, поэтому вам придется выпустить свой код под GPL (автор дает явное разрешение) или купить патентную лицензию.