Strona główna » Poradniki » Logomocja » Galeria » Kwiatek

Kwiatek

Przykładowy kwiatek

Zadanie

Napisz procedurę kwiatek, która będzie rysowała go uwzględniając: ilość warstw płatków, wielkość koszyczka kwiata, ilość płatków na każdej warstwie, mnożnik rysowania jednego płatka i kąt pod którym zaczynamy rysować płatek oraz kolory płatków oraz koszyczka.

Implementacja

Każda warstwa (prócz pierwszej) stara się jak najpełniej zapełnić przestrzeń pomiędzy płatkami pierwszej warstwy. Koszyczek zostanie narysowany jako kolorowe koło. Mnożnik pomaga dostosować wielkość płatka, a kąt pomaga sterować grubością płatka.

W informatyce bardzo przydatna jest umiejętność dzielenia zadania na mniejsze cele i w ten sposób osiągnięcie celu. W tym przypadku, aby skorzystać z tej metody warto napisać procedurę płatek, która rysuje jeden z płatków kwiatka.

  1. oto płatek :c :a :k
  2.   ukm :c
  3.   wielokąt[
  4.   lw :k
  5.   powtórz 2[
  6.     powtórz (2*:k)[
  7.       np :a
  8.       pw 1
  9.     ]
  10.     pw (180-2*:k)
  11.   ]
  12.   pw :k]
  13. już

Przed przystąpieniem do rysowania ustalony zostaje odpowiedni kolor, a następnie przekazujemy listę poleceń do procedury wielokąt. Pozwoli to nam uzyskać zamalowany obszar niezależnie od narysowanego kształtu. Sama lista poleceń polega na narysowaniu dwóch krzywych, które są rysowane poprzez odchylenia o k żółwia i przesuwając o mnożnik 2k razy. Oczywiście w tym zadaniu akceptowane jest inne rozwiązanie tego problemu. Warto zwrócić uwagę, że ta i każda kolejne procedura przywraca kierunek i pozycje żółwia, którą posiadał przed jej wywołaniem.

  1. oto korona :n :a :k :c
  2.   powtórz (:n)[
  3.     płatek :c :a :k
  4.     pw (360/:n)
  5.   ]
  6. już

Korona kontroluje ilość płatków rysowanych wokół korony. W celu uzyskania równomiernego rozłożenia płatków po każdym narysowanym płatku żółw zostaje obrócony o 360°/:n, gdzie n to ilość płatków do narysowania na jednej warstwie.

  1. oto kwiatek :w :l :n :a :k :c1 :c2
  2.   powtórz (:w)[
  3.       korona :n :a :k :c1
  4.       pw (360/:n)/:w
  5.   ]
  6.   ukm :c2
  7.   koło :l
  8. już

Kwiatek to procedura, która zarządza pozostałymi. Odpowiada za narysowanie wszystkich warstw płatków i rysuje koszyczek. W celu jak najbardziej afektywnego zapełnienia pomiędzy płatkami każdej kolejnej warstwy należy pamiętać, że należy obrócić każdą kolejną warstwe.

Uwagi końcowe

Należy pamiętać, że nie dostosowana liczba płatków na warstwie może doprowadzić do nienaturalnego nachodzenia płatków. W celu rozwiązania tego problemu należy zwiększyć ilość warstw i zmniejszyć ilość płatków.

Kąt i mnożnik są parametrami bardzo ogólnymi. Rysowanie samego płatka może być dowolne, dlatego warto zastanowic się nad inną metodą rysowania tego fragmentu rysunku.