Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Внутренности QPainterPath


Автор: SwordOfDeath 1.5.2009, 16:45
Так вот...
Мне нужно получить доступ к информации какие именно отрезки и кривые находятся в QPainterPath
QPainterPath::elementAt даёт структуру QPainterPath::Element но в ней всего одна точка которая описывает положение елемента...
А каким образом мне узнать полные параметры элемента? Для кривой ведь нужно еще 3 точки...

Буду безмерно благодарен =\

Автор: SABROG 1.5.2009, 22:56
Вероятно в связке:
int QPainterPath::elementCount () const
+
const QPainterPath::Element & QPainterPath::elementAt ( int index ) const

Количество элементов = количеству точек.

Автор: SwordOfDeath 1.5.2009, 23:42
Эм... Не понял.........
В доке написано что X,Y это положение елемента.... И три булевых функции возвращающие тип елемента...
Ну вот взял 0 елемент, а там MoveTo... Взял первый, а там CurveTo.... Взял 2, а там LineTo... 
И откуда для всех этих елементов мне брать параметры?

Автор: SABROG 2.5.2009, 08:57
Таким образом попробуй.
Индекс элемента:
0 - moveTo
1 - QPainterPath::CurveToElement (тип 2): x, y = позиция всего элемента
2 - x,y = первая точка (тип 3)
3 - x,y = вторая точка (тип 3)
4 - x,y = третья точка (тип 3)
и т.д.

Автор: SwordOfDeath 2.5.2009, 15:29
Спасибо что носом ткнул...
Если честно то это как-то не по ООП'шному...

Вот как оно в коде выглядит
Цитата

00722     Element ce1 = { c1.x(), c1.y(), CurveToElement };
00723     Element ce2 = { c2.x(), c2.y(), CurveToDataElement };
00724     Element ee = { e.x(), e.y(), CurveToDataElement };
00725     d->elements << ce1 << ce2 << ee;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)