Politechnika Wrocławska Instytut Informatyki Automatyki i Robotyki Wizualizacja danych sensorycznych Rzutowanie z 4D na 3D Autor: Daniel Piłat Opiekun projektu: dr inż. Bogdan Kreczmer 15 czerwca 2010
SPIS TREŚCI SPIS TREŚCI Spis treści 1 Charakterystyka tematu projektu 2 2 Opis problemu 2 3 Funkcjonalność aplikacji 2 3.1 Testowanie aplikacji........................................... 2 3.2 Obserwacja obiektu 4D poruszającego się liniowo........................... 2 3.3 Obserwacje obrotów w przestrzeni 4D................................. 3 4 Interfejs graficzny 3 4.1 Zakładka Oś............................................... 4 4.2 Zakładka Wyświetl............................................ 4 4.3 Zakładka Obroty............................................. 4 4.4 Zakładka Kolory............................................. 4 5 Diagram klas 4 6 Diagram przepływu sterowania 4 7 Efekty pracy 4 8 Wnioski i podsumowanie 4 1
3 FUNKCJONALNOŚĆ APLIKACJI 1 Charakterystyka tematu projektu Temat dotyczy metod wizualizacji czterowymiarowych obiektów w trójwymiarowej przestrzeni. 2 Opis problemu Przestrzeń, w której żyjemy i którą obserwujemy na codzień jest trójwymiarowa. Podobnie do płaszczaków 1 nie potrafiących wyobrazić sobie obiektów podobnych nam, czyli trójwymiarowych, nie jesteśmy w stanie w pełni wyobrazić sobie obiektów czterowymiarowych. Sposób w jaki postrzegamy przestrzeń pozwala nam na obserwacje brył maksymalnie trójwymiarowych. Płaszczaki mogą zaobserwować pojawianie się w ich przestrzeni istot 3D. To co będą widzieć to przekroje obiektów trójwymiarowych. Pomimo umiejętności wyobrażenia sobie płaszczków, człowiek nie byłby jednak w stanie zaobserwować ich, gdyby takie istoty rzeczywiście istniały. Wszystko co ludzie są w stanie zobaczyć posiada trzy wymiary. Wnioskując w ten sposób, ludzie teoretycznie mogą obserwować przekroje trójwymiarowe istot czterowymiarowych, gdy jakaś ich część znajduje się w trójwymiarze naszej egzystencji, jednak istoty czterowymiarowe, prawdopodobnie nie potrafiłyby zaobserwować ludzi, gdyż nie posiadamy czwartego wymiaru. Jak wyglądałaby bryła czterowymiarowa w naszej przestrzeni, gdyby jakaś jej część znajdowała się w naszej trójwymiarowej przestrzeni postarano się zwizualizować w utworzonej na potrzeby projektu aplikacji. 3 Funkcjonalność aplikacji Aplikacja będąca realizacją projektu, służy badaniu brył czterowymiarowych, za pomocą wizualizowania ich w przestrzeni naturalnej dla postrzegania świata przez człowieka, czyli trówymiarowej. W ten sposób powstaje możliwość, obserwacji obiektów 4D, za pomocą obrazów bliższych ludzkiemu umysłowi, odchodząc od abstrakcji wielowymiarowych (składających się z więcej niż trzech wymiarów) przestrzeni. 3.1 Testowanie aplikacji Zdecydowano, że testy aplikacji zostaną przeprowadzone na najbardziej znanej czterowymiarowej bryle, czyli na tesserakcie. Na decyzję tą złożyły się liczne zalety czterowymiarowego hipersześcianu. Najważniejszą, z której wynika wiele innych zalet jest zachowanie między krawędziami stałego kąta 90. Dzięki temu, można łatwo przewidzieć jak powinna się zachowywac bryła będąca rzutem tesseraktu na przestrzeń 3D, w różnych warunkach. Jako, że translacja obiektu, oraz zwiększanie jego wymiarów w przestrzeni 4D nie miałoby bezpośredniego wpływu na charakter wizualizacji, nie wprowadzono takiej możliwości modyfikacji badanego obiektu. Aplikacja daje możliwość obrotu względem dowolnej powierzchni w przestrzeni 4D. Można zbadać w ten sposób obiekty z każdej strony. 3.2 Obserwacja obiektu 4D poruszającego się liniowo Aplikacja pozwala na obserwację obiektu 4D poruszającego się ruchem liniowym względem jednej z czterech osi czterowymiarowej przestrzeni. Program wizualizuje przestrzeń jaką zajmowałby poruszający się prostopadle do naszej trówymiarowej przestrzeni obiekt. Łatwo wyobrazić sobie, że dla tak wizualizowanego nieobróconego w 1 istoty żyjące w przestrzeni 2D Rysunek 1: Siatka tesseraktu. 2
3.3 Obserwacje obrotów w przestrzeni 4D 4 INTERFEJS GRAFICZNY żaden sposób tesseraktu widok, jaki powinniśmy otrzymać to stały sześcian. W wyobrażeniu sobie takiej sytuacji może pomóc rysunek 1. Niech kierunek ruchu wyznaczają odcinki o takich samych kolorach na końcach. 3.3 Obserwacje obrotów w przestrzeni 4D Aplikacja daje możliwość obserwacji tego samego obiektu inaczej zorientowanego w przestrzeni 4D. Można tego dokonać obracając badaną figurę względem danej powierzchni. Jest to sposób analogiczny do obrotów w przestrzeniach 2D, oraz 3D. Poniżej przedstawiono model działania wykonywanego przy obrocie pojedynczego punktu: P = M OXY P (1) gdzie P to wynikowy punkt obrotu punktu P względem powierzchni wyznaczonej przez osie OX oraz OY, gdzie Poniżej przedstawione są macierze obrotów o kąt α. 4 Interfejs graficzny M OV X = M OV Y = M OV Z = M OXY = M OXZ = M OY Z = v x P =. (2) y z cos(α) sin(α) 0 0 sin(α) cos(α) 0 0 0 0 1 0 0 0 0 1 cos(α) 0 sin(α) 0 0 1 0 0 sin(α) 0 cos(α) 0 0 0 0 1 cos(α) 0 0 sin(α) 0 1 0 0 0 0 1 0 sin(α) 0 0 cos(α) 1 0 0 0 0 cos(α) sin(α) 0 0 sin(α) cos(α) 0 0 0 0 1 1 0 0 0 0 cos(α) 0 sin(α) 0 0 1 0 0 sin(α) 0 cos(α) 1 0 0 0 0 1 0 0 0 0 cos(α) sin(α) 0 0 sin(α) cos(α) (3) (4) (5) (6) (7) (8) Interfejs graficzny utworzony na potrzeby działania aplikacji został podzielony na cztery zakładki. Oś Wyświetl Obroty Kolory Ponadto są także dostępne opcje włączania siatki powierzchni wyznaczonej przez osie OX i OY w przestrzeni R 3, wyświetlenia informacji o wyświetlanych obrazach na sekundę oraz wyświetlenia osi OX, OY oraz OZ. 3
4.1 Zakładka Oś 8 PODSUMOWANIE 4.1 Zakładka Oś W tej zakładce możliwa jest zmiana osi względem, której figura 4D będzie rzutowana. Udostepniona jest również możliwość przeglądu sceny podczas ruchu figury 4D, oraz wybór dowolnego momentu ruchu zrzutowanej figury 4D. Tutaj także można włączyć wyświeltlanie wszyskich ścian, krawędzi oraz punktów zrzutowanych. Taki obraz przedstawia kompletny rzut figury 4D na 3D. 4.2 Zakładka Wyświetl W tej zakładce możliwy jest wybór wyświetlanych komponentów wizualizowanej figury. Mozna włączać i wyłączać wyświetlanie punktów, krawędzi oraz ścian. Do ustawienia jest również wielkość wyświetlanych punktów. 4.3 Zakładka Obroty W tej zakładce umożliwona jest zmiana orientacji rzutowanej figury 4D. Podaje się tutaj wartości kąta w stopniach o jaki ma być obrócona figura 4D w przestrzeni R 4. 4.4 Zakładka Kolory W tej zakładce można zmieniać kolory wyświeltanych komponentów. Każdemu z nich można ustawić składowe kolory z palety RGB. 5 Diagram klas Diagram klas wykonano w programie Software Ideas Modeler i przedstawiono na rysunku 2. 6 Diagram przepływu sterowania Diagram przepływu sterowania również wykonano w programie Software Ideas Modeler i przedstawiono na rysunku 3. 7 Efekty pracy Efektem pracy jest aplikacja umożliwiająca oglądanie figur czterowymiarowych w trójwymiarowej przestrzeni. Możliwe jest wizualizowanie przekrojów figury 4D zjadujących się aktualnie w wybranym trójwymiarze podczas ruchu bryły 4D we własnej przestrzeni. Aplikacja umożliwia również modyfikację orientacji w przestrzeni R 4 rzutowanej figury. Ustawiając odpowiednie parametry wyświetlania można także wyświetlić kompletny rzut figury 4D. 8 Podsumowanie Zadanie do wykonania w ramach zajęć projektowych wymagało przeanalizowania i zrozumienia problemu o wysokim stopni abstrakcji. Najtrudniejsze problemy jakie należało wykonać w czasie realizacji zadania projektowego to: rzutowanie figury 4D na 3D; przekrój figury 4D na 3D; obrót figury 4D w przestrzeni R 4 ; odtworzenie ścian brył 3D z siatki składającej się z punktów oraz krawędzi; włączenie oświetlenia sceny; realizacja interfejsu użytkownika. 4
8 PODSUMOWANIE Rysunek 2: Diagram klas w języku UML. 5
8 PODSUMOWANIE Rysunek 3: Diagram przepływu sterowania dla aplikacji. 6