Anfang

Nicht-Standardfunktionen

Neben den in den Include-Dateien deklarierten Standardfunktionen von C bietet jeder Compiler auch Funktionen, die nicht dem ANSI C Standard entsprechen. Entweder sind sie nur für ein bestimmtes Betriebssystem (wie z.B. DOS Konsolenfunktionen) gültig, oder es sind Funktionen die nur vom speziellen Compiler zur Verfügung gestellt werden.

Borland Turbo C und Borland C++ besitzen eine recht umfangreiche Grafik-Library(Borland Grafik). Zur Verwendung derselben gibt es verschiedene Grafiktreiber (BGI-Trieber), die unterschiedliche Auflösungen unterstützen. Die Bildschirmkarte aller PC's unterstützt heute zumindest den sogenannten VGA Grafikmodus, der eine Auflösung von 640x480 Graphikpunkten erlaubt. Mit den in der Grafik-Library definierten Funktionen kann man entweder direkt einen bestimmten Graphiktreiber auswählen, oder automatisch den für das System passenden Treiber auswählen lassen. In der Grafik-Library sind Funktionen zum Zeichnen von Linien, Kreisbögen (Kreisen), Rechtecken und anderen geometrischen Figuren enthalten, wobei die Figuren mit unterschiedlichen Füllmustern und Linienmustern gezeichnet werden können.

Um die Grafikfunktionen von Borland Turbo C oder Borland C++ nützen zu können, muss bei Turbo C(++) im Menü Options/Linker der Schalter bei Graphics library auf ON sein, bei Borland C++ ein neues Projekt für eine Standard DOS Umgebung (unter Verwendung der BGI Standardbibliothek) erstellt und im eigentlichen Programm die Datei graphics.h inkludiert werden. Die Grafikfunktionen, die Borland zur Verfügung stellt, sind in graphics.h deklariert.


Die Verwendung von einigen Grafikroutinen sei hier in einem Demoprogramm gezeigt. Eine ausführliche Demo ist im Unterverzeichnis BGI von Turbo C vorhanden.


 

DOS Consolen Funktionen:   <conio.h>

Bezeichner / Aufruf Argument / Rückgabewert / Erläuterung
clrscr(); Bildschirm löschen
gotoxy(x, y); Cursor an bestimmten Punkt am Bildschirm setzen
int x Textspalte
int y Textzeile
c = getch(); Einzelnes Zeichen ohne Echo am Bildschirm einlesen.
int c Gelesenes Zeichen, bei Fehler wird EOF geliefert
c = getche(); Einzelnes Zeichen mit Echo am Bildschirm einlesen.
int c Gelesenes Zeichen, bei Fehler wird EOF geliefert
i = putch(c); Ausgabe eines Zeichens auf den Bildschirm.
int c Auszugebendes Zeichen
int i Liefert das Zeichen c oder bei Fehler wird EOF geliefert
b = kbhit(); Test auf gedrückte Taste
int b Ergebnis: != 0 falls Taste gedrückt; 0 sonst
window(left, top, right, bottom); definiert einen Bereich des Text-Bildschirms als Ausgabefenster.
int left linke Spalte des Ausgabefensters
int top obere Zeile des Ausgabefensters
int right rechte Spalte des Ausgabefensters
int bottom untere Zeile des Ausgabefensters
top

 


 

Borland-C Grafik-Funktionen:   <graphics.h>

Bezeichner / Aufruf Argument / Rückgabewert / Erläuterung
detectgraph(*gdriver, *gmode); prüft die Hardware des Computers und bestimmt, welcher Grafiktreiber und welcher Grafikmodus verwendet werden sollen.
int far *gdriver Nummer des BGI-Grafiktreibers
int far *gmode Grafikmodus
initgraph(*gdriver, *gmode, *pathtodriver); ("initialize graphics") - initialisiert das Grafikpaket und setzt einen Grafikmodus.
int far *gdriver Nummer des BGI-Grafiktreibers
int far *gmode Grafikmodi der einzelnen Treiber
char far *pathtodriver Pfad zur entsprechenden BGI-Datei
closegraph(); beendet den Grafikmodus
cleardevice(); löscht den Grafik-Bildschirm.
MaxX = getmaxx();
MaxY = getmaxy();
("get maximum x/y [coordinate]") - liefert die größte X-Koordinate (Y-Koordinate) des Bildschirms.
int MaxX
int MaxY
maximale X-Koordinate
maximale Y-Koordinate
moveto(x, y); positioniert den Grafik-Cursor auf den Punkt (x,y).
int x x-Koordinate des Grafikpunktes
int y y-Koordinate des Grafikpunktes
putpixel(x, y, color); zeichnet einen Punkt.
int x x-Koordinate des Punktes
int y y-Koordinate des Punktes
int color Farbe des Punktes (0:schwarz, 1:blau, 2:grün, 3:cyan, 4:rot, 5:magenta, 6:braun, 7:hellgrau, 8:dunkelgrau, 9:hellblau, 10:hellgrün, 11:helles cyan, 12:hellrot, 13:helles magenta, 14:gelb, 15:weiß)
line(x1, y1, x2, y2); zeichnet eine Linie zwischen zwei Punkten.
int x1 x-Koordinate des ersten Punktes
int y1 y-Koordinate des ersten Punktes
int x2 x-Koordinate des zweiten Punktes
int y2 y-Koordinate des zweiten Punktes
lineto(x, y); ("line to") - zeichnet eine Linie von der momentanen Position des Grafik-Cursors zu einem angegebenen Punkt.
int x x-Koordinate des Zielpunktes
int y y-Koordinate des Zielpunktes
outtext(*textstr); ("out text") - gibt einen String an der Position des Grafik-Cursors aus.
char far *textstr Textstring
outtextxy(x, y, *textstr); ("out text [at] X/Y") - gibt einen String an beliebiger Position des Grafikbildschirms aus.
int x x-Koordinate der Textausgabe
int y y-Koordinate der Textausgabe
char far *textstr Textstring
circle(x, y, r); zeichnet einen Kreis.
int x x-Koordinate des Mittelpunktes (x,y)
int y y-Koordinate des Mittelpunktes (x,y)
int r Radius r des Kreises
rectangle(left, top, right, bottom); zeichnet ein Rechteck.
int left x-Koordinate des linken oberen Punktes des Rechteckes
int top y-Koordinate des linken oberen Punktes des Rechteckes
int right x-Koordinate des rechten unteren Punktes des Rechteckes
int bottom y-Koordinate des rechten unteren Punktes des Rechteckes
top


home