Название: [РЕШЕНО] Вывести текст вдоль кривой Отправлено: MadKriS от Март 21, 2010, 00:41 Доброго времени суток всем!
Подскажите, как вывести текст вдоль кривой (как в Фотошопе)? Мне самому на ум приходит выводить каждую букву текста с координатами и углом поворота в зависимости от оных у кривой в каждом конкретном участке, только как координаты с углом "понять", не знаю... Или есть какое-то более изящное решение ? Название: Re: Вывести текст вдоль кривой Отправлено: lit-uriy от Март 21, 2010, 01:02 я думаю, тут поможет QPainterPath
Ещё глянь Wiggly Example (%QTDIR%/examples/widgets/wiggly) Название: Re: Вывести текст вдоль кривой Отправлено: Marat(Qt) от Март 21, 2010, 12:12 А как на счет svg? В inkscape очень неплохо это получается.
Название: Re: Вывести текст вдоль кривой Отправлено: ieroglif от Март 21, 2010, 15:47 я бы (если бы не сильно ленивым был) всё же для каждой буквы высчитывал угол.
ширина буквы известна, а значит известно на каком участке графика эта буква будет расположена. так что для каждой буквы имеем следующее: 1. координата начала буквы 2. координата конца буквы из этого получаем уравнение прямой по которой надо рисовать букву, а значит вычисляем и угол на который эта линия "наклонена" (а значит и буква). так что пишем две небольшие функции (одна для разбора "фразы" по буквам, а вторая - для рисования буквы) и всё. но так как я ленив и уже прочитал ответ про QPainterPath - то сначала бы я про него покурил ман, а уж если там ничего бы не наковырялось, то писал бы функции =) Название: Re: Вывести текст вдоль кривой Отправлено: MadKriS от Апрель 02, 2010, 15:22 "Нарезать" кривую на равные кусочки получилось.
Насчёт поворотов букв вопрос пока что остаётся открытым. Название: Re: [РЕШЕНО] Вывести текст вдоль кривой Отправлено: MadKriS от Май 01, 2010, 23:57 Всё, сделал сам.
Использовал функцию QPainterPath'a - angleAtPercent, вычисляющую угол перпендикуляра к касательной в точке пути. UPD точнее так Код: angle = textpath.angelAtPercent(one_part*i); |