Triangulierung mit Qt darstellen
-
Hallo!
Mit Qt soll eine 2D-Triangulierung dargestellt werden. Das gelingt auch, aber
der Speicherverbrauch liegt bei 1000 Bytes pro angezeigtem Dreieck. Ein erster
Versuch geht so:class TriangulationScene : public QGraphicsScene { public: TriangulationScene(); void scribble(); ... } void TriangulationScene::scribble() { setItemIndexMethod(NoIndex); for(vector<Triangle2*>::iterator it(vTriangles.begin());it!=vTriangles.end();++it) { Triangle2* pT(*it); Point2* p0(pT->getCorner(0)); Point2* p1(pT->getCorner(1)); Point2* p2(pT->getCorner(2)); QPolygonF polygon; polygon << QPointF(p0->x(),p0->y())<<QPointF(p1->x(),p1->y())<<QPointF(p2->x(),p2->y()); this->addPolygon(polygon); } } int main(int argc, char *argv[]) { QApplication a(argc, argv); TriangulationScene s; QGraphicsView v(&s); v.setDragMode(QGraphicsView::ScrollHandDrag); v.resize(1024,768); v.scale(100,100); v.show(); return a.exec(); }
Da hier jedes Dreieck als Polygon gezeichnet wird, ist jede Linie doppelt vor-
handen. Im günstigsten Fall ließe sich der Speicher also noch halbieren, indem
nur einzelne Linien gezeichnet werden. Aber das wäre noch immer nicht gut.Ideen, ob da vielleicht eine andere Klasse besser geeignet ist?