Hallo,
ich suche eine Möglichkeit möglichst performant 2d Scatterplots zu rendern, performant im Sinne dass ich sehr viele Punkte gleichzeitig zeichnen muss und trotzdem noch scrollen und zoomen will möglichst ohne dass es ruckelt.
Da Java2d und jOGL beide hardwarebeschleunigte sind werde ich wohl für beide eine kleine Testapplikation schreiben um abhängig von der Zahl der Punkte die Performance zu testen. Wenn mir jemand aber von vorne herein sagen kann dass eine der beiden Möglichkeiten deutlich langsamer ist oder andere gravierende Nachteile mit sich bringt würde mir das einiges an Arbeit ersparen =).
Unabhängig von J2d/jOGL habe ich mir überlegt ob ich durch eine geeignetere Datenstruktur etwas Performance gewinnen kann. Konkret bedeutet das nicht einfach eine Liste mit allen Punkten zu verwalten sondern eine Datenstruktur zu nutzen die z.b. beim Zoomen tatsächlich nur die Punkte aus dem momentan sichtbaren Bereich zeichnet (clipping). Z.b. käme ein Quadtree in Frage.
Nun habe ich aber recht wenig Erfahrung mit Java 2d Engines daher weiss ich nicht ob es eine Möglichkeit gibt z.b. das Bild beim Zoomen/Scrollen nicht komplett neu rendern zu müssen sondern nur den Viewport zu verschieben.
Ein paar Zusatzinformationen: Die Plots sollen später in eine Swing GUI eingebettet werden, ich habe mehrere Jahre Erfahrung mit Java aber habe mich nie mit 2d Grafik beschäftigt. Die Möglichkeit fertige Libraries wie z.b. JFreeChart zu verwenden habe ich verworfen da ich bisher keine gefunden hat die mich zu 100% zufrieden stellt.
Wäre super wenn mir jemand weiterhelfen könnte. Es ist wohl eine recht umfangreiche Fragestellung, ich bin aber gewillt mich entsprechend einzulesen, das Thema erschlägt mich nur etwas daher hatte ich gehofft jemand könnte mir einen Überblick verschaffen =)
lg muzzel
ich suche eine Möglichkeit möglichst performant 2d Scatterplots zu rendern, performant im Sinne dass ich sehr viele Punkte gleichzeitig zeichnen muss und trotzdem noch scrollen und zoomen will möglichst ohne dass es ruckelt.
Da Java2d und jOGL beide hardwarebeschleunigte sind werde ich wohl für beide eine kleine Testapplikation schreiben um abhängig von der Zahl der Punkte die Performance zu testen. Wenn mir jemand aber von vorne herein sagen kann dass eine der beiden Möglichkeiten deutlich langsamer ist oder andere gravierende Nachteile mit sich bringt würde mir das einiges an Arbeit ersparen =).
Unabhängig von J2d/jOGL habe ich mir überlegt ob ich durch eine geeignetere Datenstruktur etwas Performance gewinnen kann. Konkret bedeutet das nicht einfach eine Liste mit allen Punkten zu verwalten sondern eine Datenstruktur zu nutzen die z.b. beim Zoomen tatsächlich nur die Punkte aus dem momentan sichtbaren Bereich zeichnet (clipping). Z.b. käme ein Quadtree in Frage.
Nun habe ich aber recht wenig Erfahrung mit Java 2d Engines daher weiss ich nicht ob es eine Möglichkeit gibt z.b. das Bild beim Zoomen/Scrollen nicht komplett neu rendern zu müssen sondern nur den Viewport zu verschieben.
Ein paar Zusatzinformationen: Die Plots sollen später in eine Swing GUI eingebettet werden, ich habe mehrere Jahre Erfahrung mit Java aber habe mich nie mit 2d Grafik beschäftigt. Die Möglichkeit fertige Libraries wie z.b. JFreeChart zu verwenden habe ich verworfen da ich bisher keine gefunden hat die mich zu 100% zufrieden stellt.
Wäre super wenn mir jemand weiterhelfen könnte. Es ist wohl eine recht umfangreiche Fragestellung, ich bin aber gewillt mich entsprechend einzulesen, das Thema erschlägt mich nur etwas daher hatte ich gehofft jemand könnte mir einen Überblick verschaffen =)
lg muzzel