• Nie Znaleziono Wyników

Przekształcenia obiektów w przestrzeni trójwymiarowej

N/A
N/A
Protected

Academic year: 2021

Share "Przekształcenia obiektów w przestrzeni trójwymiarowej"

Copied!
3
0
0

Pełen tekst

(1)

SYNTEZA I OBRÓBKA OBRAZU

Ćw. 2 Przekształcenia obiektów w przestrzeni trójwymiarowej

Wykonujący: Ocena:

Specjalność: IDiO, sem. II/3 Data wykonania ćwiczenia:

Celem ćwiczenia jest zapoznanie studentów z metodami konwersji współrzędnych modeli obiektów 3D za pomocą przekształceń afinicznych. Podstawy teoretyczne zawarte są w prezentacji „Rendering obrazu 3D” do wykładu z przedmiotu. Ćwiczenie wykonywane będzie w programie Matlab, z wykorzystaniem pakietu matGeom.

Należy wykonać kolejne polecenia i zanotować w sprawozdaniu w zaznaczonych ramkach wnioski i odpowiedzi na pytania. Sprawozdanie ma być wypełnione elektronicznie (w pliku). W nazwie pliku należy podać nazwiska osób wykonujących ćwiczenie. Po zakończeniu zajęć należy plik ze sprawozdaniem umieścić w systemie sprawozdań.

Zadanie 1 – reprezentacja modelu przykładowego obiektu

Uruchomić program Matlab. Zmienić katalog roboczy na D:\SyntezaObrazu\SO2 (ew. dysk E). Uruchomić skrypt setupMatGeom. Utworzyć siatkę wielokątową sześcianu za pomocą komendy:

[V E F] = createCube;

Wykonać wykres siatki obiektu za pomocą komendy:

drawMesh(V, F, color)

gdzie color oznacza definicję koloru wg Matlaba, np. ‘blue’, ‘green’, itp. Można pominąć ten parametr, domyślnie jest stosowany kolor czerwony.

Matlab tworzy wykres w widoku 2D, zatem trzeba zaznaczyć ikonę trybu obrotu i obrócić wykres przy pomocy myszy, albo wykonać komendy:

view(3); axis('vis3d');

Uwaga ta dotyczy każdego przypadku, w którym tworzymy nowy wykres.

Wyświetlić zawartość macierzy V, E, F. Na podstawie analizy ich zawartości podać jakie informacje zawiera każda z tych macierzy.

Zadanie 2 – macierze przekształceń afinicznych

Utworzyć macierze dla poniższych przekształceń afinicznych. Parametry funkcji zastąpić odpowiednimi liczbami (najlepiej różnymi).

T = createTranslation3d(DX, DY,

DZ) Przesunięcie o wektor [DX,DY,DZ]

S = createScaling3d(SX, SY, SZ) Skalowanie o wsp. SX, SY, SZ

RX = createRotationOx(thetaX) Obrót o kąt thetaX [radiany] wokół osi X

RY = createRotationOy(thetaY) Obrót o kąt thetaY [radiany] wokół osi Y

RZ = createRotationOz(thetaZ) Obrót o kąt thetaZ [radiany] wokół osi Z

Dokonać przekształcenia oryginalnego sześcianu za pomocą każdej z macierzy, np.:

(2)

Wypisać zawartość przekształconych współrzędnych i wykreślić je razem z oryginalnym sześcianem (uwaga: dopóki nie zamkniemy okna wykresu, kolejne wykresy są rysowane w tym samym oknie, co pozwala nakładać na siebie różne obiekty). Sprawdzić czy wyniki są zgodne z oczekiwaniami.

Zadanie 3 – składanie przekształceń

Przekształcić oryginalny sześcian za pomocą najpierw operacji przesunięcia, a następnie wynik tej operacji – za pomocą dowolnego obrotu. Następnie obliczyć iloczyn obu macierzy użytych do przekształceń i zastosować go do oryginalnego sześcianu. Na tej podstawie określić w jaki sposób obliczana jest macierz złożonych przekształceń afinicznych, jaka musi być kolejność mnożenia macierzy składowych przekształceń.

Zadanie 4 – środek obrotu

Przesunąć oryginalny sześcian o wektor [2, 3, 0], a następnie dokonać obrotu obiektu wokół osi Z o 45 stopni (pi/4) w lewo. Wykreślić sześcian przed i po obrocie. Który punkt jest środkiem obrotu?

Wykonać operacje na oryginalnym sześcianie prowadzące do obrotu o 45 stopni (pi/4) w lewo wokół osi Z, tak aby oś sześcianu pozostała w tym samym miejscu. Zapisać wykonywane operacje poniżej, zweryfikować poprawność za pomocą wykresu.

Zadanie 5 – budowanie złożonej sceny

Używając jednostkowego sześcianu utworzonego za pomocą komendy createCube jako szablonu, zbudować piramidę złożoną z czterech sześcianów, zgodnie z podanymi niżej zasadami, tak aby uzyskać wynik jak na przykładowym rysunku. Wskazówka: jako punkt obrotu i skalowania najlepiej jest przyjąć punkt leżący w samym środku sześcianu.

 Geometryczne środki wszystkich sześcianów leżą na jednej osi, przechodzącej przez środek podstawy najniższego sześcianu i prostopadłej do niej.

 Pierwszy sześcian (najniższy) jest umieszczony w oryginalnej pozycji.

 Każdy z sześcianów poza pierwszym jest zmniejszony w stosunku do stojącego niżej – długość jego krawędzi wynosi 0,8 * długość krawędzi niższego sześcianu.

 Drugi i trzeci sześcian są obrócone wokół osi Z o 45 stopni (pi/4) względem sześcianu stojącego niżej.

 Czwarty, najwyższy sześcian „stoi” na wierzchołku. Wskazówka: połowa długości przekątnej sześcianu o długości boku a jest równa a * sqrt(3) / 2.

Zwrócić uwagę na kolejność przekształceń. Wynik pokazać na wykresie – każdy sześcian powinien mieć inny kolor. Zweryfikować poprawność wyniku obracając wykres myszką w trybie rotacji.

(3)

Cytaty

Powiązane dokumenty

Zad.7 Ile procent objętości -  stożka stanowi objętość górnej jego części odciętej płaszczyzną równoległą do podstawy przechodzącej przez punkt leżący na

Siatka sześcianu to odpowiednio narysowana i wycięta kartka, karton czy inny materiał, z których po pozaginaniu można złożyć sześcian.. To jest sześcian To jest

Fryzury: zakrywające policzki, o miękkiej linii, objętościowe na szczycie głowy ,dodana grzywka optycznie skraca twarz... Nie zalecane: fryzury rozbudowane,

(a) podwojenie sześcianu: mając dany sześcian o boku a (tzn. końce odcinka o długości a na płaszczyźnie), skonstruować krawędź sześcianu o dwukotnie większej objętości;4.

Zaznacz krawędzie prostopadłościanu tak, aby krawędzie równej długości były na każdym rysunku w tym samym kolorze, a różnej długości – w różnych kolorach.5. Tak na

Jeśli mamy dany wykres funkcji y= f(x), to jeśli odbijemy w nim punkty znad osi x pod nią i odwrotnie, otrzymamy wykres funkcji y=

Graniastosłup - to bryła, która posiada dwie identyczne podstawy będące wielokątami oraz ściany boczne będące prostokątami.. Graniastosłup przyjmuje nazwę od wielokąta,

Wskazani uczniowie, gdy wykonają zadania, muszą niezwłocznie przesłać wyniki przez komunikator na e-dzienniku, lub mailem na adres:.. matematyka2LOpm@gmail.com skan