2.6. Gwiazdozbiór

Scenariusz

W kolejnym projekcie scenę podzielimy na dwie części. Na górnej części sceny (dla współrzędnych y nieujemnych) duszek (ukryty) narysuje gwiazdy. Na dolnej drugi duszek (lub więcej duszków, jeśli zechcesz) będzie działał według Twojego własnego scenariusza.
W pierwszej wersji projektu wszystkie gwiazdy będą tej samej wielkości, ośmioramienne. Możesz oczywiście zaproponować własną wersję gwiazdy.

Zadanie 2.6.1.

Zapisz w punktach przepis-algorytm rysowania gwiazdy ośmioramiennej.
Przykładowy zapis algorytmu
1.Przyłóż pisak.
2.Powtórz 8 razy.
2a. Przesuń o długość ramienia gwiazdy.
2b. Obróć się w prawo o 135 stopni.
3.Podnieś pisak.
4.Zakończ działanie skryptu.
Zadaniem ukrytego duszka będzie narysowanie kilku lub kilkunastu gwiazd losowo położonych na niebieskim tle. Dobierz długość ramienia gwiazdy i zastanów się, z jakiego zakresu powinieneś losować współrzędne x i y punktu, z którego duszek rozpoczyna rysowanie gwiazdy.

Zadanie 2.6.2.

Zapisz w punktach przepis na rysowanie 10 gwiazd na niebieskiej części tła sceny.
Duszek gwiazdę może zacząć rysować z lewej strony sceny, więc współrzędna x może być wylosowana z zakresu od ⎼240 do 240 minus długość ramienia gwiazdy. Współrzędna y musi być dodatnia oraz tak dobrana, żeby cała gwiazda mieściła się na niebieskim tle. Można przyjąć pewien margines od krawędzi i losować współrzędną w zakresie od długości ramienia gwiazdy do 180 minus ta długość. Dla długości ramienia gwiazdy wynoszącej 30 można losować x współrzędną w zakresie od ⎼240 do 210, a y w zakresie od 30 do 150.
Przykładowy zapis algorytmu
1.Wyczyść scenę.
2.Ustaw grubość pisaka (np. 3).
3.Ustaw kolor pisaka (np. żółty).
4.Powtórz 10 razy.
4a. Idź do pozycji x y, gdzie x jest losowe w zakresie od ⎼240 do 210, a y w zakresie od 30 do 150.
4b. Narysuj gwiazdę.
5.Zakończ działanie skryptu.

Tworzymy własny blok (klocek)

Opisując algorytm realizujący rysowanie gwiazd na niebieskim tle założyliśmy, że umiemy narysować pojedynczą gwiazdę w określonym miejscu sceny. Innymi słowy, chcielibyśmy mieć do dyspozycji klocek rysujący taką gwiazdę. Wśród dziesięciu kategorii klocków (bloków) znajdziesz kategorię Więcej bloków, a w niej przycisk Stwórz blok. Obejrzyj na filmie, jak stworzyć nowy własny blok.

Zadanie 2.6.3.

Dodaj nowy blok Gwiazda rysujący gwiazdę ośmioramienną wg algorytmu z poprzedniego podrozdziału.
Przykładowy skrypt

Zadanie 2.6.4.

Napisz skrypt, który po kliknięciu w zieloną flagę rysuje kilka lub kilkanaście gwiazd losowo rozmieszczonych na niebieskim tle wg algorytmu z poprzedniego podrozdziału.
Przykładowy skrypt

Zadanie 2.6.5.

Przygotuj własny scenariusz działań dla drugiego duszka w dolnej części sceny, zapisz przepis - algorytm działania w punktach i skrypt (skrypty) go realizujące.

Rysujemy mniejsze i większe gwiazdy

Wszystkie rysowane gwiazdy były tej samej wielkości – miały taką samą, z góry ustaloną długość ramienia. Korzystając np. z klocka przesuń o … masz możliwość podania liczby kroków, o jaką chcesz przesunąć duszka. Podobnie chcielibyśmy uczynić z klockiem Gwiazda, móc podawać długość ramienia gwiazdy. Służą do tego parametry. Tworząc nowy blok (lub poprawiając go – w tym celu należy kliknąć prawym przyciskiem myszy w klocek i wybrać opcję edytuj) możesz dodać parametr. Zobacz na poniższym filmie, jak dodać parametr i jak go wykorzystać we własnym bloku.

Zadanie 2.6.6.

Popraw klocek Gwiazda w swoim projekcie dodając parametr określający długość ramienia gwiazdy.

Zadanie 2.6.7.

Popraw skrypt uruchamiany po kliknięciu zielonej flagi tak, aby długość ramienia rysowanych gwiazd losowała się z określonego zakresu.

Wskazówka

Pamiętaj, że powinieneś zadbać, żeby gwiazdy mieściły się na niebieskim tle. Dotychczasową, stałą długość ramienia możesz potraktować jako wartość maksymalną.

Zadania uzupełniające

Zadanie 2.6.8.

Napisz skrypt (skrypty) tworzący poniższe rysunki. Po kliknięciu w zieloną flagę duszek powinien zapytać się o liczbę obracanych kwadratów. Zapisz najpierw w punktach przepis-algorytm postępowania.
Wskazówka:
Załóż, że duszek umie narysować kwadrat o stałej długości boku, np. 100. Stwórz blok rysujący taki kwadrat. Zastanów się, o jaki kąt duszek powinien się obracać po narysowaniu każdego kwadratu, aby na koniec patrzeć znowu w tą samą stronę (w sumie wykonać obrót o kąt pełny 360 stopni).

Zadanie 2.6.9.

Napisz skrypt (skrypty) tworzący poniższy rysunek. Może umiesz podać więcej niż jeden przepis-algorytm na rysowanie go?

Zadanie 2.6.10.

Stwórz własne bloki rysujące kwadrat oraz prostokąt z parametrami określającymi długości boków. Rozwiąż ponownie zadanie dotyczące cyfr z ostatniego rozdziału z klasy 4. Zbuduj skrypty, które po naciśnięciu klawiszy 0 i 8 narysują odpowiednio cyfry 0 i 8.

Zadanie 2.6.11.

Popraw klocek rysujący gwiazdę w taki sposób, żeby miał drugi parametr liczbowy określający kąt obrotu.
Wskazówka:
Zakończ rysowanie, kiedy duszek powróci do pierwotnego kierunku (prawo – 90 stopni). Wykorzystaj w tym celu pętlę powtarzaj aż.
Uwaga:
Nie każda wartość kąta daje ciekawy rysunek. Popróbuj działanie skryptu dla różnych wartości kątów. Duszek przed rysowaniem może się pytać o wartość kąta. Czy umiesz policzyć na podstawie wartości kąta, ile ramion będzie miała gwiazda?