Ausgabe einzelner Pixel



  • Hallo,
    ich bin ein echter Neuling und habe nun angefangen mich mit Programmierung zu beschäftigen. Ich habe mich für c bzw. c++ entschieden, warum sei mal dahingestellt. Nachdem ich einige Grundlagen gelernt habe dachte ich mir, dass ich noch nicht einmal einen Bildpunkt auf meiner schwarzen Konsole ausgeben kann obwohl das doch in meinen Augen von Anfang an das elementarste ist was ich mir vorstellen kann. Ich kann ich vielen Büchern nachlesen wie ich Ausgaben mit printf() oder cout vornehme um Buchstaben und ganze Sätze auszugeben aber ich habe keine Ahnung wie ich einen beliebigen Bildpunkt in einer beliebigen Farbe ausgeben kann, geschweige denn wie ich eine Funktion wie printf() selber schreiben könnte. 😕
    Ist es z.B. soooo unmöglich den Bildpunkt oben links weiß erscheinen zu lassen?

    Gruß Max 🙂


  • Administrator

    MaxPower schrieb:

    Ist es z.B. soooo unmöglich den Bildpunkt oben links weiß erscheinen zu lassen?

    Mit reinem Standard C++ ist es unmöglich, da C++ überhaupt nichts über Graphik weiss. Es gibt Bibliotheken für graphische Ausgabe und das in riesigen Massen, aber bevor du dich nicht in C++ gefestigt hast, solltest du die eher meiden. Auch wenn es ernüchternd kling, so würde ich raten, dass du zuerst ein halbes bis ganzes Jahr auf der Konsole bleibst und reines gutes C++ lernst. Mach erst dann den Schritt weiter zur graphischen Ausgabe, entweder über ein GUI Framework oder 2D/3D Framework.

    Grüssli



  • Standard-C++ kennt weder Pixel noch die Konsole. Die Konsole andererseits kennt keine einzelnen Pixel sndern nur ganze Zeichen. Außerdem sind C und C++ zwei verschiedene Sprachen, du solltest dich für eine entscheiden und nicht wild durcheinandermischen (das sollte dir allerdings auch jedes halbwegs gute C++-Buch erklären)

    Funktionen wie printf() selber zu schreiben benötigen Wissen auf Systemebene, das ist weit jenseits von Standard-C (udn auch von Standard-C++)



  • MaxPower schrieb:

    Ich habe mich für c bzw. c++ entschieden

    Du solltest dich für eine der beiden Sprachen entscheiden. Die Programmierung unterscheidet sich nämlich grundlegend.

    MaxPower schrieb:

    Ist es z.B. soooo unmöglich den Bildpunkt oben links weiß erscheinen zu lassen?

    Mit Standardmitteln kannst du keine Grafik zeichnen. Dafür benötigst du externe Frameworks.

    Jedoch solltest du zuerst normales Standard-C bzw. -C++ lernen, bevor du dich an Grafik heranwagst. Das dauert meistens alleine schon lange genug.



  • Wenn mit mit Windows arbeitest und etwas farbe in die Konsole bringen möchtest dann schau mal hier:
    http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx

    Wenn du aber mit Grafiken arbeitst willst dann gibt es eine librarys die das ermöglcihen.
    kannst dich ja im Forum umsehen:
    http://www.c-plusplus.net/forum/viewforum-var-f-is-7.html



  • Ich danke euch für eure schnellen Antworten :p auch wenn es ziemlich niederschmetternd klingt, dass ich erst ein Jahr lernen soll, bevor ich einen Punkt ausgeben kann. 😮
    Ich kann also weder die Funktionen noch die Objekte die ich beim Programmieren benutzen muss verstehen... Ich hatte mich eigentlich für c++ entschieden, weil man damit angeblich so grundlegend anfängt und viele Freiheiten hat aber bei Punkten ist man wohl schon weit über allen Möglichkeiten. 😞 Dauert es dann vom Punkt bis zum Strich auch wieder ein Jahr? Ich will nicht sarkastisch klingen, aber das macht mich fertig. 😉
    Naja, dann bleibe ich vorerst noch bei meiner schwarzen Konsole und C++. Es fällt mir nur schwer reinzukommen. Man liest sein Buch und lernt und lernt und lernt Syntax. Ich möchte auch mal was programmieren! Ich bräuchte ein kleines Projekt aber mir fällt leider nichts ein. Gibt es denn nirgendwo sowas wie Übungsaufgaben, nur ein wenig größer?



  • nein - zur linie dauert es dann nich nochma nen jahr...

    das problem ist einfach, dass du mit standard c++ nicht mal eben nen fenster öffnen kannst und dort bestimmte pixel einfärben kannst...
    das würde z.bsp. mit directx und opengl gehen (allerdings sind die tutorials für directx bzw opengl unter c++ nicht mal eben in 2 minuten durchgearbeitet - und man sollte davor schon C++ beherrschen können).

    das tut, was ich damals ma gemacht hatte, hat mich (effektiv) einge stunden gekostet - und ich konnte schon c++ - und am ende konnte ich nicht viel mehr, als nen würfel malen und rotieren lassen...

    deshalb: fang erst mal ganz normal mit der konsole an und lern c++ - und wenn du das dann beherrschst, nimm dir nen framework oder arbeite direkt mit dx oder opengl - aber das wird nicht in den nächsten paar monaten sein ^^

    zu übungsaufgaben: sollten doch welche in deinem buch stehen?!
    ansonsten ists immer schwer was vorzuschlagen, wenn man nicht weiß, wie weit der jenige ist...

    bb



  • C++ kennt keine Pixel (Grafikkarte).
    Das da schon: http://www.pixeltoaster.com/

    Wenn es unbedingt in der Konsole sein soll, hol dir mittels dem WinAPI den sog. Device Context und zeichne rein.

    http://msdn.microsoft.com/en-us/library/aa923590.aspx



  • ich dachte am anfang genauso wie du warum c++ nicht direkt eine funktion wie pixeldraw anbietet.

    es gibt funktionen wie
    drawPoint(int x, int y) oder drawLine( int x1, int y1, int x2, int y2 )
    wenn man irgendne bibliothek nimmt die das ermöglicht

    du muss nicht 1 jahr dafür was lernen, eher 1 woche indem du dich schlau machst wie man eine bibliothek einbindet und alle nötigen objekte bereitstellt um diese event zu starten. wirkt komplex, sind aber nur wiederholende arbeitsschritte - den gesamten paket verstehen muss man nicht

    hier haben schon welche einige bibliotheken erwähnt. wenn du gleich gui nimmst:

    Qt (umfangreich)
    wxWidgets (umfangreich)

    oder spieleschnittstelle:
    SDL (einfach)
    ...


  • Administrator

    @xBlackKnightx,
    Problem mit deinem Vorgehen ist, dass man sich dann vom schlechten Stil der Bibliotheken beeinflussen lässt. Wenn du nicht sattelfest bist in C++ und mit einer entsprechenden Bibliothek anfängst, dann führt das zum einen zur Katastrophe, weil du einfach nicht sinnvoll mit der Bibliothek arbeiten kannst, da dir viel C++ Wissen fehlt, und zum anderen weil du dir eben den schlechten Stil der Bibliothek angewöhnst. Dadurch brauchst du nicht mehr 1 Jahr bis du gutes C++ schreibst sondern 5 Jahre 😉

    Aber gut, wenn jemand lieber den beschwerlichen Weg geht, ist das natürlich diesem selber überlassen ...

    Grüssli


Anmelden zum Antworten