Wpis z mikrobloga

3-wymiarową przestrzeń chyba każdy zna i jako-tako ogarnia. Mało kto jednak ogarnia 4- i więcej wymiarowe przestrzenie. #matematyka sobie z tym radzi bez większych problemów, ale czy ktoś kiedyś widział 4-wymiarowy obiekt...? No, to teraz macie szansę ;)

Stworzyłem już dosyć dawno (a parę dni temu wskrzesiłem) projekt, w którym można pozwiedzać 4-wymiarowy świat. Ten projekt to 4-wymiarowy labirynt. Chodzi w nim o to, aby przejść przez zestaw tuneli i dotrzeć do niebieskiego hipersześcianu.

Więcej szczegółów pod linkiem. Opisałem projekt też trochę od strony technicznej: tutaj. Wskrzeszony program jest napisany w #rustlang

Miłej zabawy ;) Uwaga: nie spodziewajcie się fajerwerków graficznych - główna idea to rycie bani przez zmuszanie do ogarnięcia poruszania się w 4-wymiarowej przestrzeni, więc całość jest bardzo prosta i raczej na poziomie proof-of-concept, niż prawdziwej gry.

#programowanie #gry #nauka
  • 52
@blekitny_orzel jakiego rodzaju wzory? Większość rozszerza się dość intuicyjnie. Np. długość odcinka: d^2 = dx^2 + dy^2 + dz^2 + dw^2 (czwartą współrzędną oznaczam w), iloczyn skalarny wektorów: u * v = ux * vx + uy * vy + uz * vz + uw * vw itp.
@zima65 Windows czy jakiś antywirus? Wiem, że Avast przy pierwszym uruchomieniu zgłaszał, że nie wie co to ma być i żeby to przekazać do ich laboratorium, to przeanalizują :p Po analizie doszli do wniosku, że jest ok.
@fizyk20:

Compiling 4d-labyrinth v0.1.0 (file:///Users/user/Desktop/rust-projects/4d-labyrinth/4d-labyrinth)
error[E0554]: #[feature] may not be used on the stable release channel
--> src/main.rs:1:1
|
1 | #![feature(conservative_impl_trait)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

error: Could not compile '4d-labyrinth'.

no i niestety :) nie chcę mi się kompilować rust-nightly w tym momencie, ale może wieczorkiem :)
@deryt Mogę pokombinować z myszką, tylko trzeba pamiętać, że w 4D jest 10 stopni swobody (z których obsługuję 9).

Co do tekstur, problem jest taki, że obiekty płaskie w 4D są 3D, zatem tekstury musiałyby być... objętościowe. Nie wiem za bardzo, jak to sensownie zrobić ;) Chyba żeby spróbować z jakimś szumem perlinowskim, hmm...