ich habe es geschafft mit qgl_widget eine Szene darzustellen, in der sehr viele einzelne Gerade sind (Teilweise > 1000).
bb
geschrieben habe ich ich die painGL() in etwa folgendes.
Code: Alles auswählen
float GeometryScale; //Skalierungsfaktor Auflösung -->Szene
QPoint GeometryMiddle; //Mittelpunkt der geometrischen Szene
// Hintergrund weiß
glClearColor(1,1,1,0);
glClear(GL_COLOR_BUFFER_BIT);
// Matrix um Bild einzuzeichnen
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-this->width()/2,this->width()/2,-this->height()/2,this->height()/2,-m_kMax,1);
// Matrix um Bild einzuzeichnen
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glScalef(m_Scale,m_Scale,1); //m_Scale wird per Mausraus mit 1.1 dividiert oder multipliziert --> Zoom
glTranslatef(m_qcurrentPosition.x,m_qcurrentPosition.y,0); // kann mehr Maus verschoben werden (Drag & Drop der Geometrischen Szene)
glScalef(1/GeometryScale,1/GeometryScale,1);
glTranslatef(-GeometryMiddle.x,-GeometryMiddle.y,0);
//Ab hier wird einfach gezeichnet, gerade für Gerade etc.
/*
*/
Ziel ist es für für also, die Szene einmal zu zeichnen, Sie mir dann per Mausoperationen nur aus anderen Positionen anzuschauen.
1. Geht das
2. Wenn ja, wohin müsste ich die Aufrufe aus der paintGL() verschieben?
Vielen Dank für alle Tipps, werde leider allein nicht fündig.
Alex
P.S.: Der MouseWheel
Code: Alles auswählen
if(event->delta()<0.0f)
m_Scale*=1.1f;
else
m_Scale/=1.1f;
updateGL();