Название: Соединение точек отрезками, QGraphicsView Отправлено: perroBasset от Октябрь 07, 2010, 13:45 Всем добрый день!
Сразу признаюсь, что я чайник, следовательно и вопрос соответствующий. Есть точки (в массиве std::vector<QPointF>), которые нужно соединить отрезками. Я тыкалась, тыкалась с QGraphicsLineItem, но ничего не выходит.. Очень надеюсь на вашу помощь :) Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: ufna от Октябрь 07, 2010, 14:19 Вопрос - а что вы понимаете под "соединить отрезками"? Вам нужно отрисовать их?
Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: developer от Октябрь 07, 2010, 14:42 QPolygon, or something like QPolygonGraphicsItem
Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: perroBasset от Октябрь 07, 2010, 18:46 Да, отрисовать, причем сами сами точки уже отмечены кружками, их осталось только соединить прямыми.
Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: Mikhail от Октябрь 07, 2010, 18:49 ВОзьмите за основу пример diagramscene.
Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: Igors от Октябрь 07, 2010, 19:59 Ваша проблема в том что "соединение отрезками точек с кружками" не есть "примитив" который QGraphicsScene может понять. Нужно мыслить "объектно" - это не всегда удобно, но приходится :) Первое что приходит в голову - унаследоваться от QGraphicsPolygonItem (пусть он нарисует все отрезки) а потом добавить рисование кружков.
Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: perroBasset от Октябрь 09, 2010, 14:08 Ребят, посмотрите, пожалуйста, что может быть не так. Решила через QLineF делать.
QVector<QPointF> Points -- это массив точек, которые нужно соединить. Код: scene.clear(); Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: Hellraiser от Октябрь 09, 2010, 14:16 Первое, что бросается в глаза - выход за границу массива. Условие выхода из цикла должно быть
Код: i < Points.size() - 1 Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: perroBasset от Октябрь 09, 2010, 14:17 Точно, не доглядела, спасибо большое! А в остальном?
Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: Hellraiser от Октябрь 09, 2010, 14:27 А если вот так:
Код: for (int i = 0; i < Points.size() - 1; i++) Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: Hellraiser от Октябрь 09, 2010, 14:42 Еще очень смущает сцена (scene), созданная на стеке.
Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: perroBasset от Октябрь 09, 2010, 15:09 Что это значит?
Кстати, все рисуется, но о-очень криво. На скриншоте справа тестовый график, а слева его врядли узнаешь ??? (но если все точки на одной прямой, то все ок) Хотя масштабирование у меня есть. Код: void А если вот так: Так гораздо лучше :) Только Вы, наверное, имели ввиду QLineF.Код: for (int i = 0; i < Points.size() - 1; i++) Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: Hellraiser от Октябрь 09, 2010, 16:03 Если речь идет о построении графиков и нет ограничений на сторонние библиотеки можно попробовать использовать Qwt (http://sourceforge.net/projects/qwt/)
Название: Re: Соединение точек отрезками, QGraphicsView Отправлено: Igors от Октябрь 09, 2010, 16:46 Кстати, все рисуется, но о-очень криво. На скриншоте справа тестовый график, а слева его врядли узнаешь ??? Я так вижу что наоборот - Ваш намного "прямее" :) Самое простое взять больше точек для отрезков (если есть откуда брать) - и дорисовать кружки в некоторые |