Angeregt durch einen Artikel im Joyce-Sonderheft 2'87 habe ich mich mal wieder mit dem Thema 3D-Funktionen befasst - und wie man damit schöne Grafiken auf den Bildschirm unseres Lieblingscomputers zaubern können.
Das Originalprogramm von Christoph Reimann aus Aachen ist in Mallard Basic geschrieben und nutzt die GSX-Bibliothek. Damit diese unter Mallard Basic zur Verfügung steht, muss eine Diskette entsprechend vorbereitet werden, d.h. BASIC.COM muss mit GENGRAF.COM erweitert werden und man benötigt weitere Systemdateien (ASSIGN.SYS, DDFXHR8.PRL, DDFXLR8.PRL, DDSCREEN.PRL und GSX.SYS).
Hier ist die Basic-Datei, einmal im Mallard-Basic-Format (3DPLOT.BAS) und einmal im ASCII-Format (3DPLOTA.BAS):
Nach dem Booten der Diskette A startet man Mallard Basic durch Eingabe von basic. Dann lädt man das Programm mit LOAD "3DPLOT" und startet mit RUN. Das Hauptmenü erscheint und man kann die Funktion editieren, plotten und das Programm beenden. Das Editieren öffnet die Zeile 170 mit der Funktion im Basic-Editor; wenn man sie angepasst hat, muss man das Programm mit RUN neu starten, dann kann man die geänderte Funktion mit dem Menüpunkt 2 plotten. Dazu muss man einige Parameter eingeben; es folgen zwei Beispiel-Funktionen mit den dazu passenden Parametern.
Anm.: Als Variablen der Funktion sind u, v, z zu verwenden (nicht x, y, z).
3D-Funktionenplot
Re: 3D-Funktionenplot
Funktion 1: z=sin(sqr(u*u+v*v))
x-min: -5
x-max: 5
y-min: -5
y-max: 5
Anzahl Schritte: 30
z-Streckung: 3000
Vergrößerung: 1
x-min: -5
x-max: 5
y-min: -5
y-max: 5
Anzahl Schritte: 30
z-Streckung: 3000
Vergrößerung: 1
Re: 3D-Funktionenplot
Funktion 2: z=sin(u*u+v*v)
x-min: -3
x-max: 3
y-min: -3
y-max: 3
Anzahl Schritte: 40
z-Streckung: 3000
Vergrößerung: 1
x-min: -3
x-max: 3
y-min: -3
y-max: 3
Anzahl Schritte: 40
z-Streckung: 3000
Vergrößerung: 1
Re: 3D-Funktionenplot
Das geht natürlich auch schneller, und zwar ohne GSX und mit TurboPascal statt Mallard Basic. Ich habe das Basic-Programm portiert; hier ist das Ergebnis: