2010-05-31 3 views
2

stroke() в Каире применяет ход одной указанной ширины к линейному пути.Создание такта переменной ширины в Каире

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

ответ

0

Используйте cairo_set_line_width, чтобы установить его и «разбить» путь более чем на один кусок. Unluckly, как вы заметили, cairo_set_line_width ширина для всего пути тока (так как она устанавливает атрибут, как если вы выбираете ручку, чтобы сделать этот путь): cairo_set_line_width

«Как и с другими параметрами хода, текущая ширина линии рассматривается cairo_stroke(), cairo_stroke_extents() и cairo_stroke_to_path(), но не имеет никакого эффекта при построении пути. »

+0

Это будет очень неэффективно для такого чертежа, который я хочу сделать, который очень плавно меняется ширина линии. При таком подходе я бы рисовал столько сегментов линии, сколько длина линий. – alexbw

+0

Тогда я считаю, что cairo не то, что вам нужно ... Если вам нужен эффект каллиграфии, необходим другой вид рисования; действительно, я подозреваю, что вы должны сделать это сами. Но рассмотрите также это решение: вместо этого нарисуйте «контур/границу» и заполните! --- ops забывают, что вы следите за пользовательским вводом ... но если это так, то медлительность пред. метод настолько неприемлем? – ShinTakezou

Смежные вопросы