Hallo zusammen, ich mache gerade (ja, in einem stolzen Alter!) meine ersten Gehversuche mit C auf dem PC. Momentan stellt sich die Frage, wie man am besten eine 128x64-Pixel-Anzeige darstellt. Schön muß es nicht sein, aber der Inhalt sollte erkennbar sein. Geht soetwas direkt in/aus einer Terminalemulation oder muß ich mich da direkt in ein GUI-Framework einarbeiten? Warum ich das Betriebssystem nicht erwähne? Weil ich momentan noch die freie Wahl zwischen Debian und Windows 7 habe. Debian wäre mir momentan einen Tick lieber. Viele Grüße W.T.
:
Bearbeitet durch User
Das "klassische" wäre wohl ncurses, das läuft auf allem was man nicht mit einem Seilzug anmachen muss. :D
Mit einer Terminalemulation geht es im Prinzip schon. Man kann sich ein Textfenster mit dr gewünschten Anzahl Spalten und Zeilen machen, und darin Klötze ausgeben oder Leerzeichen. Damit es auf den Bildschirm passt, in einer entsprechend kleinen Schrift. Sieht aber wahrscheinlich doof aus. Besser wäre es sicher, sich etwas mit einer der vielen Grafik-Libs zu beschäftigen (spontan fällt mir dazu Qt ein, aber da hat sicher jeder eine eigene Meinung). Das wird unterm Strich auch nicht schwieriger sein, sieht dann aber schicker aus.
Von der Komplexität her hat Klaus schon recht, zwischen Terminal und z.B. QT ist kein großer Unterschied. Zum ersten Ergebniss kommt man mit QT sogar schneller, da kann man nämlich im editor das fenster schön faul zusammenklicken :D.
Um das mal in den richtigen Rahmen zu rücken: Im Anhang sieht man die gewünschte Ausgabe (LCD-Emulation) in Matlab erzeugt. Soetwas würde ich gern in plain-C erzeugen, um einige Grafik-Funktionen am PC testen zu können. Hintergrund ist der, gleichzeitig Bildschirm-Ausgabe sehen zu können und mit dem Debugger Zugriff zu haben.
:
Bearbeitet durch User
Hoppla, da kamen ja schon schnell Antworten. Gäbe es denn im Terminal die Möglichkeit, z.B. Viertelzeichen als Pixel zu nutzen? Dann würde schon alles gemütlich passen. Leider habe ich noch keine Standard-Terminal-Schriftart mit soetwas gefunden. Wenn ich naiv in der Konsole mit "putchar" von 0 bis 256 ausgebe, sind jedenfalls keine Klötzchen dabei. QT....hm. Bis jetzt wirkte der Name schon ein wenig abschreckend. So groß und mächtig... ...leider kann ich die Einstiegshürde da noch gar nicht abschätzen. Vielen Dank für die bisherigen Beiträge!
:
Bearbeitet durch User
Walter Tarpan schrieb: > Hallo zusammen, > ich mache gerade (ja, in einem stolzen Alter!) meine ersten Gehversuche > mit C auf dem PC. Also grade als Anfänger würde ich mir so etwas nicht vornehmen. Das könnte sehr kompliziert werden. Es gibt zwar eine Lib, die aus Bildern einen C-Code macht(c't hacks Artikel: STM32F4-Discovery + VGA bilder oder so ähnlich), aber dass dann auf dem Terminal zeichnen zu lassen... Wenn du aber wirklich willst, habe ich spontan dies gefunden: http://www.tutorials.de/c-c/232172-bild-konsole-einfuegen.html mfg 12V DC
12V DC schrieb: > Also grade als Anfänger würde ich mir so etwas nicht vornehmen. Das > könnte sehr kompliziert werden. Es gibt zwar eine Lib, die aus Bildern > einen C-Code macht(c't hacks Artikel: STM32F4-Discovery + VGA bilder > oder so ähnlich), aber dass dann auf dem Terminal zeichnen zu lassen... Was ich bereits habe: Ein 1024 uint8_t großes Array, in dem die Bitmap als Pixelmuster vorliegt. Denn so wird es auch auf einem µC an ein Grafik-LCD geschickt. Was mir fehlt: Dieses Pixelmuster auf dem PC anschauen zu können. Im Notfall bleibt mir immer die Möglichkeit, aus diesem Array ein BMP zu erstellen - da brauche ich na nur noch den Header davorzukopieren - und auf die Platte zu schreiben. Aber das wäre der letzte Fallback. Aber das Tutorial sieht schon einmal vielversprechend aus. Das läßt sich schnell ausprobieren - wenn es von MinGW unterstützt wird.
Ich habe hier noch mal etwas gefunden: Beitrag "C: Pixel auf dem Bildschirm ausgeben" und hier:http://www.delphipraxis.net/106245-c-ein-pixel-zeichnen-3.html Aber sonst kann man es ja auch schon mal mit irgendeinem anderen Zeichen Probierenn(z.B. *+ o.ä.). Das Bild müsste ja das selbe bleiben.
Da ist definitiv SDL zu empfehlen. Die ist unter anderem für solche Zwecke gemacht. Du kannst einfach ein Fenster erstellen und dort deine Bitmap darstellen lassen -> SDL_CreateRGBSurface oder auch auf Festplatte speichern lassen. Sie ist einfach aufgebaut, für alle gängigen Platformen erhältlich und in C. Sowas in der Art musste ich auch mal machen.
SDL sieht auf den ersten Blick wirklich sehr gut aus. Danke für den Tipp! Edit: Die Einstiegshürde sieht wirklich extrem niedrig aus. Das erste leere Fenster ist schon da, d.h. der Build funktioniert. Edit2: Und das erste Bild ist zu sehen. Ich werde jetzt hervorragen schlafen. Danke für die Tipps!
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.