Stronę tą wyświetlono już: 19277 razy
Grafika żółwia została wymyślona na potrzeby edukacji najmłodszych programistów. W Pythonie istnieje cały moduł o nazwie turtle (żółw), który umożliwia tworzenie programów rysujących elementy grafiki 2W. Oto prosty przykład mojego autorstwa, pokazujący w jak prosty sposób można uzyskać dość ciekawy efekt:
W powyższym kodzie zmienna angle (kąt) określa kąt wycinka koła, jaki będzie rysowany, natomiast zmienna iter (skrót od iteracje) określa liczbę powtórzeń. Wywołanie funkcji turtle.pensize umożliwia określenie szerokości pióra, jaką będą rysowane linie tworzonej grafiki. Kolejna funkcja związana z piórem to turtle.pencolor ta z kolei przyjmuje jeden argument w postaci krotki składającej się z trzech elementów opisujących intensywność danej barwy w kolejności następującej (red, green, blue), gdzie każda składowa jest liczbą zmiennoprzecinkową z zakresu od 0 do 1. Funkcja turtle.forward określa ruch zgodny z kierunkiem wskazywanym przez żółwia o zadaną wartość. Ostatnia funkcja to i oraz kąt angle jego wycinka. Efektem działania powyższego kodu jest wygenerowanie grafiki pokazanej na poniższej ilustracji.

Dokładną dokumentację tego modułu można znaleźć na stronie docs.python.org, ja postaram się jedynie przybliżyć niektóre z podstawowych poleceń.
Polecania związane z kolorem pióra
Zmiana rozmiaru pędzla
Jak już wspomniałem wcześniej możliwe jest zmienienie szerokości pióra rysowanych linii za pomocą funkcji turtle.pensize:
Powyższy kod ustawia szerokość pióra na 10px.
Zmiana koloru pędzla
Kolor pędzla jest opisywany jako krotka, składająca się z trzech elementów opisujących kolejne składowe kolory liczbami zmiennoprzecinkowymi z zakresu od 0 do 1. Oto przykład użycia funkcji
Powyższy kod ustawia kolor pędzla na szary.
Funkcje sterujące kierunkiem rysowania:
Obrócenie żółwia w lewo
Funkcja turtle.left obraca żółwia o zadany kąt w lewo (czyli przeciwnie do ruchu wskazówek zegara), oto przykład użycia tejże funkcji:
Efektem działania powyższego kodu będzie narysowanie kwadratu.
Obrócenie żółwia w prawo
Funkcja turtle.right obraca żółwia o zadany kąt w prawo (czyli zgodnie z ruchem wskazówek zegara), oto przykład użycia tejże funkcji:
Efektem działania powyższego kodu będzie narysowanie kwadratu.
Instrukcje rysujące
Rysowanie linii prostej do przodu
Do przodu oznacza w kierunku wskazywanym przez żółwia. Funkcja wykonująca tą operację to turtle.forward, która jako jedyny argument przyjmuje długość rysowanej linii.
Rysowanie linii prostej do tyłu
Do tyłu oznacza w kierunku przeciwnym do wskazywanego przez żółwia. Funkcja wykonująca tą operację to turtle.back, która jako jedyny argument przyjmuje długość rysowanej linii.
Rysowanie linii do punktu o podanych współrzędnych bezwzględnych
Funkcją umożliwiającą rysowanie w współrzędnych bezwzględnych jest turtle.goto. Funkcja ta przyjmuje dwa argumenty: współrzędną x i współrzędną y.
Powyższy przykład również rysuje prostokąt.
Ustawienia rysowania
Bieżące współrzędne położenia żółwia
Za pomocą turtle.position można uzyskać informacje o bieżących współrzędnych żółwia:
Zwracana wartość to krotka w postaci (x, y).
Istnieje też możliwość pozyskania jednej ze składowych bieżącej pozycji żółwia za pomocą funkcji turtle.xcor oraz ycor.
Bieżący kąt położenia żółwia
Można również określić kąt położenia żółwia za pomocą funkcji turtle.heading().
Odległość bieżącego punktu od innego punktu
Obliczeniem odległości dzielącej bieżący punkt położenia żółwia od podanego punktu zajmuje się funkcja turtle.distance, która przyjmuje dwa argumenty: współrzędną x i y.
Czyszczenie okna rysowania
Obszar rysowania można z powodzeniem wyczyścić za pomocą funkcji turtle.clear.
Resetowanie ustawień rysowania z jednoczesnym czyszczeniem obszaru rysowania
Resetowanie ustawień odbywa się za pomocą funkcji turtle.reset.
Cofanie ostatnio wykonanej operacji rysowania
Cofanie ostatnio wykonanej operacji rysowania odbywa się za pomocą funkcji turtle.undo.
Przywracanie ostatnio cofniętej operacji rysowania
Przywracanie ostatnio cofniętej operacji rysowania odbywa się za pomocą funkcji turtle.redo.