Lib für einfache Graphik



  • Hallo,

    zum Visualisieren von mathematischen Algorithmen bräuchte ich eine einfache Lib, mit welcher ich in C++ 2D zeichnen kann.
    Linien, Kreise, Rechtecke usw... und die sonstigen üblichen Verdächtigen wären wünschenswert - wie gesagt alles im 2D Raum.

    Wenn ich nur auf Windows programmieren würde hätte ich GDI genommen, aber es soll auch auf Linux laufen.

    Es gibt zwar diverse für Spiele entwickelte Libs, aber ich glaube die sind etwas zu viel für meine kleine Aufgabe.

    Vielen Dank für Euren Input!



  • Herb Sutter war von Cinder ganz begeistert.



  • Qt und wxWidgets wären auch geeignet.

    In Qt gibt's die QPainter Klasse mit der man selbst Content in ein Fenster malen kann:
    https://qt-project.org/doc/qt-4.8/qpainter.html

    Und in wxWidgets gibt's dafür wxDC:
    http://docs.wxwidgets.org/trunk/classwx_d_c.html

    Je mehr klassische GUI-Elemente du benötigst (Dialoge, Menus, Buttons, Listen, ...) desto eher würde ich zu Qt oder wxWidgets raten.
    Wenn du mit ein paar einfachen Slidern/Checkboxen auskommst, dann ist Cinder sicher nicht ganz verkehrt.

    ps: Qt und wxWidgets implementieren das Zeichnen von Kreisen/Linien etc. soweit ich weiss nicht selbst, sondern rufen einfach die Funktionen der jeweils vorhandenen Plattform auf. Also z.B. GDI oder GDI+ auf Windows und auf anderen OSen dann halt was anderes. D.h. das Ergebnis wird auf verschiedenen Plattformen ähnlich aussehen, aber nicht exakt gleich sein. Weil halt unterschiedlicher Code für Antialiasing etc. zum Einsatz kommt. Wird vermutlich egal sein, aber ich dachte mir ich sollte es vielleicht erwähnen.



  • Ich finde cairo bzw. cairomm zum Zeichnen etwas angenehmer als QPainter/wxDC.



  • Nimmst du dann als GUI Framework immer ein ganz bestimmtes? Oder mal so mal so?

    ps: Mein letzter Punkt, also dass es mit den gewrappten OS Funktionen dann nicht überall exakt gleich aussieht, wäre mit Cairo sogar lösbar, oder? Also dass es dann doch überall exakt gleich aussieht.



  • Ich nehme GTKmm weil ich das am saubersten finde, was aber nicht heisst, dass man cairo nicht auch woanders verwenden könnte.

    Cairo sieht überall ziemlich gleich aus (ich weiss nicht, ob exakt, aber wenn man das will, geht es sicher indem man Hardware-Beschleunigung abschaltet) und kann sogar nach PDF und SVG exportieren, was in diesem Fall (Algorithmen visualisieren) von Vorteil sein könnte.


Log in to reply