Wizualizacja wielu wymiarów

Zastanawiałem się kiedyś nad sposobem na wizualizację przestrzeni o ilości wymiarów większej niż 3. Doszedłem do wniosku, że warto jest na początek przeanalizować jak 2D powstaje z 1D i później jak z 2D powstaje 3D.

Jednak przed rozpoczęciem takich rozmyślań warto zwrócić uwagę na fakt że przestrzeń jednowymiarowa składa się z punktów. Jest to dość kluczowe spostrzeżenie w moim rozumowaniu 😉

No więc jak powstaje 2D z 1D?  Mamy sobie jedną oś i krzyżujemy ją z drugą osią pod kątem prostym. Czyli współrzędnej x, która w jednym wymiarze określała konkretnie punkt, teraz odpowiada nieskończenie wiele punktów. Z tego też powodu dodaje się drugą współrzędną określającą „głębokość”.

Teraz 2D -> 3D. Dodajemy Jeszcze jedną oś pod kątem prostym i otrzymujemy znów mamy problem ponieważ współrzędnym x, y znów odpowiada nieskończenie wiele punktów. Mamy więc już 3 współrzędne: x, y, z

Ok, i co teraz? Przestrzeń 3D to max jaki potrafimy sobie wyobrazić (tak samo jak punkt na prostej nie potrafi sobie wyobrazić 2D, a dla punktu na płaszczyźnie niepojęta jest przestrzeń 3D). Doszliśmy więc do punktu krytycznego ponieważ nie możemy już dołożyć sobie żadnej osi prostopadłej.

Ale mówiłem wcześniej coś o tym, że współrzędnym z przestrzeni o 1 wymiar mniejszej odpowiada nieskończona ilość punktów. Trzeba więc iść tym tropem. A gdyby tak przyjąć, że przestrzeń jest punktem?

Z punktów najłatwiej zbudować prostą, ale jeśli punktem jest przestrzeń to można powiedzieć, że mamy prostą przestrzeni ^^. Po dołożeniu jeszcze jednej zmiennej – określającej położenie danego punktu (przestrzeni) na tej prostej można sobie. Dodawanie jej na końcu byłoby dość nieintuicyjne. Nazwijmy ją w. Mamy więc już 4 współrzędne: w, x, y, z. Współrzędna w określa połozenie przestrzeni na prostej (wtf?! :P), a pozostałe współrzędne określają w znany już sposób położenie punktu w przestrzeni 3D.

Najtrudniejsze już właściwie za nami. Jest jakiś sposób. Jak dodamy jeszcze jeden wymiar to będziemy mieli do czynienia z płaszczyzną punktów, z których każdy jest jakąś przestrzenią. Po jeszcze jednym wymiarze mamy przestrzeń nieskończonej ilości przestrzeni.

Później można postąpić analogicznie jak poprzednio – przyjąć że przestrzeń 6 wymiarowa jest punktem i stworzyć z nich prostą i mamy już 7 wymiarów.

Czyli dla n wymiarów (przy założeniu że n>3) będziemy początkowo musieli pokazać

  • prostą przestrzeni, jeżeli n mod 3 = 1
  • płaszczyznę przestrzeni, jeżeli n mod 3 = 2
  • przestrzeń przestrzeni, jeżeli n mod 3 = 0

Oczywiście, nic nie stoi na przeszkodzie aby już płaszczyznę uznać za punkt i stworzyć prostą z punktów będących płaszczyznami, a później płaszczyznę z płaszczyzn.  Takie podejście jest bardziej „życiowe” dla użytkowników oprogramowania ponieważ dość łatwo jest wybrać myszką konkretny punkt na ekranie.

Czyli zakładając że użytkownik ma podać współrzędne punktu w 5 wymiarach, na początku wyświetlimy mu prostą. Po tym jak sobie kliknie współrzędną x1 należy mu wyświetlić płaszczyznę odpowiadającą współrzędnej x1 na prostej. Kiedy użytkownik znów wybierze sobie punkt (tym razem już na płaszczyźnie) mamy mamy współrzędne x1, x2, x3 tak więc znów trzeba wyświetlić jakąś płaszczyznę z której użytkownik wybiera sobie 2 współrzędne i tym oto sposobem mamy już 5 zmiennych oddających położenie w przestrzeni 5 wymiarowej.

Oczywiście zdaję sobie sprawę, że to i tak się nikomu do niczego nie przyda ( bo niby dlaczego ktoś miałby wybierać współrzędne punktu z 5 wymiarów!?! ) ale jest to jakiś sposób lepszy lub gorszy na przedstawienie wielu wymiarów w sposób dość przyjazny dla człowieka 🙂

