3D-Funktionenplot

Software-Entwicklung, Compiler, Interpreter, ...
Antworten
Benutzeravatar
bbock
Beiträge: 242
Registriert: 08.02.2015, 15:31

3D-Funktionenplot

Beitrag von bbock »

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):

3DPLOT_BASIC.zip
3DPLOT.BAS und 3DPLOTA.BAS
(3.01 KiB) 432-mal heruntergeladen

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).
Benutzeravatar
bbock
Beiträge: 242
Registriert: 08.02.2015, 15:31

Re: 3D-Funktionenplot

Beitrag von bbock »

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

z=sin(sqr(u*u+v*v))
z=sin(sqr(u*u+v*v))
function1.png (25.33 KiB) 5554 mal betrachtet
Benutzeravatar
bbock
Beiträge: 242
Registriert: 08.02.2015, 15:31

Re: 3D-Funktionenplot

Beitrag von bbock »

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

z=sin(u*u+v*v)
z=sin(u*u+v*v)
function2.png (65.48 KiB) 5553 mal betrachtet
Benutzeravatar
bbock
Beiträge: 242
Registriert: 08.02.2015, 15:31

Re: 3D-Funktionenplot

Beitrag von bbock »

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:

3DPLOT10_src.zip
Quellcode von 3DPLOT V1.0
(5.66 KiB) 482-mal heruntergeladen
3DPLOT10_com.zip
Ausführbares Programm 3DPLOT V1.0
(8.88 KiB) 520-mal heruntergeladen
Antworten