Как я могу нарисовать кривую, которая изменяется по толщине вдоль пути? - PullRequest
5 голосов
/ 04 сентября 2008

Я собираю данные с планшета с использованием Java (библиотеки JPen) и хотел бы иметь возможность рисовать мазок более естественным образом.

В настоящее время я рисую обводку пером в виде отрезков прямых линий, каждый из которых имеет разную толщину обводки.

В графической библиотеке Java должно быть что-то, что позволяет мне более эффективно это делать.

правый

Ответы [ 3 ]

1 голос
/ 04 сентября 2008

Я никогда не делал этого, но вот пару вещей, которые вы можете попробовать. Во-первых, вы можете реализовать пользовательский Stroke , который создает тощие трапеции. Ширина торцевых крышек будет зависеть от давления в конечных точках. Если это сработает, вы можете попытаться сделать отрезки линий более естественными, используя кривые Безье для формирования "пышных трапеций". Вы можете использовать QuadCurve2D , чтобы помочь.

1 голос
/ 21 сентября 2008

По крайней мере, есть более общее решение. Эта функция была добавлена ​​в Inkscape на основе недавнего алгоритма . Вы можете увидеть, что это применимо непосредственно к вашей проблеме в некоторых скриншотах . Например, он может выдавливать любую кисть формы по пути, имитируя кисть, но вам придется перенести ее на Java из алгоритма в первой ссылке или из источников Inkscape. Кроме того, он защищен патентами, поэтому вам придется выпустить свой код под лицензией GPL (автор дает явное разрешение) или купить патентную лицензию.

0 голосов
/ 04 сентября 2008

RIP-файлы PostScript часто преобразуют круги в кривые, а кривые - в ряд отрезков прямых линий. Количество сегментов зависит от параметра плоскостности, который по умолчанию равен одному, подходящему для разрешения экрана растра.

Толстая линия или толстые отрезки могут быть преобразованы в закрашенный многоугольник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...