Labirynt 4D jest programem umożliwiającym poruszanie się po 4-wymiarowym labiryncie. Prawdopodobnie w tym miejscu już tracę część czytelników, więc może zacznę od wyjaśnienia co właściwie znaczy "4-wymiarowy" ;)
4 wymiary
Zacznijmy od tego, że w tym programie czwartym wymiarem nie jest czas. Rzeczywiście teoria względności opisuje świat jako 4-wymiarową czasoprzestrzeń, ale tu chodzi o 4-wymiarową przestrzeń (bez "czaso-").
Na czym zatem polega 4-wymiarowość przestrzeni? W dużym skrócie, na tym, że istnieją w niej 4 wzajemnie prostopadłe kierunki, a każdy punkt wymaga podania 4 liczb (współrzędnych), aby jednoznacznie określić jego położenie.
Żeby trochę lepiej zwizualizować sobie, na czym to polega, rozważmy punkt. Punkt jest obiektem 0-wymiarowym. Nie ma tu żadnych kierunków, a gdy stanowi on całą dostępną przestrzeń, nie trzeba też podawać żadnych liczb, by określić położenie (bo jest i tak tylko jedna możliwość).
Wyobraźmy sobie teraz, że rozciągamy ten punkt, otrzymując prostą. Tu mamy już 1 wymiar - jest jeden kierunek, a wszystkie punkty na prostej możemy ponumerować liczbami rzeczywistymi (jak oś liczbową) i wtedy podanie jednej liczby jednoznacznie określi, o który punkt nam chodzi.
Jedziemy dalej. Rozciągamy prostą w kierunku prostopadłym do niej, otrzymując płaszczyznę. Możemy sobie wyobrazić, że płaszczyzna składa się z nieskończenie wielu ponumerowanych prostych, z których każda ma ponumerowane punkty. Możemy więc określić położenie podając 2 liczby (numer prostej i numer punktu na niej), co oznacza, że płaszczyzna jest 2-wymiarowa.
Kolejne rozciągnięcie, kolejny wymiar. Z nieskończenie wielu ponumerowanych płaszczyzn możemy poskładać przestrzeń, w której określenie położenia będzie wymagało 3 liczb (numer płaszczyzny, numer prostej na płaszczyźnie, numer punktu na prostej). W takiej przestrzeni żyjemy i z nią jesteśmy najbardziej obeznani.
Ale kto każe nam się tu zatrzymać? Nie zatrzymujmy się więc i rozciągajmy dalej. Weźmy nieskończenie wiele 3-wymiarowych przestrzeni i poskładajmy z nich... coś. Tu już wyobraźnia niestety zawodzi, nasze mózgi nie są przystosowane do radzenia sobie z takimi rzeczami. Matematyka jednak nie ma z tym problemu - nic nie stoi na przeszkodzie, by dopisać czwartą liczbę i traktować ją jako numer 3-wymiarowej przestrzeni (bardziej fachowo: hiperpłaszczyzny) w tym "czymś".
Na obrazku po prawej stronie przestawione jest takie rozciąganie w kolejnych kierunkach, z tym że skończone - tzn. nie mamy prostej, tylko odcinek, kwadrat zamiast płaszczyzny itp. 4-wymiarowy odpowiednik sześcianu nazywany jest hipersześcianem albo tesseraktem. Obrazek sięga nawet dalej i przedstawia również rezultat rozciągnięcia tesseraktu w piątym kierunku. Oczywiście obrazek sam w sobie jest płaski, więc wyobrażenie nie jest idealne - w rzeczywistości wszystkie krawędzie spotykające się w jednym wierzchołku powinny być do siebie prostopadłe.
Program
Nie da się ukryć faktu, że ekran komputera jest tylko 2-wymiarowy. Jak zatem przedstawić na nim 4-wymiarowe obiekty? Istnieją dwa główne sposoby "zmniejszania wymiarowości" obiektów.
Pierwszy to rzutowanie. Rzutować można na wiele sposobów, ale najczęściej wykorzystywane są dwa - rzutowanie prostopadłe oraz rzutowanie perspektywiczne. Oba są przedstawione na obrazku poniżej.
Tutaj mamy pokazane rzutowanie obiektów 3-wymiarowych, ale to samo można zrobić z 4-wymiarowymi. Jedyna modyfikacja jest taka, że trzeba wtedy rzutować dwa razy - pierwszy raz na 3-wymiarową przestrzeń, która następnie zostanie narysowana na ekranie dzięki drugiemu rzutowaniu.
Drugi sposób to rysowanie przekrojów (ilustracja po prawej). Każdy wielowymiarowy obiekt można "przeciąć" mniej wymiarową hiperpłaszczyzną i otrzymać w ten sposób figurę o niższym wymiarze. Tu poważną wadą jest to, że przekrój wprost pomija dużą część obiektu - nie wiemy absolutnie nic o tym, co dzieje się poza wybraną hiperpłaszczyzną. Tym niemniej, ten właśnie sposób jest zastosowany w Labiryncie 4D.
Gracz w każdym momencie widzi jedynie 3-wymiarowy przekrój całej przestrzeni, który następnie jest rzutowany perspektywicznie na ekran. Poruszanie się jest możliwe wyłącznie w tym przekroju, lecz sam przekrój może być obracany. Gdybyśmy zastosowali ten sposób do grafiki 3D, gracz mógłby np. w pewnym momencie widzieć jedynie przedstawiony wyżej sześciokąt. Poruszanie się pozwalałoby mu wyłącznie na zbliżanie się, oddalanie lub okrążanie sześciokąta. Możliwe jednak byłoby również obracanie płaszczyzny przekroju, które mogłoby sześciokąt zmienić w pięciokąt, prostokąt, kwadrat, trójkąt...
Skoro już to wyjaśniliśmy, przedstawmy sterowanie w programie:
- W/S/A/D/Q/E - ruch w przód/tył/lewo/prawo/górę/dół
- T/G - pochylanie widoku w przód/tył
- F/H - przechylanie widoku lewo/prawo
- R/Y - obracanie widoku lewo/prawo
- U/J - obracanie hiperpłaszczyzny przekroju tak, że rzeczy z przodu i tyłu zamieniają się z niewidocznymi (przesuniętymi względem gracza w 4 wymiarze)
- C/V - obracanie hiperpłaszczyzny zamieniające boki z niewidocznym
- B/N - obracanie hiperpłaszczyzny zamieniające górę i dół z niewidocznym
Gracz reprezentowany jest przez żółty sześcian. Celem jest dotarcie do niebieskiego tesseraktu.
Aktualnie w programie dostępne są dwa poziomy. Pierwszy składa się z 4 tuneli, poprowadzonych wzdłuż 4 osi współrzędnych. To powoduje, że jeden z nich jest z początku niewidoczny i aby go przejść, potrzebny jest obrót hiperpłaszczyzny. Drugi poziom jest bardziej złożony ;)
Dotknięcie niebieskiego celu automatycznie przełącza poziom na następny lub kończy program.
Pobieranie
Pobierz “4D Labyrinth - Windows” 4d-labyrinth-win32.zip – Pobrano 2177 razy – 1,67 MB
Pobierz “4D Labyrinth - Linux” 4d-labyrinth-linux64.zip – Pobrano 1364 razy – 854,51 KB
Pobierz “4D Labyrinth - Mac OS” 4d-labyrinth-release-macos.zip – Pobrano 1223 razy – 619,69 KB