to get the file

Transkrypt

to get the file
Grafika komputerowa 2D/3D
Instrukcja
laboratoryjna
7
Temat: Rzutowanie równoległe i perspektywiczne
Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz
Michno
1 Wstęp teoretyczny
Monitory (z pominięciem prawdziwych monitorów 3D) pozwalają jedynie na wyświetlanie
obrazów dwuwymiarowych, co jest bardzo dużym utrudnieniem w przypadku gdy chcemy pokazać
na nich obraz trójwymiarowy. Jedynym rozwiązaniem jest zastosowanie rzutowania przestrzeni 3D
na 2D, w sposób zachowujący „przestrzenność” brył. Najczęściej wykorzystuje się rzutowanie
równoległe lub perspektywiczne.
1.1 Rzutowanie równoległe
Rzutowanie równoległe jest najprostszym typem rzutowania, zachowuje wszystkie
równoległości prostych, kąty i wymiary. Wszystkie proste rzutowania mają ten sam, ustalony
kierunek. Z tego powodu rzutowanie to sprowadza się najczęściej do usunięcia współrzędnych
jednej z osi (najczęściej osi Z). Wykorzystywane jest głównie w rysunku technicznym.
Przykład:
1/3
1.2 Rzutowanie perspektywiczne
Rzutowanie perspektywiczne jest nieco trudniejsze do zaimplementowania, jednak jego
wyniki są zbliżone do tego, co widzimy własnym okiem – obraz jest bardziej realistyczny i posiada
wrażenie głębi (obiekty na dalszym planie są mniejsze). Przy rzutowaniu wzdłuż osi Z współrzędne
punktów na ekranie można wyznaczyć za pomocą poniższych wzorów:
d
x '=x⋅
,
z +d
y '= y⋅
d
z+d
gdzie:
x, y, z – współrzędne punktu w przestrzeni 3D
x', y' – współrzędne na ekranie (2D)
d – odległość od obserwatora (przy założeniu, że znajduje się on na osi Z)
Przykład:
2/3
2 Zadanie
Przygotować obiekt trójwymiarowy składający się z około 20 wierzchołków, obiekt
powinien mieć rozróżnialną lewą i prawą stronę, górę i dół. Obiekt należy opisać za pomocą
powierzchni (wielokątów, prostokątów, trójkątów), współrzędne wierzchołków wszystkich ścian
zapisać w odpowiedniej strukturze, tablicy lub pliku.
Przygotowany obiekt pokazać na ekranie monitora rysując krawędzie (tzw. druciak).
Program powinien posiadać tryb rzutowania równoległego i perspektywicznego.
Obiekt należy odpowiednio wyskalować aby zajął większą część ekranu.
Proponowany sposób obsługi z pomocą klawiatury:
• R – rzutowanie równoległe;
• P – rzutowanie perspektywiczne;
• „+” – zwiększanie odległości od obserwatora (rzutowanie perspektywiczne);
• „-” – zmniejszenie odległości od obserwatora (rzutowanie perspektywiczne);
• ESC - koniec.
3/3