einfache grafische Programmierung



  • Hallo,
    ich benötige Bibliotheken um einfache graphische Darstellungen ermöglichen.

    Mein Ziel ist ein Fenster zu erzeugen, wo diese 3 Objekte in regelmäßigen Abständen neu gezeichnet werden:

    1. Koordinatensystem in Polarkoordinaten, mit einem sich von 2 Winkel abhängigen bewegenden Punkt
    2. Eine Achse, wo sich ein Punkt auf und ab bewegt
    3. Ein ähnliches Koordinatensystem wie in 1

    Da das Programm, in den das Fenster eingebettet wird mit openCV läuft, hat mir mein Kommilitone empfohlen, die Grafikfunktionen von openCV zu verwenden.
    Da ich finde, dass diese Funktionen doch sehr beschränkt sind und wollte diese erstmal nicht verwenden.

    Ansonsten kenne ich noch openGL (freeglut), aber das finde ich für meine Anforderungen schon fast overpowered.

    Die Googlesuche hat mir leider sofort zufriedenstellende Lösung gebracht. Könntet ihr mir etwas empfehlen?

    Vielen Dank,
    Phys1k3r



  • Benutze SFML das bietet dir einen sehr einfachen Zugang zu OpenGL und hat schon vorgefertigte Klassen fuer geometrische Objekte parat. Ich persoenlich benutze FLTK 1.3, da ich ab und an einen Button brauche und manche Rechner nur maessig 3D-Performance aufweisen.



  • knivil schrieb:

    Benutze SFML das bietet dir einen sehr einfachen Zugang zu OpenGL und hat schon vorgefertigte Klassen fuer geometrische Objekte parat. Ich persoenlich benutze FLTK 1.3, da ich ab und an einen Button brauche und manche Rechner nur maessig 3D-Performance aufweisen.

    Hallo,
    ich muss Visual Studio 2010 verwenden. SFML scheint dies nicht zu unterstützen, da es bereits hier abstürzt:
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML Graphics");

    während des Tutorials bei http://www.sfml-dev.org/tutorials/1.6/graphics-window.php

    Die 2.0 RC Version müsste ich leider noch kompilieren, das hat aber leider nicht geklappt.

    Gibt es noch gute Alternativen?

    EDIT:
    Hab grad die 1.6 mit VC 2010 kompiliren können. Hat erstmal geklappt!!



  • Habe nur SFML 2.0 ausprobiert. Funktioniert praechtig bei mir sowohl fuer VS 2010 als auch VS 2012. Zum Kompilieren habe ich den Wizard benutzt. Ausserdem gibt es SFML fuer VS 2010 auch schon vorkompiliert. Ich wuerde zu SFML 2.0 raten.



  • Hallo,
    die Installation hat heute geklappt...

    Ich wollte nun mit der Shape Klasse etwas rumspielen.
    Wenn ich das verstanden habe, hatte ich vorher, aus so einem Shape mit die einzelnen Objekte zu basteln.

    Dazu wollte ich diesen Code, der im Tutorial fürs SFML 1.6 verwendent wird, mal ausprobieren:

    sf::Shape Polygon;
    Polygon.AddPoint(0, -50,  sf::Color(255, 0, 0),     sf::Color(0, 128, 128));
    Polygon.AddPoint(50, 0,   sf::Color(255, 85, 85),   sf::Color(0, 128, 128));
    Polygon.AddPoint(50, 50,  sf::Color(255, 170, 170), sf::Color(0, 128, 128));
    Polygon.AddPoint(0, 100,  sf::Color(255, 255, 255), sf::Color(0, 128, 128));
    Polygon.AddPoint(-50, 50, sf::Color(255, 170, 170), sf::Color(0, 128, 128));
    Polygon.AddPoint(-50, 0,  sf::Color(255, 85, 85),   sf::Color(0, 128, 128));
    

    Das Programm kompiliert, aber leider nicht einmal, folgende Fehlermeldung:

    1>------ Erstellen gestartet: Projekt: calibrationControl, Konfiguration: Debug Win32 ------
    1>  window.cpp
    1>c:\users\osmin\documents\visual studio 2010\projects\calibrationcontrol\calibrationcontrol\window.cpp(15): error C2259: 'sf::Shape': Instanz von abstrakter Klasse kann nicht erstellt werden
    1>          aufgrund folgender Member:
    1>          "unsigned int sf::Shape::getPointCount(void) const": ist abstrakt
    1>          c:\sfml-2.0-rc\include\sfml\graphics\shape.hpp(196): Siehe Deklaration von 'sf::Shape::getPointCount'
    1>          "sf::Vector2f sf::Shape::getPoint(unsigned int) const": ist abstrakt
    1>          c:\sfml-2.0-rc\include\sfml\graphics\shape.hpp(210): Siehe Deklaration von 'sf::Shape::getPoint'
    1>c:\users\osmin\documents\visual studio 2010\projects\calibrationcontrol\calibrationcontrol\window.cpp(15): error C2248: "sf::Shape::Shape": Kein Zugriff auf protected Member, dessen Deklaration in der sf::Shape-Klasse erfolgte.
    1>          c:\sfml-2.0-rc\include\sfml\graphics\shape.hpp(246): Siehe Deklaration von 'sf::Shape::Shape'
    1>          c:\sfml-2.0-rc\include\sfml\graphics\shape.hpp(44): Siehe Deklaration von 'sf::Shape'
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    


  • Was hast du denn jetzt? 1.6 oder 2.0?
    In 2.0 ist shape abstract, sieht also so aus, als wenn du das verwenden würdest.

    Edit: da steht ja auch 2.0 in deinen Fehlermeldungen



  • Eventuell wäre auch das FLTK interessant für dich:

    Von Bjarne Stroustrup gibts da auch eine Einführung:

    http://www.stroustrup.com/Programming/programming_ch12.pdf

    Und schau mal hier bei Supporting Code: http://www.stroustrup.com/Programming/

    http://www.fltk.org/


Anmelden zum Antworten