FreeBasic: Standard Grafikbefehle in FB

Dieses Kapitel zeigt dir, wie einige der Grafikbefehle in FreeBASIC funktionieren und was man alles damit machen kann. Bevor du hiermit anfängst, solltest du das Grundlagen-Kapitel gelesen haben.

Das GrafikfensterBearbeiten

Bisher hast du wahrscheinlich nur im Screen 0 gearbeitet; das ist der Textscreen von FreeBASIC. In ihm lassen sich keine echten Grafiken, sondern eben nur, wie der Name schon sagt, ASCII-Textzeichen darstellen. Deshalb musst du am Anfang deines Programmes in einen anderen Screen "wechseln". Dazu schreibst du:

'Grafikscreens
screen 12
print "Das Grafiktutorial"
sleep

Mit dem "Screen 12"-Befehl geht FreeBasic in den Bildmodus Nr. 12. Hier kann man Grafiken von maximal 640x480er Pixelgröße darstellen. Probiere verschiedene Screens aus (einfach anstatt 12 z.B. 18 schreiben). Für mehr Informationen siehe Screen.

Das KoordinatensystemBearbeiten

In den Grafikscreens hat jeder Punkt eine Koordinate, X, Y (Kommt auch in der Schule vor ;)). X ist der Rechtswert, also je größer X ist, desto weiter gehts nach rechts. Y ist der Hochwert, also je größer Y ist, desto weiter gehts nach unten. 0, 0 ist hier also der erste Punkt links oben in der Ecke.

PunkteBearbeiten

Mit Pset kann man ein beliebiges Pixel "färben".

screen 17,32
pset (50,50), rgb(255,0,0)
sleep

Wen ihr nun auf die kompilierte .exe klickt, öffnen sich zwei Fenster. Das Fenster im Hintergrund ist die Konsole. Im zweiten Fenster könnt ihr oben links einen kleinen roten Punkt erkennen.

LineBearbeiten

Line ist der zweite Grafikbefehl den du in diesem Kapitel kennen lernst. Mit Line lassen sich Linien zeichnen.

screen 17,32
line (50,50)-(200,50), rgb(255,0,0)
sleep

Da es zu "aufwändig" wäre zum Beispiel ein Rechteck A,B,C,D mit 4 Line Befehlen zu zeichnen, kann man auch einfach folgendes schreiben:

screen 17, 32
line (100,100)-(300,200), rgb(255,0,0), b
sleep

Das so entstandene Rechteck kann auch farbig ausgefüllt werden; das geht entweder mit Paint (siehe unten) oder so:

screen 17,32
line (100,100)-(300,200), rgb(255,0,0), bf
sleep

KreiseBearbeiten

Wie der Name schon vermuten lässt, kann man mit Circle verschiedene Kreise zeichnen. Aber ein Quellcode sagt mehr als tausend Worte, deshalb kopiert folgendes in euren Editor:

screen 17,32
circle (150,150),50,rgb(255,0,0)
sleep

Die Parameter in der Klammer geben den Mittelpunkt des Kreises an, der dritte Parameter gibt den Radius an und der vierte Parameter wie immer die Farbe. Ändert man Circle um in

circle (150,150),50,rgb(255,0,0),,,,f

wird der Kreis auch ausgemalt. Je nach Auflösung eures Bildschirms werdet ihr in bestimmten Fenstermodi (unter anderem 17) den Kreis als Oval sehen. Um das zu verhindern müsst ihr das Verhältnis zwischen Breite und Höhe des Kreises mit angeben. Dies geht so wenn ihr einen perfekten Kreis wollt:

circle (150,150),50,rgb(255,0,0),,,1,f

Im allgemeinen wollt ihr einen Kreis perfekt also 1. Wenn ihr die Breite doppelt so lang haben wollt wie die Höhe müsst ihr also 0.5 eintragen. So könnt ihr Ellipsen zeichnen. Die beiden Parameter die hier ausgelassen werden sind Start- und Endwinkel. Sie werden als Bogenmaß angegeben. Mehr zum Bogenmaß erfährst du im Kapitel Mathematik.

PaintBearbeiten

Mit Paint lässt sich ein Bereich (zum Beispiel ein Kreis) "ausmalen".

screen 17,32
circle (150,150),50, rgb(255,0,0),,,1
paint (151,151), rgb(0,255,0), rgb(255,0,0)
sleep

Ihr solltet einen Kreis zu sehen bekommen, der grün ausgemalt ist. Der Paint Befehl ist zwar praktisch, aber ihr solltet ihn vermeiden da er sehr viel Rechenzeit in Anspruch nimmt. Die erste Farbe ist die Farbe in der ausgemalt werden soll, die zweite Farbe die, die als Grenze gelten soll.