Grafikprogrammierung in C++



  • Und welchen Weg der Ausgabe empfiehlst du / schlägst du vor ?

    Ergänzung:

    Ich will z.B. eine Art (Schalt)Plan zeichnen können und diesen wieder Darstellen.
    Momentan passiert dies mit Canvas auf einem Image.
    Da dies jedoch nicht viel her gibt würde ich dies grafisch gern ansprechender lösen. Und hierfür suche ich Vorschläge, Empfehlungen, Komponenten.



  • Hallo

    Was verstehst du unter "gibt nicht viel her"? Auf einem Canvas kannst du alles machen. Windows und die VCL bieten grundlegende Manipulation bis auf Pixelebene an. Alle aufwendigeren Darstellungen kannst du aus den Grundfunktionen zusammensetzen. Daran ändert sich erstmal auch nichts, wenn du statt desen auf DirectX oder so umsteigst. Auch dort must du erstmal deine Elemente manuell darstellen.
    Ich könnte mir vorstellen das es für die VCL im Netz bereits Komponenten gibt, die so einen Schaltplan abbilden. Wenn du passende findest, kannst du die bei dir importieren und verwenden.

    bis bald
    akari



  • Momentan bin ich mit meiner Darstellung hier:

    http://www.etm-gmbh.de/Anlagendateien/C8_1LT 2BE_V1/index-Dateien/image002.jpg

    und da ist ungefähr das wo ich hin will:

    http://www.etm.at/images/b_gedi_gr.jpg

    und ich denke das hierfür mehr brauche als das normale canvas.

    Eventuell liegt die Erstellung dieser Objekte ja auch in HTML oder ähnlichem und ich muss sie dann nur in C++ darstellen.
    eventuell hat ja hier schon jemand erfahrung mit so etwas.



  • Hallo

    Nein, auch das zweite Programm führt definitiv Zeichenoperation durch. Auch für die Farbverläufe zum Beispiel gibt es WinAPI-Funktionen. Natürlich must du manuell die Darstellung zusammenstellen. Auf dem Bild ist jetzt nicht erkennbar, was davon einfache vorbereite Bitmaps und was skalierbare Echtzeitzeichnungen sind. Zum Beispiel könnten die "Tank"-Elemente noch mit hinreichend wenig aufwand im Programm skaliert und gezeichnet worden sein, gleichzeitg aber die Ventile gleich drunter einfach als Bitmap geladen und kopiert worden sein.
    Ist alles nur eine Frage, wieviel Aufwand du für wieviel Aussehen und Funktionalität betreiben willst.

    Mit der Frage nach HTML und so verrennst du dich aber auf jedenfall.

    bis bald
    akari



  • Also sehe ich das richtig das ich ich mit den Funktionen und dem Werkzeug (Image/Canvas) die ich jetzt verwende, genauso Grafisch ansprechend programmieren kann , wie wenn ich OpenGL oder DirectX programmiere, ich muss nur entsprechendem Aufwand treiben?

    Ich sage Danke für deine Hilfe.
    🙂



  • Ich möchte mein Thema nochmal in den Vordergrund rücken.
    Und zwar habe ich mich entschlossen nochmal von vorne anzufangen. und von vorne anzufangen heißt ja auch andere möglichkeiten in betracht ziehen.
    Hier bin ich auf eure Erfahrungen, Informationen , Kenntnisse angewiesen.

    Folgendes habe ich probiert :
    - Programmieren eigener Objekte in C++ auf Basis eines TImages und dessen Canvas.
    Der aufwand ist enorm ,z.B. eine Gauge, grafisch zu Programmieren und dann mit entsprechenden Funktionen zu versorgen. Mein Problem hier ist die Optik , das Flackern, da ich bei Wertänderung komplett neu zeichnen muss.

    - Laden von fertigen Bildern (BMPs,GIFs) in Images, Bei Gifs ist hier auch dieses andauernde flackern. Ich habe versucht auf das geladene Bild ein weiteres Objekt zu legen, das z.B. mein Zeiger für die Gauge ist. Jedoch muss ich hier ja auch schräge Zeiger können. Folglich muss mein Zeigerobjekt ähnlich groß wie das Bild sein und dann eben auch noch Transparent. Aber dann kann ich gleich wieder alles zeichnen, weil es wieder flackert.

    Folgendes hätte ich gerne :

    (- Fertige Komponente)
    - Flackerfrei
    - Skalierungsfähig
    - Optisch ansprechend
    - Animationen

    Meine Frage an euch:
    -Wie setzt ihr grafische Objekte mit C++ um ?
    -Welche Komponenten benutzt ihr ?
    -Ist eine andere Programmiersprache (C#,Java,PHP,JavaScript,...) besser für mein anliegen geeignet ?
    - Kennt jemand solche Packeges, Komponenten für Compiler die ähnliches beinhalten , bieten?
    - Lösungsansätze?

    Danke für eure Hilfe.



  • Ein Beispiel: http://www.mitov.com/html/instrumentlab.html
    Das Werkzeug, mit dem die Sachen erstellt wurden, gibt's dort gleich mit: http://www.mitov.com/products/igdi+



  • Das sieht sehr vielversprechend aus.
    Danke 🙂



  • das "flackern" bekommst Du weg wenn du Deine Elemente auf ein Panel stellst umd dem Panel die Property "double buffered" auf true setzt.



  • Ne Frage zu dem IGDI+ Werkzeug Herr Jansen.

    Es gibt dieses IGDI+ Werkzeug von motive und man kann ein
    GDI+ Werkzeug "installieren" dessen ".dll" schon im Compilerverzeischnis hinterlegt ist.

    Welches eignet sich nun besser für C++ Programmierung unter Codegear?
    Wenn ich ähnliche Komponenten wie die des InstrumentalLAB erstellen will wird sich wohl das IGDI+ von motive anbieten oder ?

    Haben Sie bereits erfahrungen mit dem Werkzeug ?
    Könnten Sie mir gegenfalls Beispiele zukommen lassen?

    Das Beispiel von Motive ist in Delphi und sämtliche Anpassungen meinerseits schlagen fehl.

    Danke

    @Sabaoth
    Danke für den Hinweis, das habe ich schon länger gesucht.


Anmelden zum Antworten