Laboratorium: Lista zadań 1 termin: 2016.03.20 Rozwiązaniami

Transkrypt

Laboratorium: Lista zadań 1 termin: 2016.03.20 Rozwiązaniami
Laboratorium: Lista zadań 1 termin: 2016.03.20 Rozwiązaniami zadań mają być programy napisane w języku Javascript działające na stronach HTML. Zarówno plik html oraz programy w Javascript mają zostać w podanym terminie umieszczone w repozytorium svn. Dla pliku html należy ustawić własność svn:mime­type ​
na wartość ​
text/html;charset=UTF­8​
. Można to zrobić poleceniem: svn propset svn:mime­type 'text/html;charset=UTF­8' plik.html (Po przesłaniu pliku do swojego repozytorium, sprawdź czy dany plik html poprawnie się wyświetla i uruchamia w przeglądarce internetowej.) 1. Grafika żółwia. (10 p.) Zaimplementować procedury ​
grafiki żółwia​
. Parametry żółwia, takie jak położenie i orientacja na płaszczyźnie mają być pamiętane jako liczby rzeczywiste. Przyjmij, że okno graficzne reprezentuje prostokąt [minX, maxX] x [minY, maxY] i widoczne są jedynie fragmenty śladów pozostawione w tym prostokącie. Parametry minX, maxX, minY, maxY są zapisywane jako pewne parametry niezależne od rozmiaru okna w pikslach. Przeliczaj współrzędne rzeczywiste na współrzędne piksli tak aby współrzędna X rosła w prawo a współrzędna Y rosła w górę. Zaimplementuj jeden program wykonujący kilka rysunków demonstracyjnych (np. wielokąty foremne w różnych kolorach) z wykorzystaniem swoich procedur, oraz drugi program na innej stronie HTML, zawierającej okienko tekstowe, w którym użytkownik może wpisywać interaktywnie polecenia dla żółwia na ekranie. 2. Krzywe Hilberta i Sierpińskiego. (10 p.) Napisz program rysujący na ekranie ​
krzywą Hilberta​
lub ​
krzywą Sierpińskiego dowolnego stopnia. Zrób to tak, aby użytkownik mógł zmieniać stopień rysowanej krzywej. (Wskazówka: można wykorzystać rozwiązanie poprzedniego zadania.) 3. Grafika żółwia w 3d (15 p.) (opcjonalnie wersja stereoskopowa +5 p.). Zaimplementuj grafikę żółwia w przestrzeni trójwymiarowej. Oprócz skręcania w lewo i w prawo, żółw może też skręcać w górę i w dół. Zastanów się jak reprezentować stan żółwia. Zakładamy, że ekran żółwia jest w tym przypadku prostopadłościanem [minX, maxX] x [minY, maxY] x [minZ, maxZ], którego rzut (perspektywiczny) jest wyświetlany użytkownikowi razem z rzutami śladów żółwia. Zrób tak aby użytkownik miał możliwość oglądania sceny z dowolnej pozycji (interaktywne obracanie sceny). Musisz zapamiętać ślady pozostawiane przez żółwia jako zbiór odcinków w przestrzeni 3D i odrysowywać scenę za każdym razem gdy użytkownik ją obróci. Aby uniknąć problemów z widocznością i zasłanianiem, przyjmij, że wszystkie odcinki są tego samego koloru. Przygotuj kilka programów demonstracyjnych na osobnych stronach HTML. 4. Wire­Frame 3d (10 p.) (opcjonalnie wersja stereoskopowa +5 p.) Napisz program umożliwiający użytkownikowi podróżowanie w scenie złożonej z losowo wygenerowanych prostopadłościanów. Aby uniknąć problemów z zasłanianiem, zastosuj grafikę ​
wire­frame​
, gdzie wszystkie krawędzie są tego samego koloru. Eksperymentalnie dobierz wielkość i sposób generowania sceny oraz parametry rzutowania, aby uzyskać jak najlepszy efekt.