Geschrieben von ttobsen am 08.09.2004, 03:42

Hi Leute

Willkommen zu meinem 6ten Tutorial.

Heute mal was mit Basic. Also folgendes Problem:

wir haben ne nette Funktionsgleichung. Nehmen wir mal f(x)=X² (immer schön mit was Einfachem anfangen). Unser Grafikfähiger Taschenrechner hat den Geist aufgegeben, aber wir müssen wissen wie die Funktion ausschaut. Zum glück hat BASIC ein paar mega einfache Befehlssätze um das Problem zu lösen. Ich poste hier jetzt mal den kompletten Quellcode rein und danach erläutere ich jede Zeile. Also:

DIM koordinaten(500)

FOR x = 0 TO 50 STEP .1
tabelle(x * 10) = x ^ 2
NEXT

SCREEN 12

REM koordinatensystem

LINE (0, 200)-(640, 200)
LINE (320, 0)-(320, 400)

FOR i = 0 TO 640 STEP 10
LINE (i, 195)-(i, 205)
NEXT

FOR i = 0 TO 400 STEP 10
LINE (315, i)-(325, i)
NEXT

REM Funktion

LINE (320, 200)-(320, 200)

FOR x = 0 TO 500
LINE -(320 + x, 200 - koordinaten(x) * 10), 10
NEXT

So sieht das ganze aus und jetzt kommt die Erläuterung.

Zeile 1 generiert ein Array. Ein 1Dimensionales reicht dabei aus! Funktionen werden in der Mathematik folgendermaßen Dargestellt: f(x)=....
So ist das ganze hier auch aufgebaut. f (also der Funktionswert an der stelle x) erhält einen Wert und die Zahl in Klammer sind unsere Wertbereiche. Je größer der Bereich gewählt ist desto genauer ist unsere Grafik nacher (das heißt aber nicht das man übertreiben darf!)

Zeile 3 ist eine Schleife welche unserem Array die Werte der Funktion zuweist. In Zeile 4 sehen wir die Rechenvorschrift für das x. Wir Quadrieren X (in BASIC X ^ 2). Jetzt ist die Schleife ja von 0 bis 50, dafür mit einem Step von 0.1 versehen. 50 * 1/0,1 macht 500 (unsere Anzahl der Werte). Dies ist deshalb so gewählt damit der Zahlenbereich nicht riesen Groß wird (sonst wäre der letzte Wert ja 50²!!!). So gehen unsere Koordinaten bis 5^2 dafür im 0,1er Schritt, was bei einer Bildschirmauflösung von 640x480 (wir nutzen aber nr 640x400!) voll ausreicht.

Zeile 8 ist die Screen Anweisung. Screen 12 sorgt für eine Auflösung von 640x480 und allen Farben die man in BASIC darstellen kann.

Zeile 11 hat nichts mit dem Programm zu tun. Es ist nur ein Kommentar das aussagt das jetzt dann das Koordinaten System gezeichnet wird.

Zeile 13 zeichnet die X-Achse, Zeile 14 die Y-Achse

Zeile 16 bis Zeile 18 zeichnen die Markierungen auf der X-Achse und
Zeile 19 bis Zeile 21 zeichnen die Markierungen auf der Y-Achse

Zeile 24 ist wieder ein kommentar das aussagt, das jetzt die Funktion gezeichnet wird.

Zeile 27 zeichnet einen Punkt im Koordinaten Ursprung, wieso erfahrt ihr gleich!

In Zeile 29 fängt die nächste Schleife an. Diese zeichnet dann die Funktion wie in Zeile 30 beschrieben. Nehmen wir mal Zeile 30 auseinander:

LINE - (320 + x, 200 - koordinaten(x) * 10), 10

LINE ist der Befehl um eine Linie zu Zeichnen. Normal sieht der Befehl so aus: LINE (x1, y1)-(x2,y2)
Wir haben in unserem Beispiel Programm die erste Klammer weggelassen. Das bedeutet die Linie erhält als Startpunkt den letzten Punkt. Daher mussten wir am Anfang auch den einzelnen Punkt zeichnen! Und die letzte Info ist, das das *10 hinter koordinaten(x) sein muß, damit das Koordinatensystem die richtige Steigung hat. Sonst wäre das ganze um den Faktor 10 zu Flach!

Soviel das wars zum Zeichnen von Funnktionen mit QBASIC. Es ist so einfach, man glaubt es nicht! Wer fragen hat, oder das Programm nochmal benötigt, soll mir bitte ne PN schreiben.

Bis zu meinem nächsten Tut.

Gruß Tobi :D

Bewertung Anzahl
6
66,7 %
4 Bewertungen
4
16,7 %
1 Bewertungen
3
16,7 %
1 Bewertungen