Russian Qt Forum
Октябрь 01, 2024, 22:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Текст в кривую безье  (Прочитано 2787 раз)
CyclicBarrier
Гость
« : Март 12, 2014, 20:32 »

Можно ли как-то получить кривую безье описывающую текст?
Записан
_OLEGator_
Гость
« Ответ #1 : Март 13, 2014, 09:06 »

Не очень понятно, что значит "описывающую".
Если нужно векторизовать текст, то можно воспользоваться этим:
Код
C++ (Qt)
void QPainterPath::addText ( const QPointF & point, const QFont & font, const QString & text )
Записан
CyclicBarrier
Гость
« Ответ #2 : Март 13, 2014, 12:54 »

Нужно текст перевести в кривые безье для сохранения в eps. Пытался сделать, что-то типа такого
Код:
	QPainterPath path;
QFont f(strFont, dSize);
path.addText(dX, dY, f, strText);

for (int i = 0; i < path.elementCount(); ++i)
{
QPainterPath::Element el = path.elementAt(i);
QString strX = QString::number(el.x);
QString strY = QString::number(el.y);

// Здесь непонятно, что делать дальше

}

как я понимаю нужно передавать полученные в цикле данные в QPainterPath? Если так то cubicTo принимает три точки, а quadTo две, а QPainterPath::Element cодержит только одну.
Вопрос, как мне из QPainterPath  вытащить кривые безье?
Записан
_OLEGator_
Гость
« Ответ #3 : Март 13, 2014, 13:39 »

Не могу сказать, что именно кривые Безье там.
QPainterPath::Element и будет содержать одну точку, надо смотреть по типу, что это за точка. Документация вообще рулит:
Код
C++ (Qt)
bool Element::isCurveTo () const
bool Element::isLineTo () const
bool Element::isMoveTo () const
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.079 секунд. Запросов: 21.