Zeichnen?
-
Original erstellt von crass:
SetPixel() funktioniert in einer Konsolenanwendung nicht, wenn ich mich nicht sehr irre. Die Konsole kann keine Grafik darstellen(egal obs nur einzelne Pixel sind, oder nicht). Du kannst nur Zeichen ausgeben. Wenn es ein Pixel sein muß wäre ein Punkt " . " vielleicht ne Idee ?!Wie kann man einen Punkt an einer beliebigen Stelle ausgeben?
btw: Wie machen die ganzen anderes Dos-Progs denn die Grafik?
-
Die Konsole ist jedenfalls ab den neueren Win-Versionen kein richtiges DOS mehr, sondern nur eine Simulation, die keine Grafik darstellen kann.
Wie man die Koordinaten setzt, weiß ich nicht mehr genau, ich weiß nur daß es geht vielleicht sollte man den thread ins Konsolenforum verschieben...
-
Original erstellt von crass:
Wie man die Koordinaten setzt, weiß ich nicht mehr genau, ich weiß nur daß es geht vielleicht sollte man den thread ins Konsolenforum verschieben...Wo der hin kommt ist mir eigentlich egal:D Hauptsache meine Frage wird beantwortet:D
-
ist sie doch schon: ES GEHT NICHT
Die andren "Dos-Programme" die zeichnen machen das auch nicht mit der Konsole...Das einzige was du machen könntest wäre mit Asciizeichen bilder zu malen aber naja.. ^^
-
Original erstellt von dreaddy:
**Die andren "Dos-Programme" die zeichnen machen das auch nicht mit der Konsole...
**Früher wurden Spiele nur für Dos programmiert, und Sie hatten ja wohl alle Grafik!:D Ich will doch einfach nur in einem Dos-Programm ein paar Pixel setzen - das kann doch nicht so schwer sein!
-
Okay. Hier gibts wohl missverständnisse.
es gibt 2 Arten von programmen:
1. DOS-Programme. Diese werden mit einem 16bit Compiler erstellt, die heutztage quasi nicht mehr gibt.
2. Konsolenprogramme. Diese werden erstellt, wenn man ein "DOS" oder "Terminal" programm unter windows (z.B. mit vc++6) erstellt.Die 1. Programme können in die Konsole (oder eher Vollbild) zeichnen.
Die 2. Programme können das nicht.Du kannst nur Konsolen (keine DOS) Programme erstellen. Es sei denn du lädst dir einen uralt Compiler runter.
-
mit Turbo C++ kannst du das zum Beispiel ganz gut machen, aber wenn du eh Windows benutzt wäre das quatsch, schon weil diese Grafiklibs unter Windoof eine miserable bis garkeine Unterstützung haben.
-
Die Windowslibs unterstützen viel mehr Grafikkarten und Features als die DOS-Äquivalente.
Mit uralt meinte ich z.B. sowas wie den Turbo C++. Aber das macht wirklich keinen Spaß damit was zu programmieren.
-
@BF_31
Aha. Der Britney-Fan. Die einzige Möglichkeit, die du hast, ist, auf dem Fenster direkt herumzuzeichnen. Wenn es deine eigene Konsole ist, dann müsstest du auch eine neue WindowProc für das Fenster setzen können, so dass du WM_PAINT und so abfangen kannst.
-
Dann würde ich aber keinen solchen Umstand machen, sondern einfach gleich eine richtige Windowsanwendung (keine Konsole) erstellen.
-
also... mit den neueren compilern wird es nicht gehen... aber wenn du noch einen alten hast dann geht das (z.b borland c++ 4.52). hier ein kleines beispiel :
#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> #define PIXEL_COUNT 1000 #define DELAY_TIME 100 int main(void){ int gdriver = DETECT, gmode, errorcode; int i, x, y, color, maxx, maxy, maxcolor, seed; ini1tgraph(&gdriver, &gmode, ""); errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } maxx = getmaxx() + 1; maxy = getmaxy() + 1; maxcolor = getmaxcolor() + 1; while (!kbhit()) { seed = random(32767); srand(seed); for (i=0; i<PIXEL_COUNT; i++) { x = random(maxx); y = random(maxy); color = random(maxcolor); putpixel(x, y, color); } delay(DELAY_TIME); srand(seed); for (i=0; i<PIXEL_COUNT; i++) { x = random(maxx); y = random(maxy); color = random(maxcolor); if (color == getpixel(x, y)) putpixel(x, y, 0); } } getch(); closegraph(); return 0; } // in der <graphics.h> sind alle funktionen die dir weiter helfen...
[ Dieser Beitrag wurde am 11.11.2002 um 14:39 Uhr von cd9000 editiert. ]
-
kleiner fehler (11 zeile code) ini1tgraph() => initgraph()
-
Mit Code-Tags könnte man den Code auch fast lesen
-
Mit Code-Tags könnte man den Code auch fast lesen
die darstellung hier ist aber nicht mein problem...
-
Original erstellt von toom:
**Mit Code-Tags könnte man den Code auch fast lesendie darstellung hier ist aber nicht mein problem...**
aber unser
-
wäre es nicht auch möglich sich statt dem alten compiler einfach nur die nötigen header (vorallem die dos.h, die es bei den heutigen Compilern nirgends mehr gibt) zu besorgen?
-
Nein. Mich dünkt, hier haben einige noch nicht ganz verstanden. Es geht hier um den Unterschied zwischen DOS und Konsole. Unter DOS kann man wunderbar zeichnen (s.o.). Dazu braucht man aber einen DOS-Compiler (16 Bit), wie z.B. den genannten von Borland. Diese DOS-Programme laufen dann auch unter Windows in der Konsole, aber die Grafikdarstellung ist mehr oder weniger dem Zufall überlassen... Wenn man aber für 32 Bit-Windows programmiert, dann programmiert man für die Konsole und eben nicht für DOS. In diesem Falle kann man leider nicht zeichnen. Wozu auch, wenn man die GUI zur Verfügung hat???
-
genau...!