17 komentarzy do “Wizualizacja wielu wymiarów

  1. Fajne to to 🙂
    Co prawda ja mówiłem bardziej ogólnie o tym jak można zaprezentować dowolną przestrzeń, a tam koleś pokazał jak wygląda teoretycznie dziesięciowymiarowa przestrzeń w której żyjemy 🙂

  2. Spoko notka 🙂

    Dalej czas się zastanowić, jak narysować scenę 4D na ekranie. To też można wymyślić przez analogię do rysowania sceny 3D na ekranie, który jest przecież płaski. Kluczem do tego byłoby odpowiednie rzutowanie – ortogonalne albo jeszcze lepiej perspektywiczne.

    Ciekawe, jak wyglądałaby na ekranie pokazana w rzucie perspektywicznym scena 4D 🙂

  3. Idąc tym tokiem rozumowania można by powiedzieć, że przedstawienie 4D na płaszczyźnie ekranu (2D) jest co najmniej tak samo trudne jak przedstawienie 3D w przestrzeni jednowymiarowej (1D), czyli z naszego punktu widzenia wręcz niemożliwe.

    Na internecie można znaleźć całą masę płaskich ilustracji, które starają się przybliżyć wygląd czterowymiarowych figur geometrycznych, ale to tylko przybliżenia pomagające zrozumieć przestrzeń 4D.

    Szukałbym raczej przedstawienia 4D w 3D np. na jakimś przestrzennym hologramie 😀 Można sobie wyobrazić obiekt 3D zmieniający się w czasie (każda chwila będąca przekrojem 4D bryły), trochę jak dwuwymiarowy przekrój przez bryłę 3D zmieniający się w czasie na ekranie współczesnych tomografów komputerowych 😛

    Polecam zabawę w układanie czterowymiarowej kostki rubika na ekranie komputera (w googlach da się znaleźć). Świetny przykład prezentacji 4D w wirtualnej przestrzeni 3D na ekranie 2D ;), czyli jak pomóc sobie zmiennością przestrzeni w czasie (kolejnym wymiarem) do zaprezentowania 4D w 2D.

    Ogromne pole popisu dla teoretyków 😉

  4. @tolas: rozumiem ze to uzupelnienie mojego posta, bo jesli to wnioski to by znaczylo ze nic nie zrozumiales, bo chodzilo mi o cos zupelnie innego 😛

  5. Witaj, wlasnie przeczytalem sobie Twoj wpis na temat wizualizacji wielu wymiarow.
    Ostatnio zajmuje sie troche sieciami neuronowymi, dokladnie mowiac jestem w trakcie pisania calkiem ambitnego programu ktory je implementuje dla sporzadzania prognoz.
    Juz minelo troche czasu od momentu w ktorym ukazal sie twoj wpis, ale mam nadzieje ze pamietasz jeszcze odrobine swoje wnioski.
    Otoz jednym z elementow mojego programu bedzie wizualizacja wielowymiarowych dziedzin wag, ktora chcialbym prezentowac jako plaszczyzne.
    Generalnie chodzi o to ze przy pomyslach transformacji n-wymiarowej przestrzeni na 2-wymiarowa, ktore do tej pory przychodzily mi do glowy pojawia sie mimo wszystko klopotliwe nakladanie sie punktow o roznych wspolrzednych wielowymiarowych w tym samym miejsu plaszczyzny.
    Jest to o tyle klopotliwe, ze przeciwdzina podstawowego mechanizmu sieci neuronowych czyli blad srednio kwadratowy mimo iz jest jednowymiarowa moze przyjmowac dla punktu na plaszczyznie (odwzorowywujacego kilka roznych punktow przestrzeni n-wymiarowej) kilka roznych wartosci sprawiajac iz graficzna postac odwzorowania dziedziny(przestrzen n-wymiarowa) na przeciwdziedzine (przestrzen 1-wymiarowa) przyjmuje postac kostki szwajcarskiego sera.

    Mam zatem proste pytanie, czy masz lub miales pomysl na jednoznaczne odwzorowanie punktow przestrzeni n-wymiarowej na przestrzen 2-wymiarowa ?

    Dawno dawno temu widzialem cos takiego. Graficza postac odwzorowania kilku wymiarowej dziedziny przetransformowanej na plaszczyzne. Byla to slicznie wygladajaca pofaldowana niecka – najprosciej mowiac.

    Pozdrawiam cie

    TJ

    • Mój koncept polegał raczej na tym, żeby punkt wielowymiarowy wybierać „po trochu”. Mam na myśli wybór po 2 współrzędne na raz.

      Wydaje mi się, że przedstawienie n-wymiarowej przestrzeni na płaszczyźnie (i n>3) (jeśli jest możliwe) to jest bezużyteczne bo nawet jeśli weźmiemy przestrzeń 3D, którą wszyscy doskonale znamy i przedstawimy ją przy pomocy ekranu 2D to nie potrafimy jednoznacznie jednym kliknięciem wyznaczyć wszystkich koordynatów. Możemy wyznaczyć jedynie 2 koordynaty (lub zależność między dwoma koordynatami).

      Tak na prawdę w wizualizacji wszystko zależy od tego co oznaczają poszczególne przestrzenie.

      • Tak sobie jeszcze pomyślałem, że można przedstawiać 4 wymiary na płaszczyźnie w dość prosty sposób.
        Wystarczy przyjąć, że pozycja X, Y odpowiadają pierwszemu i drugiemu wymiarowi – to dość naturalne.
        Następnie kolor punktu, który sobie chcemy narysować wyznacza trzeci wymiar, a czwartym wymiarem może być kształt punktu (tutaj już słabiej z różnorodnością 😉 )

  6. Pingback: O przedstawieniu wielu wymiarów « Moriturius's Devlog

  7. My brother suggested I might like this web site. He used to be entirely right.
    This publish truly made my day. You can not
    imagine simply how much time I had spent for this information!
    Thank you!

  8. Does your site have a contact page? I’m having a tough time locating it but, I’d like to send you an email.
    I’ve got some ideas for your blog you might be interested in hearing. Either way, great website and I look forward to seeing it expand over time.

  9. I am curious which blogging and site-building platform you are using?
    I’m new to operating a blog and have been thinking about using the Tripod platform. Do you consider this is a good platform to start with? I would be very grateful if I could ask you some questions through e-mail so I can learn a bit more before getting started. When you have some free time, please be sure to get in touch with me at: consuelonemeth@web.de. Appreciate it

Dodaj komentarz