Strona główna Informacje Kontakt

archeologia informatyczna, listingi w basicu
Wydarzenia Gry Listingi Komputery Książki
3 kwietnia 2015 r.
Trójwymiarowe wykresy w basicu na ZX Spectrum

W październikowym numerze "Bajtka" z 1986 r. pojawił się listing programu, rysującego przestrzenne wykresy funkcji dwóch zmiennych. Program został napisany w języku basic z możliwością sterowania wszystkimi parametrami przez użytkownika.

Listing programu jest dość krótki, co widać na poniższym skanie. Część rysująca wykres jest jeszcze krótsza, bo zajmuje tylko jedną trzecią programu (trzynaście linii od nr 210 do 320). Pozostała część to instrukcje odpowiedzialne za wprowadzanie i wyświetlanie danych oraz rysowanie osi wykresu.

Listing programu, Bajtek nr 10/1986

Po uruchomieniu programu proszeni jesteśmy o wprowadzenie wzoru funkcji, zakresu zmiennych x, y, z oraz dziedziny funkcji. Wszystkie wprowadzone dane należy zatwierdzić enterem. Po podaniu wszystkich informacji program przystąpi do rysowania wykresu.

Mimo że część programu rysująca wykres zajmuje tylko 13 linii, udało się w niej zmieścić kilka ciekawych rzeczy. Jedną z nich jest automatyczne obcinanie wykresu, jeśli funkcja wykracza poza zakres zmiennych. Drugą, bardziej zaawansowaną techniką, jest eliminacja zasłoniętych linii, czyli unikanie rysowania tych punktów, które są przesłonięte częścią wykresu, leżącą bliżej "obiektywu".

Poniżej można obejrzeć działanie programu dla trzech prostych funkcji. Osoby z matematyczną wyobraźnią zauważą, że są one trójwymiarowym rozwinięciem podstawowych szkolnych wykresów, tradycyjnie rysowanych na jednej płaszczyźnie.

Pierwszy z nich to wykres funkcji f(x,y) = x2 + y2, będący wariacją na temat funkcji kwadratowej y=x2.

Wykres funkcji: f(x,y) = x2 + y2

Drugi wykres to sinusoidalna "flaga" w trójwymiarze. Instrukcja ABS służy do obliczania wartości bezwzględnej (pominięcie znaku minus). Dodatkowa informacja: niezależnie czy zastosujemy funkcję sinus czy cosinus, wykres będzie wyglądał dokładnie tak samo.

Wykres funkcji: f(x,y) = cos abs (x*y)

Trzeci wykres to nałożenie na siebie dwóch funkcji sinus, w którym góry i doliny występują w przeciwfazie.

Wykres funkcji: f(x,y) = sin(x) * sin(y)

Program ma niepodważalne zalety edukacyjne. Pozwala na bezpośredni kontakt z matematyką i eksperymentowanie z funkcjami. Wzory, oprócz funkcji trygonometrycznych, można tworzyć na bazie innych instrukcji, takich jak na przykład logarytmy. Wszystko zamknięte w krótkim programie w języku basic dla komputera ZX Spectrum.

Autor tekstu: Mr.Wolf - użytkownik komputera ZX Spectrum od 1986 r., kolejne komputery: Atari 65XE, Commodore 64 i Amiga 500.
Komentarze:
zxfan2015-06-27 23:17
Pamiętam ten program z Bajtka. Pamiętam też że coś z nim było nie tak i trzeci wykres wyrzucał błędy. Ciekawe jak szanownemu redaktorowi udało się zmusić go do działania. Pewnie reverse engineering. :-)

Dodaj komentarz:

Podpis: (wymagane)
Adres Twojej strony WWW: (opcjonalnie)
Twój adres e-mail: (opcjonalnie - tylko do wiadomości redakcji)
Treść komentarza:
Antyspam: policz ile
wynosi jeden plus dwa:
(wymagane)







Dzień, w którym pojawił się pierwszy komputer
Relacja ze Speccy.pl Party 2015.1 w Warszawie
Stare helikoptery jak Atari, nowe jak IBM PC
Warsaw Basic
Muzyka z gry International Karate a cappella

Fred - świetna gra zręcznościowa z 1984 roku
Strike Force Cobra
Zybex - szybka i kolorowa gra shoot'em up
Deathchase - pościg w lesie inspirowany Powrotem Jedi
Jumping Jack - klasyk wśród gier zręcznościowych

Trójwymiarowe wykresy w basicu na ZX Spectrum
Jednolinijkowy generator labiryntu w języku BASIC

ZX Spectrum - komputer z prawdziwego zdarzenia
Elwro 800 Junior - polski komputer edukacyjny

Grafika komputerowa
1000 słów o komputerach i informatyce