2008-09-03 1 views
5

Я собираю данные с планшета с использованием Java (камней JPen) и хотел бы рисовать penstroke более естественным образом.Как я могу нарисовать кривую, которая изменяется по толщине вдоль ее пути?

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

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

Справа?

ответ

0

PostScript RIPs часто преобразуют круги в кривые и кривые в ряд сегментов прямой линии. Количество сегментов зависит от настройки плоскостности, которая по умолчанию соответствует одному для разрешения растрового изображения.

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

1

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

1

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