Brauche einen Denkanstoss



  • Erstmal hallo zusammen

    bin neu hier und auch relativ neu was c++ angeht
    habe schon einiges mehr an VB erfahrung aber eben auch noch nicht genug 😃

    hab schon etwas erfahrung gesammelt aber bin noch weit entfernt vom profi allerdings gebe ich mir große mühe einer zu werden!

    Nun wie lernt man am besten? Indem man versucht ein Problem zu lösen und ich habe doch direkt eins wo ich etwas hilfe bei brauche.

    Und zwar habe ich folgendes Problem:

    Ich benötige ein Farbfeld wie man es aus Photoshop etc. kennt auf dem alle Farben gleichzeitig sichtbar sind und ich mit der Maus die Farbe auswählen kann und ich dann die Farbwerte für RGB zurückbekomme. Habe aber ehrlich gesagt keine ahnung wie ich das anstellen soll. Hatte bisher wenig mit Grafik programmiert.

    Was ich nun gerne von euch hätte wäre ein denkanstoss wie ich da am besten einsteige. Ich möchte keine fertige Lösung da ich diese "social engineering" schmarotzer welche alles schon fertig haben möchten auch nicht leiden kann 🙂

    Wäre echt klasse wenn ihr mir sagen könntet wie ich da am besten anfangen sollte, ob ich am besten ein Bild von einem solchen Farbfeld nehme und dann irgendwie die Werte versuche darüber lege oder ob ich das lieber vom programm zeichnen lasse oder wie es halt am sinnvollsten und vorallem am schnellsten im programmablauf wäre! Hatte mir sowas schonmal in OpenGL zusammengebaut aber ich wollte kein OpenGL fenster haben sondern es nur auf einem Standard Form drauf haben.

    Schonmal vorab vielen dank für eure denkanstöße!

    MfG
    rage



  • also wäre erstmal ganz praktisch zu wissen, mit welcher library für die Fenster du Arbeitest. Wenn du OpenGL kannst, dann müsstest du ja schon einige Programmiererfahrung haben, denn das ist ja nicht das leichteste. Und das wiederspricht sich mit dem dass du noch bisher wenig mit Grafik gemacht hast.

    Dann würde ich auch gerne mal wissen, was genau du denn wissen möchtest.

    Ohne weitere Infos kann ich nur allgemeine Infos geben.

    also Ein fenster öffen, drei Schieberegler einbauen je einer pro Farbe. Dann noch ein vorschaufenster einbauen, wo man die spätere Farbe sieht, und dann die drei werte zusammen zu einem RGB wert zusammensetzen.



  • Hi

    Also für einfache Sachen eignet sich die WinAPI auch sehr gut. Mit der GDI kannst du da auch etwas "grösseres" machen.



  • Das Farbfeld zu zeichnen wird wohl eher das kleinere Problem sein. Jede Farbe besteht ja aus drei Komponenten (R, G, B). Du kannst durch Herumexperimentieren die jeweilige Farbe abhängig von der Position zeichnen (vergleiche dazu am besten die Farbfelder von Photoshop mit deren RGB-Codes).

    Aber wie schon gesagt wurde, du benötigst eine Grafikbibliothek, da gibt es sehr viele Möglichkeiten, z.B. WinAPI (Windows-basierte Bibliothek), SDL, SFML, OpenGL (plattformunabhängig), ...



  • Also zuerst mal vielen dank für die schnellen antworten.

    hab mal bisschen mit opengl rumgespielt also quadrate und dreiecke zeichnen würfel bauen und so scherze bisschen durch die gegend fliegen mit den pfeiltasten und mit der maus objekte in der gegend herumschieben aber da ist dann auch so quasi schon schluss. normalerweise programmiere ich nur die reinen funktionen an unseren maschinen daher ist meine grafikprogrammierung so bescheiden.

    Das mit den schiebereglern wollte ich eigentlich nicht so machen, hab ich zwar auch schon dran gedacht aber das ist so eine notdürftige lösung.

    Vielleicht zum besseren verständnis, ich bin dabei mir eine visualisierung zu programmieren. Habe meine Bude mit einer SPS vernetzt mit allem drum und dran. und habe nun auch RGB LED´s in der Decke und da kann man schöne farbspiele mit machen bloß muss man die farben halt vernünfig am monitor in der wand auswählen können und da sind 3 schieberegler unschön.

    Betriebssystem wird leider ein Windows werden müssen da der SPS treiber welchen ich verwende nur für Windows verfügbar ist, es gibt zwar noch ein paar experimentelle aber diese sind leider sehr instabil und reißen dann ganz gerne den ganzen rechner mit...

    Meine frage ist nun welche Bibliothek ich verwenden soll ob sich da am besten ein WinAPI oder halt GDI oder was auch sonst immer am besten eignet oder halt wirklich ein OpenGL fenster im Form drin. was natürlich den vorteil hätte das ich sofort wüsste wie ich das Farbfeld zeichne, aber kann ich ein Opengl fenster in einem form einbetten? Geht das überhaupt?!

    Ich versuche sauber zu programmieren, auf diesen Rechnern wird nur die Visualisierung der Steuerung laufen und Rechenleistung und Speicherplatz ist mehr als genug vorhanden. Und da die Monitore alle Touch Scheiben drin haben kann man da natürlich mit so einem Farbfeld wenn ich es gut mach eine sehr schön zu bedienende oberfläche erzeugen! Allerding versuche ich Ressourcen schonend zu programmieren damit da auch wirklich überhaupt nichts hängt was leider durch den treiber zur anbindung an meine SPS sowieso schon etwas gebremst wird.

    Ich habe heute schonmal wieder etwas im Devc++ gespielt und mit dem WinAPI rumprobiert und das sieht schonmal garnicht schlecht aus, aber was zum henker ist SDL und SFML? GDI wird denke ich zu groß 😃 ich will kein spiel programmieren! 😉



  • darage schrieb:

    aber was zum henker ist SDL und SFML?

    Das sind einfache Grafikbibliotheken, die für 2D-Programmierung konzipiert wurden. Allerdings wird sich das kaum lohnen, deren Syntax und alles zu lernen, wenn du dich bereits mit OpenGL oder WinAPI auskennst und die Grafikprogrammierung nur für ein einziges Programm benötigtst. 😉

    Wie du jedoch programmtechnisch die Oberfläche, wo man die Farbe auswählen kann (Farbfeld), implementierst, ist dir bereits klar? Also ich mein jetzt nur vom Algorithmus her, unabhängig von der verwendeten Bibliothek.

    darage schrieb:

    hab mal bisschen mit opengl rumgespielt also quadrate und dreiecke zeichnen würfel bauen und so scherze bisschen durch die gegend fliegen mit den pfeiltasten und mit der maus objekte in der gegend herumschieben aber da ist dann auch so quasi schon schluss.

    Das sollte eigentlich für den von dir beschriebenen Zweck reichen. Du musst für ein Farbfeld ja nur die einzelnen Pixel zeichnen und eine Maus-Positions- und -Klickabfrage einbauen...
    Was ist denn konkret das Problem? Weisst du nicht welche Bibliotheken? Ich selber kenn mich leider weder mit OpenGL noch WinAPI aus, für so ein verhältnismässig kleines Programm würde ich aber wie gesagt etwas empfehlen, das du schon kennst.



  • Naja Problem habe ich nun keins mehr. Ich denke ich werde das ganze in OpenGL programmieren und dann später in meine bestehenden Seiten einbinden.

    Vielen Dank an euch schonmal das ihr mir auf meinem Weg helfen konntet, den rest werde ich mir nun durch lesen aneignen 😃

    Wenn ich noch fragen haben sollte melde ich mich nochmal aber denke und hoffe das wird nichtmehr nötig sein!

    Also Vielen Dank nochmal!


Anmelden zum Antworten