Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: piton от Октябрь 16, 2005, 16:25



Название: много линий на QCanvas
Отправлено: piton от Октябрь 16, 2005, 16:25
у меня есть довольно большое количество точек, которые нужно последовательно соединить линиями (по сути провести ломаную). использую QCanvas. сейчас я создаю большое количество объектов QCanvasLine, по одному для каждого отрезка.
как можно обойтись в данном случае одним объектом?
потому что количество точек очень большое (сотни тысяч) и создавать тысячи объектов - это несколько неправильно (мягко говоря :) ), тем более, что на определенном числе точек, программа просто валится (Segmentation fault).
какого-то объекта позволяющего нарисовать ломаную по заданному массиву я не нашел :(


Название: много линий на QCanvas
Отправлено: lepsai от Октябрь 16, 2005, 18:17
QCanvasPolygonalItem :)


Название: много линий на QCanvas
Отправлено: piton от Октябрь 16, 2005, 18:54
хм..чего-то я не пойму как он работает..
Код:

QCanvasPolygonalItem* i = new QCanvasPolygonalItem(canvas);

выдает ошибку:
Цитировать

mainform.cpp:145: error:   because the following virtual functions are
   abstract:
/usr/qt/3/include/qcanvas.h:572: error:         virtual QPointArray
   QCanvasPolygonalItem::areaPoints() const
/usr/qt/3/include/qcanvas.h:581: error:         virtual void
   QCanvasPolygonalItem::drawShape(QPainter&)


Название: много линий на QCanvas
Отправлено: lepsai от Октябрь 16, 2005, 19:23
Смешной парень....  Ясен перец, что оно тебе выдаёт ошибку, чисто виртуальную функцию надо бы переопределить. Откуда иначе твоя ххрень знает какие точки рисовать. Вот переопредели  и тады всё запашет.


Название: много линий на QCanvas
Отправлено: piton от Октябрь 16, 2005, 22:15
да ну его фтопку..я уже QCanvasLine переопределил, все прекрасно работает