Jetzt möchte ich Sie mit den wichtigsten Grafikbefehlen bekannt machen. In den Beispielprogrammen kommt nur der Grafikmodus mit der Nummer 12 zum Einsatz. Er hat eine Auflösung von 640 Bildschirmpunkten (Pixel) in Richtung der X-Achse und 480 Bildschirmpunkten in Richtung der Y-Achse. Dabei liegt der Koordinatenursprung (X=0, Y=0) in der oberen linken Ecke des Monitors.
Aber bevor wir die Grafikbefehle nutzen können, müssen wir natürlich in
den gewünschten Modus umschalten. Dies geschieht mit dem selben Befehl den wir auch
für den Textmodus verwendet haben.
Der einfachste Grafikbefehl ist PSET (Point SET,
"Punkt setzen"). Wie es die Übersetzung schon verlauten lässt verleiht er einem
bestimmten Pixel eine gewünschte Farbe. Die Koordinaten folgen direkt auf das
Befehlswort PSET, wobei zuerst der x-Wert und danach
der y-Wert anzugeben ist. Auf die Koordinaten folgt die Farbnummer die Sie der Tabelle
aus dem Kapitel 5.1 entnehmen können. Zusätzlich gibt es die Möglichkeit
mit STEP relative Koordinaten anzugeben. Aber schauen
Sie sich einfach folgendes Beispiel an:
REM--------------------------------------------------------------------------- REM Titel: PSET.BAS REM Autor: Marty Winkler REM Datum: 26.01.2002 REM--------------------------------------------------------------------------- DEFINT A-Z '--- Bildschirm vorbereiten SCREEN 12 CLS '--- Überschrift COLOR 11 PRINT TAB(31); "Die PSET-Anweisung" PRINT '--- absolute Koordinaten (320, 240) COLOR 7 PRINT "Einen weißen Punkt mit den Koordinaten (320, 240) setzen:" COLOR 9 PRINT TAB(10); "PSET (320, 240), 15" PSET (320, 240), 15 Warten$ = INPUT$(1) '--- relative Koordinaten (320, 240) + (10, 10) = (330, 250) ' letzte Koor. + rel. Koor. = aktuelle Koor. COLOR 7 PRINT "Relativ zu den letzten Koordinaten einen gelben Punkt setzen:" COLOR 9 PRINT TAB(10); "PSET STEP(10, 10), 14" PSET STEP(10, 10), 14 Warten$ = INPUT$(1) '--- wieder relative Koor. (330, 250) + (-10, -10) = (320, 240) ' letzte Koor. + rel. Koor. = aktuelle Koor. COLOR 7 PRINT "Den ersten Punkt löschen (= Farbe schwarz):" COLOR 9 PRINT TAB(10); "PSET STEP(-10, -10),0" PSET STEP(-10, -10), 0 Warten$ = INPUT$(1) '--- Standard-Schriftfarbe wiederherstellen COLOR 7 |
Der nächste Befehl soll die LINE-Anweisung ("Linie") sein. Diese zeichnet Linien oder Rechtecke auf den Bildschirm. Auch dazu ein Beispiel:
REM--------------------------------------------------------------------------- REM Titel: LINE.BAS REM Autor: Marty Winkler REM Datum: 26.01.2002 REM--------------------------------------------------------------------------- DEFINT A-Z '--- Bildschirm vorbereiten SCREEN 12 CLS '--- Überschrift COLOR 11 PRINT TAB(31); "Die LINE-Anweisung" PRINT '--- Linie COLOR 7 PRINT "eine weiße Linie von (500, 300) bis (600, 400):" COLOR 9 PRINT TAB(10); "LINE (500, 300)-(600, 400), 15" LINE (500, 300)-(600, 400), 15 Warten$ = INPUT$(1) '--- relative Koordinaten COLOR 7 PRINT "relative Koordinatenangabe:" COLOR 9 PRINT TAB(10); "LINE STEP(0, -100)-(500, 400), 15" LINE STEP(0, -100)-(500, 400), 15 Warten$ = INPUT$(1) '--- ein Rechteck: B = border ("Rahmen") COLOR 7 PRINT "ein gelbes Rechteck:" COLOR 9 PRINT TAB(10); "LINE (500, 300)-(600, 400), 14" LINE (500, 300)-(600, 400), 14, B Warten$ = INPUT$(1) '--- ein ausgefülltes Rechteck: BF = border filled ("gefüllter Rahmen") COLOR 7 PRINT "ein gefülltes rotes Rechteck:" COLOR 9 PRINT TAB(10); "LINE (480, 270)-(620, 299), 4" LINE (480, 270)-(620, 299), 4, BF Warten$ = INPUT$(1) '--- ein andere Möglichkeit eine Linie zu zeichnen COLOR 7 PRINT "ein andere Möglichkeit eine Linie zu zeichnen:" COLOR 9 PRINT TAB(10); "LINE -(620, 430), 4" LINE -(620, 430), 4 Warten$ = INPUT$(1) '--- und zuende zeichnen COLOR 7 PRINT "und zuende zeichnen:" COLOR 9 PRINT TAB(10); "LINE -(480, 430), 4" PRINT TAB(10); "LINE -(480, 270), 4" LINE -(480, 430), 4 LINE -(480, 270), 4 Warten$ = INPUT$(1) COLOR 7 |
Um Kreise zu zeichnen benutzt man den Befehl CIRCLE ("Kreis"). Auch hier sind relative Koordinatenangaben möglich.
REM--------------------------------------------------------------------------- REM Titel: CIRCLE.BAS REM Autor: Marty Winkler REM Datum: 26.01.2002 REM--------------------------------------------------------------------------- DEFINT A-Z '--- Bildschirm vorbereiten SCREEN 12 CLS '--- Überschrift COLOR 11 PRINT TAB(31); "Die CIRCLE-Anweisung" PRINT '--- Linie COLOR 7 PRINT "einen grauen Kreis bei (500, 300) mit einem Radius von 30:" COLOR 9 PRINT TAB(10); "CIRCLE (500, 300), 30, 7" CIRCLE (500, 300), 30, 7 Warten$ = INPUT$(1) '--- relative Koordinaten COLOR 7 PRINT "einen gelben Kreis bei (460, 300) mit einem Radius von 10:" COLOR 9 PRINT TAB(10); "CIRCLE STEP(-40, 0), 10, 14" CIRCLE STEP(-40, 0), 10, 14 Warten$ = INPUT$(1) COLOR 7 |
Der vorletzte Befehl den ich Ihnen vorstellen möchte heißt PAINT ("färben"). Mit ihm kann man einen bestimmten Bereich mit der angegebenen Farbe ausfüllen . . . also färben.
REM--------------------------------------------------------------------------- REM Titel: PAINT.BAS REM Autor: Marty Winkler REM Datum: 26.01.2002 REM--------------------------------------------------------------------------- DEFINT A-Z '--- Bildschirm vorbereiten SCREEN 12 CLS '--- Überschrift COLOR 11 PRINT TAB(31); "Die PAINT-Anweisung" PRINT '--- Rechteck COLOR 7 PRINT "zuerst ein gelbes Rechteck zeichnen (50*50 Pixel):" COLOR 9 PRINT TAB(10); "LINE (300, 350)-STEP(50, 50), 14, B" LINE (300, 350)-STEP(50, 50), 14, B Warten$ = INPUT$(1) '--- und jetzt ausfüllen COLOR 7 PRINT "und jetzt mit Blau (1) ausfüllen, bis QuickBASIC auf Gelb (14) stößt:" COLOR 9 PRINT TAB(10); "PAINT (325, 375), 1, 14" PAINT (325, 375), 1, 14 Warten$ = INPUT$(1) COLOR 7 |
Um die Sache abzurunden kann man nicht nur einem Punkt eine Farbe verleihen, sondern auch die Farbe eines bestimmten Punktes ermitteln. Dies geschieht mit der Funktion POINT ("Punkt"):
REM--------------------------------------------------------------------------- REM Titel: POINT.BAS REM Autor: Marty Winkler REM Datum: 26.01.2002 REM--------------------------------------------------------------------------- DEFINT A-Z RANDOMIZE TIMER '--- Bildschirm vorbereiten SCREEN 12 CLS '--- Überschrift COLOR 11 PRINT TAB(31); "Die POINT-Funktion" PRINT '--- Rechteck COLOR 7 PRINT "zuerst einen Punkt mit einer zufälligen Farbe zeichnen:" COLOR 9 PRINT TAB(10); "PSET (300, 300), INT(16 * RND)" PSET (300, 300), INT(16 * RND) Warten$ = INPUT$(1) '--- und jetzt Farbe ermitteln COLOR 7 PRINT "und jetzt die Farbe ermitteln:" COLOR 9 PRINT TAB(10); "Farbe = POINT(300, 300)" PRINT TAB(10); "PRINT Farbe" Farbe = POINT(300, 300) PRINT Farbe Warten$ = INPUT$(1) COLOR 7 |