02-01-2015
W czasach kiedy byłem w technikum pisaliśmy razem z moim ojcem programy do wspomagania nauczania fizyki. Jeden z tych programów dotyczył składania drgań prostych harmonicznych. Szczególnym i dość widowiskowym przypadkiem składania drgań jest składanie ich w dwóch osiach X oraz Y. W wyniku takiego złożenia powstają na ekranie pewne magiczne krzywe zwane krzywymi Lissajous. Krzywe te mają niezliczoną ilość postaci uzależnioną od amplitudy, częstotliwości oraz przesunięcia fazowego składanych drgań. Ten widowiskowy efekt od zarania dziejów wykorzystywany był w różnego rodzaju filmach Science Fiction poprzez prezentację ich na ekranie oscyloskopu, co dodawało scenografii futurystycznego wyglądu. Krzywa na ekranie oscyloskopu nie dość, że ma złożony kształt to na dodatek często wydaje się obracać w przestrzeni.
Nadszedł czas kiedy to poszukiwało się coraz to nowszych pomysłów do demek.
Przyznam szczerze, że pisanie demek nie specjalnie mnie bawiło ale przyszło mi do głowy, że przecież mogę zrobić pewien symulator składający drgania wzdłuż osi X i Y w czasie rzeczywistym, co powinno dać efekt podobny do tych jakie uzyskiwaliśmy w szkole na oscyloskopie. Żeby było jeszcze ciekawiej to na każdą z osi podałem dwa przebiegi sinusoidalne, które uprzednio zsumuję. Obmyśliłem sobie teoretycznie mechanizm jak można to zrealizować i zabrałem się do roboty. Przyznam, że sam do końca nie wiedziałem jaki będzie tego efekt. Celem moim było zrobienie symulatora / edytora aby każdy mógł się tym swobodnie pobawić i uzyskiwać różne cuda.
I stworzyłem dnia pewnego program Sinstar i zobaczyłem, że to było dobre.
Jak to działa? Nie wiem czy jestem w stanie to jasno wytłumaczyć.
To co widać na ekranie jest wynikiem złożenia dwóch drgań sinusoidalnych w osi X oraz dwóch drgań sinusoidalnych w osi Y.
Dla każdego sinusa mamy po jednym nazwijmy to wskaźniku. Wskaźnik wskazuje, w którym miejscu sinusa się aktualnie znajdujemy.
W edytorze mamy dla każdego z sinusów 3 funkcje:
SPD - jest to prędkość przemieszczania się wskaźnika po sinusie, co ramkę o tę wartość wskaźnik przesuwany jest po tablicy sinusa
ADC - oznacza jaką wartość dodać do wskaźnika elementu tablicy aby pobrać wartość do obliczenia kolejnego z 40 punktów
PHS - służy do ręcznego korygowania położenia wskaźnika tablicy a jednocześnie pokazuje aktualne położenie wskaźnika
Ponadto mamy opcje dodatkowe:
R - resetuje wszystkie położenia wskaźników oraz parametry ich przemieszczania po tablicy
F - zamraża przemieszczanie się wskaźników po tablicy, wówczas można np. precyzyjnie skorygować ich fazę czyli położenie
S - nagrywa utworzone dzieło na dyskietkę w postaci gotowego pliku do wykorzystania uruchamianego komendą SYS 49152. Łatwo w kodzie znaleźć miejsce gdzie można podłożyć jakiś player muzyczki bo są tam instrukcje NOP
L - ładuje z dyskietki utworzone wcześniej dzieło do edytora
Całość pracuje i wykonuje obliczenia w czasie rzeczywistym co 1 ramkę.
Przyznam, że do dziś krzywe i animacje jakie można uzyskać potrafią mnie zaskoczyć.
Wszystkim miłośnikom programów symulacyjnych życzę miłej zabawy.
Jemasoft / QUARTET