Rysowanie strzałką
Sterujesz strzałką, która rysuje na planszy (jak żółw w Logo). Ruch do przodu, obroty, skoki i ślad pióra - delikatny wstęp do programowania z obiektem, przed pełną obiektowością. Po wejściu w zadanie widać wyblakły CEL do odtworzenia.
Dla kogo: Klasy 7-8 i liceum: pętle i geometria w Pythonie w trybie graficznym. Więcej o kursie
Pierwsze ruchy strzałki
Strzałka `arrow` już istnieje. move(d) jedzie do przodu o d, zostawiając ślad. turn(stopnie) obraca w prawo (ujemne = w lewo). Tu jeszcze bez pętli - piszemy ruch po ruchu i składamy proste kształty oraz litery.
- Linia do przodu o długości 50
- Pionowa linia w górę o długości 60
- Litera L z dwóch odcinków
- Schodek z trzech odcinków po 30
- Róg: obrót o 90 stopni w prawo
- Trzy boki kwadratu bez pętli
- Prostokąt 60 na 30 bez pętli
- Łamana z obrotem w lewo i w prawo
- Zygzak z czterech odcinków po 30
- Linia w dół po obrocie o 180 stopni
- Róg w lewo z ujemnym kątem obrotu
- Pozioma linia w prawo o długości 60
- Narożnik w lewo z odcinków po 40
- Odwrócona litera U jako klamra
- Drabinka z dwóch schodków
- Litera Z z ukośną kreską
- Długi zygzak wypisany bez pętli
- Litera N z ukośną kreską
- Trójkąt o boku 50 bez pętli
- Romb o boku 50 bez pętli
- Litera C otwarta w prawo
Pętle - powtarzaj ruch
Wielokąty rysujemy powtarzając move + turn w pętli for. Kąt obrotu to 360 / liczba boków (kąt zewnętrzny). Im więcej boków, tym bliżej okręgu. Gwiazdy powstają, gdy obracamy o większy kąt (przeskakujemy wierzchołki).
- Kwadrat o boku 50 z pętlą for
- Kwadrat o boku 40 z pętlą for
- Trójkąt o boku 70 z pętlą for
- Trójkąt równoboczny: obrót o 120 stopni
- Pięciokąt foremny o boku 45
- Sześciokąt foremny o boku 40
- Ośmiokąt foremny: obrót o 45 stopni
- Ośmiokąt foremny o boku 30 w pętli
- Dziesięciokąt foremny o boku 25
- Prawie-okrąg z 36 boków po 8
- Mniejszy prawie-okrąg z boków po 6
- Dwunastokąt foremny o boku 20
- Gwiazda pięcioramienna: obrót o 144 stopnie
- Gwiazda siedmioramienna z pętlą
- Gwiazda ośmioramienna z pętlą
- Siedmiokąt foremny: kąt liczony jako 360/7
- Dziewięciokąt foremny z dzieleniem kąta
- Gwiazda dziewięcioramienna z pętlą
- Duży pięciokąt o boku 60
- Gładkie koło z 72 boków
- Gwiazda sześcioramienna z dwóch trójkątów
Kąt, skok i pozycja
arrow.angle ustawia kierunek wprost (0 = góra, rośnie w prawo). arrow.position = (x, y) przeskakuje w dane miejsce. Wyłączając pióro (arrow.pen.on = False) przeskakujesz bez rysowania - można zaczynać w różnych miejscach planszy.
- Ustawienie kąta: pozioma linia w prawo
- Linia w dół przez ustawienie kąta 180
- Krzyż z czterech linii ze środka
- Skok bez rysowania: dwie osobne linie
- Dwie osobne pionowe linie
- Dwa kwadraty w różnych miejscach planszy
- Wachlarz ośmiu linii ze środka
- Wachlarz sześciu linii co 60 stopni
- Litera T ze skokami pióra
- Gwiazdka z 12 promieni co 30 stopni
- Gwiazdka z 8 promieni co 45 stopni
- Trzy kwadraty w rzędzie
- Ramka planszy rysowana pozycjami
- Litera X z przekątnych planszy
- Ukośna linia z rogu do rogu planszy
- Litera H z trzech kresek
- Litera E z pętlą po poziomych kreskach
- Okno z czterech kwadratów
- Gwiazda z 18 promieni co 20 stopni
- Promienista gwiazda z 24 linii
- Cztery linie z rogu planszy pod różnym kątem
- Litera Y ze skoków pozycji
Pióro: kolor i grubość
arrow.pen.color = (r, g, b) zmienia kolor śladu (0-255), arrow.pen.size = n grubość. Można malować różnymi kolorami w jednym rysunku. (Auto-check liczy się za kształt - kolor to wskazówka.)
- Czerwona linia: kolor pióra
- Niebieski trójkąt o boku 50
- Czerwony sześciokąt o boku 40
- Gruba linia: grubość pióra 6
- Zielona linia o grubości 8
- Gruby niebieski kwadrat o boku 50
- Trzy kolorowe linie jedna pod drugą
- Trzy poziome linie w różnych kolorach
- Kolory boków kwadratu z listy
- Kwadrat, w którym każdy bok ma inny kolor
- Gwiazda pięcioramienna w pięciu kolorach
- Schody grubości: sześć coraz grubszych linii
- Pięć linii o rosnącej grubości
- Tęczowa gwiazdka z 12 promieni
- Tęczowe promienie co 20 stopni
- Gruby zielony okrąg z 36 boków
- Gruby kolorowy krzyż ze środka
- Kolorowa spirala kwadratowa: kolor co bok
- Spirala kwadratowa w czterech kolorach
- Gruby żółty pięciokąt o boku 50
- Kolorowy wachlarz sześciu kwadratów
- Tęczowa gwiazda siedmioramienna
Wzory przestrzenne
Łącząc pętle, skoki (position) i pióro tworzymy efektowne wzory: krzywe ze sznurka (string art), spirale i rozety. Tu range() steruje współrzędnymi albo długością i kątem kroku.
- String art: łuk z prostych odcinków
- String art w lewym górnym rogu
- String art w lewym dolnym rogu
- Dwa łuki ze sznurka w jednej pętli
- Gęsty string art co 6 jednostek
- Spirala z rosnącą długością kroku
- Spirala kwadratowa z 16 boków
- Spirala trójkątna z 24 boków
- Okrągła spirala z obrotem o 35 stopni
- Rozeta z dwunastu kwadratów
- Rozeta z ośmiu trójkątów
- Wachlarz sześciu kwadratów
- Rozeta z dziesięciu pięciokątów
- Rozeta z dziewięciu sześciokątów
- Rozeta z ośmiu gwiazd pięcioramiennych
- Promienista rozeta z 18 linii
- Gęsta rozeta z 36 promieni
- Siatka 3x3 kwadratów o boku 40
- Spirala ośmiokątna z 32 boków
- Dwukolorowa rozeta z 36 linii
- Rozeta z dwunastu ośmiokątów
Kółka, ślimaki i perspektywa
Okrąg to wielokąt o bardzo wielu krótkich bokach. Ślimak (spirala) to okrąg, w którym długość kroku rośnie. Z kółek i kwadratów składamy kwiatki i perspektywę (tunel). To krok ku rysunkom artystycznym.
- Kółko z 36 boków po 5
- Mniejsze kółko z boków po 3
- Większe kółko z boków po 7
- Dwa kółka obok siebie
- Dwa kółka jedno nad drugim
- Ślimak: spirala z rosnącym krokiem
- Ślimak z 80 kroków i obrotem o 24 stopnie
- Ciasny ślimak z obrotem o 30 stopni
- Kwiatek z dziewięciu kółek
- Kwiatek z sześciu kółek
- Kwiatek z dwunastu kółek
- Perspektywa: tunel z pięciu kwadratów
- Tunel z ośmiu kwadratów
- Tunel z trójkątów
- Koła współśrodkowe jak tarcza
- Tarcza strzelecka z czterech kół
- Kolorowy ślimak w czterech kolorach
- Pętla z obracanych kwadracików
- Wianek z dwunastu małych kółek
- Tunel z pięciokątów
- Kwiatek z ośmiu kółek z 24 boków
- Szybko rozkręcający się ślimak z 70 kroków
Pajęczyny i kwadratowe ślimaki
Z prostych odcinków łączących punkty krawędzi powstają krzywe (string art / pajęczyny) - w różnych rogach, większe i mniejsze. Kwadratowy ślimak to spirala z coraz dłuższych boków. Pole do eksperymentów z range() i position.
- Pajęczyna w lewym dolnym rogu
- Pajęczyna w prawym górnym rogu
- Pajęczyna w lewym górnym rogu
- Mała pajęczyna w obszarze -50..50
- Pajęczyna w czterech rogach naraz
- Pajęczyna w dwóch przeciwległych rogach
- Asymetryczna pajęczyna ze skośnym łukiem
- Asymetryczna pajęczyna od lewej do górnej krawędzi
- Kwadratowy ślimak z 18 okrążeń
- Kwadratowy ślimak w pętli zagnieżdżonej
- Trójkątny ślimak
- Pięciokątny ślimak
- Wir: ślimak z obrotem o 89 stopni
- Skręcony ślimak z obrotem o 91 stopni
- Pajęczyna cienkim piórem w prawym dolnym rogu
- Pajęczyna cienkim piórem w lewym górnym rogu
- Kolorowa pajęczyna w trzech kolorach
- Szybko rosnący kwadratowy ślimak
- Klepsydra z linii przez całą planszę
- Klepsydra z linii co 12 jednostek
- Wachlarz linii z lewego dolnego rogu
- Sześciokątny ślimak
Krzywe matematyczne
Matematyka na planszy: licząc współrzędne wzorami (math.sin, math.cos) rysujemy sinusoidy, okręgi i krzywe parametryczne. Pętla po x liczy y i skacze do (x, y) - z odcinków powstaje gładka krzywa. Wymaga `import math`.
- Sinusoida o amplitudzie 60
- Sinusoida o mniejszej amplitudzie 30
- Sinusoida o większej częstotliwości
- Cosinusoida zaczynająca od góry
- Sinusoida o amplitudzie 40 i gęstszych falach
- Okrąg parametryczny z sinusa i cosinusa
- Szeroka elipsa parametryczna
- Wysoka elipsa parametryczna
- Spirala parametryczna z rosnącym promieniem
- Ciaśniejsza spirala parametryczna
- Szerokość fali: sinus z x dzielonym przez 10
- Węższa fala: x dzielone przez 5
- Szersza fala: x dzielone przez 25
- Krzywa Lissajous: wstążka-ósemka
- Krzywa Lissajous o proporcji 3 do 4
- Kwiat o trzech płatkach z sinusa
- Kwiat o czterech płatkach
- Kwiat o pięciu płatkach z cosinusa
- Tłumiona fala o malejącej amplitudzie
- Sinusoida o amplitudzie 70
- Parabola w kształcie litery U
- Odwrócona parabola jak daszek
- Spirala parametryczna o dużych skokach