Gwiazdozbiór - tworzenie gwiazd i figur w środowisku Scratch
Rysowanie gwiazd na scenie
W tym materiale nauczysz się definiowania własnych bloków w środowisku Scratch 3.0 lub nowszym.
W tym celu napiszemy projekt, w którym scenę podzielimy na dwie części. W górnej części sceny (dla liczb nieujemnych) duszek (ukryty) narysuje gwiazdy. W dolnej, drugi duszek (lub więcej duszków, jeśli zechcesz) będzie działał według twojego własnego scenariusza.
R942tfjh3Ol3Y
W pierwszej wersji projektu wszystkie gwiazdy będą tej samej wielkości i ośmioramienne. Możesz oczywiście zaproponować własną wersję gwiazdy.
R11rXyp55ZXHU
RsX1rBpv1VUdW
1
Ćwiczenie 1
Zapisz w punktach algorytm rysowania gwiazdy ośmioramiennej.
R1EJJyRVlJn6E
Zwróć uwagę na rysunek pokazujący, o jaki kąt duszek ma się obrócić. Nie podajesz wewnętrznej wartości kąta, jaki tworzą dwa boki gwiazdy, tylko kąt zewnętrzny. Jest to wartość, o jaką duszek ma się obrócić w wybranym kierunku.
Przykładowy algorytm:
Przyłóż pisak.
Powtórz razy: 2.1. Przesuń o długość ramienia gwiazdy. 2.2. Obróć się w prawo o stopni.
Podnieś pisak.
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ć liczby i określające położenie punktu, z którego duszek rozpoczyna rysowanie gwiazdy. Pamiętaj również o odpowiednim ustawieniu kierunku duszka.
2
Ćwiczenie 2
Zapisz w punktach algorytm rysowania gwiazd na niebieskiej części tła sceny.
RPt8kowNnZN8e
Na początku ustawmy duszka tak, aby poruszał się w prawą stronę. Zauważ, że po narysowaniu gwiazdy nie zmieni on tego ustawienia. Aby gwiazdy mieściły się na całej szerokości sceny liczba może być wylosowana z zakresu od do . Całkowita wysokość sceny wynosi (od do ), więc liczba musi być dodatnia, ponieważ chcemy rysować po jej górnej części. Dodatkowo musimy dobrać ją tak, ż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 minus ta długość. Na przykład, dla długości ramienia gwiazdy wynoszącej , można losować liczbę w zakresie od do , a w zakresie od do .
Poniżej znajduje się przykładowa lista kroków dla długości ramienia równej 30. Twój algorytm może wyglądać inaczej, jeżeli przyjmiesz inną wielkość gwiazdy.
Wyczyść scenę.
Ustaw grubość pisaka (np. ).
Ustaw kolor pisaka (np. żółty).
Ustaw kierunek duszka na 90.
Podnieś pisak.
Potwórz razy: 6.1. Wylosuj x z przedziału od -240 do 210. 6.2. Wylosuj y z przedziału od 30 do 150. 6.3. Idź do pozycji x, y. 6.4. Przyłóż pisak. 6.5. Narysuj gwiazdę. 6.6. Podnieś pisak.
Zakończ działanie skryptu.
Tworzymy własny blok
W ćwiczeniu 2 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 blok rysujący taką gwiazdę. Wśród dziesięciu kategorii bloków znajdziesz kategorię Moje bloki, a w niej przycisk Utwórz blok. Obejrzyj na filmie, jak stworzyć nowy własny blok.
Re1OWqO1jmZvB
1
Ćwiczenie 3
Utwórz nowy blok Gwiazda rysujący gwiazdę ośmioramienną.
Jeżeli masz problem ze stworzeniem własnego bloku, obejrzyj film z instrukcją zamieszczony powyżej.
Przykładowy skrypt:
R10b1xBcp6IxV
R1C9mmgqYMEjq
Ćwiczenie 3
1
Ćwiczenie 4
Napisz skrypt, który po kliknięciu w zieloną flagę rysuje kilka lub kilkanaście gwiazd losowo rozmieszczonych na niebieskim tle. Tło zaprojektuj bezpośrednio w Scratch lub wykorzystaj do tego dowolny program graficzny. Skorzystaj z nowo utworzonego bloku rysującego pojedynczą gwiazdę z poprzedniego ćwiczenia.
Scena w programie Scratch ma wymiary 480 (szerokość) na 360 (wysokość). Pamiętaj, że gwiazdy mają znajdować się w jej górnej części. Weź pod uwagę również długość ramienia gwiazdy. Aby cała gwiazda była widoczna na niebieskim tle, zaleca się zachowanie pewnego marginesu od krawędzi.
Jako tło możesz użyć tła z biblioteki Scratch - MoonmoonMoon. Niebo możesz powiększyć, np. poprzez dorysowanie granatowego prostokąta.
Aby dodać nowe tło do sceny z galerii obrazów Scratch, kliknij na niebieski przycisk w prawym dolnym rogu z ikoną obrazu z plusemprzycisk_dodaj_tloikoną obrazu z plusem. Następnie wybierz opcję Wybierz tło z listy dostępnych opcji.
R1GXCORa1Jj2W
Następnie wyszukaj interesujące cię tło. Możesz skorzystać z wyszukiwarki by znaleźć tło o znanej nazwie.
RcKRFFlQikeE0
Po wybraniu tła, przejdź do zakładki Tła w lewej części okna Scratch. Aby zmienić kolor, kliknij na kwadrat obok napisu Wypełnij i wybierz pożądany kolor. Następnie, z listy narzędzi, wybierz opcję Prostokąt i za pomocą myszy utwórz prostokąt na obszarze, który chcesz narysować.
R1N9saN3IXIdv
Przykładowy skrypt:
R1Ctb2kYILbhg
Napisz w punktach algorytm, który pozwoli na stworzenie kilku gwiazd w losowych miejscach prostokąta o wymiarach 480 (szerokość) na 360 (wysokość).
RKr5qZCy2kdOF
1
Ćwiczenie 5
Przygotuj skrypt realizujący własny scenariusz dla drugiego duszka w dolnej części sceny.
Scena w programie Scratch ma wymiary 480 (szerokość) na 360 (wysokość). Pamiętaj, że własny scenariusz ma się odbywać w jej dolnej części.
Przykładowy skrypt:
RAZ77AXbXEaFD
R1KeWALWEdsC7
Ćwiczenie 5
Rysujemy mniejsze i większe gwiazdy
Korzystając np. z bloku przesuń o …icckVlRpet_d429e144przesuń o … masz możliwość podania liczby kroków, o jaką chcesz przesunąć duszka. Podobnie chcielibyśmy utworzyć blok, który rysuje gwiazdę o podanej długości ramienia. Wykorzystamy do tego parametry. Tworząc nowy blok możesz dodać do niego parametry. Istnieje również opcja edycji istniejącego już bloku - w tym celu naciśnij prawym przyciskiem myszy blok i wybierz opcję Edycja. Zobacz na poniższym filmie, jak dodać parametr i jak go wykorzystać we własnym bloku.
RgsR5lc4YCvVI
1
Ćwiczenie 6
Popraw blok Gwiazda w swoim projekcie dodając parametr określający długość ramienia gwiazdy.
Sztywno podaną wartość określającą długość ramienia gwiazdy zastąp zmienną. Nazwij ją odpowiednio, to znaczy tak żeby ktoś, kto pierwszy raz patrzy na dany skrypt wiedział, za co ona odpowiada.
Popraw skrypt uruchamiany po kliknięciu zielonej flagi tak, aby długość ramienia rysowanych gwiazd losowała się z określonego zakresu.
Blok odpowiedzialny za losowanie liczby z podanego zakresu znajdziesz w kategorii Wyrażenia.
Przykładowy skrypt:
R17HpsxoGS752
Rzmmd5DSbc15D
Ćwiczenie 7
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ą.
icckVlRpet_d429e144
RC0l4O5JZ4781
Przesuwa duszka o podaną odległość zgodnie z aktualnym kierunkiem oraz aktualnymi ustawieniami pisaka (przyłożony/podniesiony, kolor, grubość). Jeśli chcemy przesunąć duszka do tyłu, należy podać wartość ujemną.
Przykład:
RGypbpDl5pd4c
Zadania uzupełniające
2
Ćwiczenie 8
Stwórz aplikację, prezentowaną na filmie, tworzącą rysunek złożony z kwadratów. W tym celu stwórz własny blok, który będzie rysował pojedynczy kwadrat. Po kliknięciu w zieloną flagę duszek powinien zapytać się o liczbę obracanych kwadratów. Zapisz najpierw w punktach algorytm postępowania.
Rd6nzW6KVj43a
Załóż, że duszek umie narysować kwadrat o stałej długości boku, np. . 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ę (czyli wykonać obrót o kąt pełny, czyli stopni).
Przykładowy algorytm rysowania kwadratu:
Powtórz 4 razy: 1.1. Narysuj odcinek o podanej długości, np. 100. 1.2. Obróć w prawo o 90 stopni.
Przykładowy algorytm obracania kwadratów:
Duszek prosi użytkownika o podanie liczby kwadratów, które ma narysować.
Powtórz tyle razy, ile użytkownik wprowadził w odpowiedzi: 2.1 Narysuj kwadrat. 2.2 Obróć o 360 / odpowiedź.
Przykładowy skrypt rysujący kwadrat:
Rdk8FjQauLxYv
Przykładowy skrypt:
RFlqojoO4NGPM
R5ICZ7HEsnavm
Ćwiczenie 8
3
Ćwiczenie 9
Napisz skrypt tworzący poniższy rysunek. Podaj więcej niż jeden algorytm na rysowanie go.
R17D9JTIr23XL
Zastanów się jaka figura foremna obracana wokół jednego wierzchołka może stworzyć taki rysunek. Jest to jeden ze sposobów pozwalający na narysowanie takiego obrazka.
Przykładowy skrypt nr 1:
R13bMaXSQGBpk
Rk57VlwBMzc0S
Przykładowy skrypt nr 2:
R1dfrD1L9LuWW
RBfLSfFsknAJk
R1Ig8V8remPua
Ćwiczenie 9
3
Ćwiczenie 10
Stwórz własne bloki rysujące kwadrat oraz prostokąt z parametrami określającymi długości boków. Zbuduj skrypty, które po naciśnięciu klawiszy i narysują odpowiednio cyfry i .
RpWuk4OrmMGM7
Blok odpowiedzialny za rozpoczynanie skryptu wciskając podany przycisk znajdziesz w kategorii: Zdarzenia.
Przykładowy skrypt rysujący kwadrat:
RzCEcdFuB3ydW
Przykładowy skrypt rysujący prostokąt:
RbljCzPMbyEt8
Przykładowy skrypt rysujący cyfrę :
R19eYUo62zvqZ
Przykładowy skrypt rysujący cyfrę :
RDlvnchMCcqzS
Rip7DDfIZVcqh
Ćwiczenie 10
ref=
1
Ćwiczenie 11
Zmodyfikuj blok Gwiazda utworzony w ćwiczeniu 6 w taki sposób, żeby miał drugi parametr liczbowy, określający kąt zewnętrzny przy ramieniu gwiazdy.
RgBvgYs68yxf8
RuZOAKtxjvUMe
R1ZjPUyRRRpTt
R1DcAS6FYBRWh
Bloki odpowiedzialne za zmienne znajdziesz w kategorii: Zmienne.
Nie każda wartość kąta daje poprawny rysunek gwiazdy. Wypróbuj działanie skryptu dla różnych wartości kątów. Duszek przed rysowaniem może się pytać o wartość kąta.
Podana poniżej instrukcja pozwoli ci obliczyć kąt zewnętrzny ramienia gwiazdy o nieparzystej liczbie ramion:
Podziel przez liczbę ramion gwiazdy, np. dla gwiazdy pięcioramiennej: .
Otrzymaną wartość podziel przez . Na przykład dla uzyskanej wcześniej wartości otrzymujemy: .
Obliczony kąt reprezentuje kąt między ramionami gwiazdy. W każdym wierzchołku gwiazdy ten kąt będzie miał tę samą wartość. Teraz, musisz obliczyć, o ile duszek musi się obrócić po narysowaniu każdego ramienia, aby narysować następne. Jest to kąt zewnętrzny ramienia gwiazdy, który obliczamy odejmując nasz kąt od . Dla gwiazdy pięcioramiennej, otrzymamy: .
W ten sposób otrzymaliśmy miarę kąta między ramionami w każdym z jej wierzchołków. Ostatnim krokiem jest odjęcie otrzymanego wyniku od , ponieważ jest to kąt o jaki duszek musi się obrócić rysując gwiazdę, np. dla gwiazdy pięcioramiennej: .
W ten sposób otrzymaliśmy wartość kąta obrotu, która pozwoli nam narysować gwiazdę. W przypadku gwiazdy pięcioramiennej, duszek musi się obrócić o stopni po narysowaniu każdego ramienia, aby narysować następne.
Możesz kontrolować liczbę powtórzeń wewnątrz definicji bloku Gwiazda, obliczając liczbę ramion poprzez modyfikację powyższego wzoru do obliczenia kąta zewnętrznego ramienia gwiazdy. Aby to zrobić, użyj podanego wzoru:
RGfuxYWHZYINI
R1BQ2v8uqo1v8
Ćwiczenie 11
icckVlRpet_d429e206
R1Da7OMgdQ1vX
Blok powtarza zestaw poleceń aż do spełnienia warunku logicznego. Warunki budujemy z klocków kategorii Czujniki i Wyrażenia.