Napisz procedurę bez parametrów o nazwie ROZETA, która tworzy na środku ekranu następujący rysunek:
W celu uproszczenia zadania w rozwiązaniu znalazły się dwie procedury pomocnicze. Jedna z nich rysuje gwiazdkę złożoną z deltoidów oraz druga, która rysuje trójkąt równoboczny wyśrodkowany w pozycji żółwia. Pierwsza procedura ORNAMENT_gwiazd rysuje gwiazdę złożoną z sześciu deltoidów:
Cały kod opiera się na (2.) narysowaniu 6: (3. - 12) deltoidów.
Kolejna procedura ROZETA_troj rysuje trójkąt równoboczny o boku :a tak, żeby żółw przed i po rysowaniu znalazł się pośrodku narysowanego trójkąta:
(1. - 6.) Przesuwamy żółwia do lewego dolnego rogu rysowanego trójkąta. Następnie (7. - 10.) rysujemy trójkąt i (11. - 16.) wracamy do punktu z którego rozpoczęliśmy procedurę.
Zadaniem funkcji ROZETA będzie narysowanie koła i wywołanie odpowiednio dwóch funkcji pomocniczych. Warto zauważyć, że wewnątrz obrazka trójkąta i gwiazdki jest ich mniejsza kopia:
(2.) Określamy promień koła i na tej podstawie (3.) obliczamy bok najmniejszego trójkąta na obrazku. (4.) Rysujemy okrąg. (5.) Rysujemy dwa powtórzenia kombinacji: (6.) gwiazdki, (7.) trójkąta i (8., 9.) jego obróconej wersji. (10. - 14.) Na koniec uzupełniamy rysunek brakującymi liniami.
To jest rysunek gwiazdki:
Podczas rysowania gwiazdki warto napisać funkcję tak, aby rysunek był wyśrodkowany w miejscu skąd żółw rozpoczyna jej rysowania. Pozwoli to zmniejszyć problem ustawiania gwiazdki w drugiej części zadania.
Pierwszy etap rysowania gwiazdki polega na (2. - 7.) przesunięciu żółwia do lewego dolnego rogu sześciokąta i (8. - 11.) jego narysowaniu.
W drugim etapie najpierw (12. - 14.) przesuwamy żółwia. Następnie wyliczamy dwie zmienne: (15.) :h - bok trójkątów z których jest złożona gwiazdka oraz (16.) :h2 - jest to wysokość najmniejszego trójkąta. (17.) Rysujemy 6 razy: (18. - 19.) lewy odcinek odstający, (20. - 24.) dwa boki trójkąta tj. ramię gwiazdki i (25 - 26.) drugi odstający odcinek. Na koniec (27.) obracamy żółwia o , aby prawidłowo narysował dalej.
Z tak napisaną procedurę łatwo napisać procedurę ORNAMENT:
(2.) Ustalamy bok sześciokąta w gwiazdce, tu 20 idealnie pasuje. (3.) Rysujemy środkową gwiazdkę. Następnie rysujemy (6.) 6 gwiazdek: (7.) obracamy się w stronę środka kolejnej gwiazdki i (8. - 10.) tam się przesuwamy. (11.) Obracamy żółwia do góry i (12.) rysujemy gwiazdkę. (13.) Na koniec pętli wracamy na środek ekranu.
Napisz procedurę bez parametrów o nazwie N_Z, która tworzy na środku ekranu następujący rysunek:
Zadanie dzielimy na dwa pomniejsze: procedura pomocnicza będzie rysować literę N i Z, a druga dobierze miejsce i parametry, aby prawidłowo narysować wzór. Literę rysujemy następująco:
(2.) Dwa razy rysujemy (3. - 11) identyczny fragment rysunku i (12.) obracamy za każdym razem o .
(2.) Ustalamy maksymalną wysokość obrazka i (3.) najkrótszy odcinek litery N. (4. - 9.) przesuwamy żółwia w lewy dolny róg rysunku i (10. - 13.) rysujemy obramowanie.
(14. - 19.) Przesuwamy żółwia w lewy dolny róg najbliższej litery N. (20.) Następnie rysujemy 4 serie (21.) po 3 znaki: (22.) rysujemy literę N i (23. - 25.) przesuwamy do przodu i wysokość litery + :a (czyli 4*:a). (27. - 29.) Na koniec każdej serii przesuwamy się do przodu i (30.) skręcamy w prawo.
Ostatni etap polega na (32. - 37.) przesunięciu rysowania w lewy dolny róg największej litery N i (38.) jej narysowaniu. W tym przypadku warto zauważyć, że najmniejszy jej odcinek to mniejszego odpowiednika.